Compare commits

..

591 Commits

Author SHA1 Message Date
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
Athou
f7a944a78a release 5.11.1 2025-09-22 03:53:07 +02:00
Athou
7f53531489 filter cannot be converted to lowercase (#1899) 2025-09-22 03:47:06 +02:00
renovate[bot]
8386c2889f chore(deps): update dependency vite to ^7.1.6 2025-09-18 05:15:43 +00:00
Jérémie Panzer
13d2332984 Merge pull request #1898 from Athou/renovate/org.projectlombok-lombok-1.18.x
fix(deps): update dependency org.projectlombok:lombok to v1.18.42
2025-09-18 07:14:44 +02:00
renovate[bot]
ce496c205a fix(deps): update dependency org.projectlombok:lombok to v1.18.42 2025-09-18 02:32:36 +00:00
renovate[bot]
66547661b5 fix(deps): update quarkus.version to v3.26.4 2025-09-17 18:53:21 +00:00
renovate[bot]
8568a29461 fix(deps): update dependency @fontsource/open-sans to ^5.2.7 2025-09-17 09:44:18 +00:00
renovate[bot]
5d42229aec chore(deps): update dependency @vitejs/plugin-react to ^5.0.3 2025-09-17 08:49:14 +00:00
Athou
ad8c928cf1 run CI with java 25 2025-09-16 19:09:40 +02:00
renovate[bot]
cc90883342 chore(deps): update graalvm/setup-graalvm digest to aba6a07 2025-09-16 16:45:34 +00:00
renovate[bot]
a4071da5de fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.37 2025-09-16 05:34:48 +00:00
renovate[bot]
c65dbf978b chore(deps): update ibm-semeru-runtimes:open-21.0.8_9-jre docker digest to 0d2e27e 2025-09-16 03:56:11 +00:00
renovate[bot]
c4ea804fee chore(deps): lock file maintenance 2025-09-15 02:03:39 +00:00
renovate[bot]
f71720c809 fix(deps): update dependency axios to ^1.12.2 2025-09-14 18:13:58 +00:00
renovate[bot]
03ba601491 fix(deps): update dependency axios to ^1.12.1 2025-09-14 01:35:06 +00:00
renovate[bot]
bdee3fc1b5 chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.4 2025-09-13 17:48:07 +00:00
renovate[bot]
2e472fa90d chore(deps): update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.4 2025-09-13 16:06:11 +00:00
Jérémie Panzer
aad7e896f2 Merge pull request #1897 from Athou/renovate/jsdom-27.x
chore(deps): update dependency jsdom to v27
2025-09-13 10:43:45 +02:00
renovate[bot]
2478fc2967 chore(deps): update dependency jsdom to v27 2025-09-13 07:06:06 +00:00
Jérémie Panzer
2db96c968d Merge pull request #1896 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to ^5.5.0 (minor)
2025-09-13 09:05:54 +02:00
Jérémie Panzer
9bc1a69ace Merge pull request #1895 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.9.1
2025-09-13 09:05:46 +02:00
renovate[bot]
cca74e9e54 fix(deps): update linguijs monorepo to ^5.5.0 2025-09-13 02:57:55 +00:00
renovate[bot]
8185411071 fix(deps): update dependency react-router-dom to ^7.9.1 2025-09-13 02:57:46 +00:00
renovate[bot]
c89addab2e chore(deps): update dependency @types/react to ^19.1.13 2025-09-13 02:57:32 +00:00
Jérémie Panzer
6c617bf9e7 Merge pull request #1894 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to ^1.12.0
2025-09-12 06:31:12 +02:00
renovate[bot]
5847e340bf fix(deps): update dependency axios to ^1.12.0 2025-09-12 03:56:31 +00:00
renovate[bot]
5a5fd8f425 chore(deps): update github/codeql-action digest to 192325c 2025-09-10 21:07:58 +00:00
renovate[bot]
d6283e326d fix(deps): update mantine monorepo to ^8.3.1 2025-09-10 17:43:17 +00:00
renovate[bot]
c63deb70dd chore(deps): update dependency @biomejs/biome to v2.2.4 2025-09-10 14:34:03 +00:00
renovate[bot]
c071781099 fix(deps): update quarkus.version to v3.26.3 2025-09-10 06:47:48 +00:00
renovate[bot]
0820b4b70a chore(deps): update github/codeql-action digest to d3678e2 2025-09-09 11:57:33 +00:00
Jérémie Panzer
ac42d11251 Merge pull request #1893 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13.1
2025-09-09 05:57:31 +02:00
renovate[bot]
324248ff1e chore(deps): update debian docker tag to v13.1 2025-09-09 02:03:08 +00:00
Jérémie Panzer
f32e83d43b Merge pull request #1891 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to ^8.3.0 (minor)
2025-09-08 21:50:19 +02:00
renovate[bot]
3820aaed21 fix(deps): update mantine monorepo to ^8.3.0 2025-09-08 14:18:59 +00:00
renovate[bot]
a45ef79c6f chore(deps): update dependency vite to ^7.1.5 2025-09-08 10:15:30 +00:00
renovate[bot]
9b9266a6c9 chore(deps): lock file maintenance 2025-09-08 02:40:28 +00:00
renovate[bot]
06e22030c3 chore(deps): update dependency @biomejs/biome to v2.2.3 2025-09-05 16:49:16 +00:00
renovate[bot]
ca146c977b chore(deps): update github/codeql-action digest to f1f6e5f 2025-09-05 14:15:06 +00:00
renovate[bot]
6a96a3617f fix(deps): update dependency org.projectlombok:lombok to v1.18.40 2025-09-05 03:01:33 +00:00
Jérémie Panzer
6dd6e05e0c Merge pull request #1890 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.6.0
2025-09-04 07:19:20 +02:00
renovate[bot]
1fb33d51d3 chore(deps): update dependency npm to v11.6.0 2025-09-03 21:33:32 +00:00
renovate[bot]
4841f2d7f6 fix(deps): update quarkus.version to v3.26.2 2025-09-03 17:54:08 +00:00
Athou
ad388ae056 remove search limit (#1887) 2025-09-03 07:45:15 +02:00
Jérémie Panzer
a80769fae3 Merge pull request #1889 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.9.0
2025-09-03 07:21:04 +02:00
renovate[bot]
b34c6f4c34 fix(deps): update dependency @reduxjs/toolkit to ^2.9.0 2025-09-03 04:53:28 +00:00
renovate[bot]
d6d084fbd1 chore(deps): update ncipollo/release-action digest to b7eabc9 2025-09-02 20:40:56 +00:00
renovate[bot]
1fca44c0da chore(deps): update graalvm/setup-graalvm digest to 7a1da54 2025-09-02 17:05:28 +00:00
renovate[bot]
8bf1d0b776 chore(deps): update ibm-semeru-runtimes:open-21.0.8_9-jre docker digest to ffcc837 2025-09-02 04:55:08 +00:00
renovate[bot]
484412514f chore(deps): update ncipollo/release-action digest to 1c89adf 2025-09-01 18:32:51 +00:00
renovate[bot]
6987449a7e chore(deps): update github/codeql-action digest to 2d92b76 2025-09-01 16:24:31 +00:00
renovate[bot]
18dac92fc1 chore(deps): update dependency vite to ^7.1.4 2025-09-01 12:34:29 +00:00
renovate[bot]
54774fcfe5 fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.36 2025-08-31 20:34:06 +00:00
Athou
b431229273 sslcontext-kickstart was renamed ayza 2025-08-31 21:27:23 +02:00
renovate[bot]
658dde158e fix(deps): update mantine monorepo to ^8.2.8 2025-08-31 16:33:54 +00:00
renovate[bot]
ced3ada6fc chore(deps): update dependency com.puppycrawl.tools:checkstyle to v11.0.1 2025-08-31 14:22:18 +00:00
renovate[bot]
0db236639b fix(deps): update quarkus.version to v3.26.1 2025-08-30 05:59:50 +00:00
renovate[bot]
036ce7f94f fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.35 2025-08-29 20:09:03 +00:00
renovate[bot]
68c887ffe0 fix(deps): update dependency dayjs to ^1.11.17 2025-08-29 19:04:58 +00:00
renovate[bot]
e96da49d0a chore(deps): update react monorepo 2025-08-29 15:51:22 +00:00
Jérémie Panzer
794684bc4e Merge pull request #1884 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.19.0
2025-08-29 17:31:29 +02:00
Jérémie Panzer
dd944c5293 Merge pull request #1883 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.2.0.4988
2025-08-29 17:31:22 +02:00
renovate[bot]
be878454a9 chore(deps): update node.js to v22.19.0 2025-08-29 14:22:59 +00:00
renovate[bot]
e567f81046 chore(deps): update dependency org.sonarsource.scanner.maven:sonar-maven-plugin to v5.2.0.4988 2025-08-29 14:22:56 +00:00
Jérémie Panzer
6164ca5f91 Merge pull request #1882 from Athou/renovate/quarkus.version
chore(deps): update dependency io.quarkus.platform:quarkus-maven-plugin to v3.26.0
2025-08-28 13:54:04 +02:00
renovate[bot]
655332e3fd chore(deps): update dependency io.quarkus.platform:quarkus-maven-plugin to v3.26.0 2025-08-28 11:24:18 +00:00
renovate[bot]
7e300fea87 fix(deps): update dependency dayjs to ^1.11.15 2025-08-28 06:57:43 +00:00
renovate[bot]
cea3e0aba8 chore(deps): update dependency @vitejs/plugin-react to ^5.0.2 2025-08-28 05:13:54 +00:00
renovate[bot]
459e270561 chore(deps): update dependency @types/react to ^19.1.12 2025-08-27 18:09:22 +00:00
renovate[bot]
cba660e785 fix(deps): update dependency dayjs to ^1.11.14 2025-08-27 11:32:31 +00:00
Jérémie Panzer
758301a39d Merge pull request #1881 from Athou/renovate/patch-react-monorepo
chore(deps): update dependency @types/react-dom to ^19.1.8
2025-08-27 07:37:09 +02:00
renovate[bot]
a8d0bae16e chore(deps): update dependency @types/react-dom to ^19.1.8 2025-08-26 12:15:08 +00:00
renovate[bot]
583cc39849 chore(deps): update dependency vite-plugin-checker to ^0.10.3 2025-08-25 13:09:11 +00:00
renovate[bot]
3585bd3d2d chore(deps): lock file maintenance 2025-08-25 05:13:37 +00:00
renovate[bot]
3a895b6418 fix(deps): update dependency org.jsoup:jsoup to v1.21.2 2025-08-25 00:25:27 +00:00
renovate[bot]
bb67733723 fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.34 2025-08-24 22:28:11 +00:00
renovate[bot]
f380fd553f chore(deps): update dependency @biomejs/biome to v2.2.2 2025-08-23 13:07:39 +00:00
Jérémie Panzer
d22ef12adf Merge pull request #1880 from Athou/renovate/actions-upload-pages-artifact-4.x
chore(deps): update actions/upload-pages-artifact action to v4
2025-08-23 07:58:22 +02:00
renovate[bot]
eaec088348 fix(deps): update mantine monorepo to ^8.2.7 2025-08-23 01:33:04 +00:00
renovate[bot]
fa1d0b9151 fix(deps): update dependency react-router-dom to ^7.8.2 2025-08-22 21:23:18 +00:00
renovate[bot]
c0a418b8b1 chore(deps): update actions/upload-pages-artifact action to v4 2025-08-22 17:46:43 +00:00
renovate[bot]
1a4f633a28 chore(deps): update dependency @types/react to ^19.1.11 2025-08-22 17:46:33 +00:00
renovate[bot]
c92ae40db6 chore(deps): update github/codeql-action digest to 3c3833e 2025-08-21 12:52:05 +00:00
Jérémie Panzer
0b42bea600 Merge pull request #1879 from Athou/renovate/actions-setup-java-5.x
chore(deps): update actions/setup-java action to v5
2025-08-21 14:49:28 +02:00
renovate[bot]
d8565cb3d3 chore(deps): update actions/setup-java action to v5 2025-08-21 05:06:59 +00:00
Jérémie Panzer
f68798c10e Merge pull request #1878 from Athou/renovate/testing-library-monorepo
chore(deps): update dependency @testing-library/jest-dom to ^6.8.0
2025-08-21 07:06:32 +02:00
renovate[bot]
a2ab927433 chore(deps): update dependency @testing-library/jest-dom to ^6.8.0 2025-08-20 22:07:26 +00:00
renovate[bot]
c7eae71c56 fix(deps): update quarkus.version to v3.25.4 2025-08-20 22:07:14 +00:00
renovate[bot]
c3784c2606 chore(deps): update dependency vite to ^7.1.3 2025-08-19 08:49:58 +00:00
renovate[bot]
60fe263b53 chore(deps): update dependency @vitejs/plugin-react to ^5.0.1 2025-08-19 05:51:51 +00:00
renovate[bot]
aaa0cfd0c8 chore(deps): update github/codeql-action digest to 96f518a 2025-08-18 13:51:18 +00:00
renovate[bot]
a209b2774a chore(deps): lock file maintenance 2025-08-18 00:24:47 +00:00
renovate[bot]
84d67b6166 fix(deps): update mantine monorepo to ^8.2.5 2025-08-16 16:45:14 +00:00
renovate[bot]
a7a215e6c7 fix(deps): update dependency react-router-dom to ^7.8.1 2025-08-15 21:28:14 +00:00
Athou
8686fe4e97 add support for NoRouteToHostException (fixes #1876) 2025-08-14 20:41:27 +02:00
Jérémie Panzer
afe2e8f95b Merge pull request #1877 from Athou/renovate/biomejs-biome-2.x
chore(deps): update dependency @biomejs/biome to v2.2.0
2025-08-14 14:49:32 +02:00
renovate[bot]
f580226c27 chore(deps): update dependency @biomejs/biome to v2.2.0 2025-08-14 12:49:28 +00:00
renovate[bot]
e93db46e0a chore(deps): update ibm-semeru-runtimes:open-21.0.8_9-jre docker digest to a0585f5 2025-08-14 11:41:28 +00:00
renovate[bot]
daea4b7f84 chore(deps): update ibm-semeru-runtimes:open-21.0.8_9-jre docker digest to e8efb84 2025-08-14 05:08:35 +00:00
Jérémie Panzer
eb942b07b1 Merge pull request #1875 from Athou/renovate/testing-library-monorepo
chore(deps): update dependency @testing-library/jest-dom to ^6.7.0
2025-08-14 07:08:01 +02:00
renovate[bot]
804ca38db7 fix(deps): update quarkus.version to v3.25.3 (#1874)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-14 00:36:35 +00:00
renovate[bot]
7278c0beae chore(deps): update dependency @testing-library/jest-dom to ^6.7.0 2025-08-13 20:13:24 +00:00
renovate[bot]
096e3a0f5f chore(deps): update ibm-semeru-runtimes:open-21.0.8_9-jre docker digest to d1bc86c 2025-08-13 20:13:05 +00:00
renovate[bot]
5090c15f20 chore(deps): update ibm-semeru-runtimes:open-21.0.8_9-jre docker digest to cb42f22 2025-08-13 05:50:29 +00:00
Jérémie Panzer
cb7e74fc21 Merge pull request #1873 from Athou/renovate/debian-13.x
chore(deps): update debian docker tag to v13
2025-08-13 07:50:02 +02:00
renovate[bot]
ff90041ed4 chore(deps): update debian docker tag to v13 2025-08-13 03:52:10 +00:00
renovate[bot]
f8fbe1844a chore(deps): update dependency vite to ^7.1.2 2025-08-12 11:31:12 +00:00
renovate[bot]
1902172a04 chore(deps): update github/codeql-action digest to df55935 2025-08-12 10:50:16 +00:00
renovate[bot]
2df384b847 chore(deps): update dependency @types/react to ^19.1.10 2025-08-11 20:14:30 +00:00
Jérémie Panzer
65bb35b4de Merge pull request #1871 from Athou/renovate/lock-file-maintenance
chore(deps): lock file maintenance
2025-08-11 22:13:56 +02:00
Athou
97516100f5 fix npm ci after renovate lock file maintenance 2025-08-11 21:41:57 +02:00
renovate[bot]
009ec7a59b chore(deps): lock file maintenance 2025-08-11 18:37:47 +00:00
Jérémie Panzer
02890c2b69 Merge pull request #1872 from Athou/renovate/actions-checkout-5.x
chore(deps): update actions/checkout action to v5
2025-08-11 20:36:39 +02:00
renovate[bot]
0f690bf00e chore(deps): update actions/checkout action to v5 2025-08-11 17:14:57 +00:00
Athou
cfe427b34c babel-plugin-macros is not needed anymore since we now use @lingui/babel-plugin-lingui-macro 2025-08-11 14:47:48 +02:00
renovate[bot]
a44c76cdc3 chore(deps): update actions/checkout digest to 08eba0b 2025-08-11 12:14:42 +00:00
renovate[bot]
730bde3d0d fix(deps): update linguijs monorepo to ^5.4.1 2025-08-11 09:55:32 +00:00
renovate[bot]
aa006fe22a fix(deps): update quarkus.version to v3.25.2 2025-08-08 21:31:29 +00:00
renovate[bot]
ca77090ecd chore(deps): update github/codeql-action digest to 76621b6 2025-08-08 12:26:20 +00:00
renovate[bot]
5619d1a4c5 chore(deps): update dependency vite to ^7.1.1 2025-08-08 05:13:13 +00:00
Jérémie Panzer
b7c80c397d Merge pull request #1870 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.8.0
2025-08-07 23:47:12 +02:00
renovate[bot]
d1e7cd2f85 fix(deps): update dependency react-router-dom to ^7.8.0 2025-08-07 21:14:23 +00:00
renovate[bot]
7da7aeb796 chore(deps): update dependency @biomejs/biome to v2.1.4 2025-08-07 16:32:14 +00:00
Jérémie Panzer
26b46166aa Merge pull request #1869 from Athou/renovate/com.puppycrawl.tools-checkstyle-11.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v11
2025-08-07 18:31:21 +02:00
renovate[bot]
6d5eb51a5d fix(deps): update mantine monorepo to ^8.2.4 2025-08-07 11:33:53 +00:00
renovate[bot]
917b6b318f chore(deps): update dependency com.puppycrawl.tools:checkstyle to v11 2025-08-07 11:33:12 +00:00
Jérémie Panzer
bfd95687b8 Merge pull request #1868 from Athou/renovate/vitejs-plugin-react-5.x
chore(deps): update dependency @vitejs/plugin-react to v5
2025-08-07 13:32:43 +02:00
Jérémie Panzer
4198ee1af1 Merge pull request #1867 from Athou/renovate/vite-7.x
chore(deps): update dependency vite to ^7.1.0
2025-08-07 13:32:30 +02:00
renovate[bot]
e9b1280ae6 chore(deps): update dependency @vitejs/plugin-react to v5 2025-08-07 09:49:36 +00:00
renovate[bot]
3c42831db0 chore(deps): update dependency vite to ^7.1.0 2025-08-07 09:49:27 +00:00
renovate[bot]
b8482006b9 fix(deps): update quarkus.version to v3.25.1 2025-08-07 00:23:05 +00:00
148 changed files with 7689 additions and 5093 deletions

View File

@@ -7,7 +7,7 @@ on:
pull_request: pull_request:
env: env:
JAVA_VERSION: 21 JAVA_VERSION: 25
DOCKER_BUILD_SUMMARY: false DOCKER_BUILD_SUMMARY: false
jobs: jobs:
@@ -23,13 +23,13 @@ jobs:
steps: steps:
# Checkout # Checkout
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
fetch-depth: 0 fetch-depth: 0
# Setup # Setup
- name: Set up GraalVM - name: Set up GraalVM
uses: graalvm/setup-graalvm@7f488cf82a3629ee755e4e97342c01d6bed318fa # v1 uses: graalvm/setup-graalvm@54b4f5a65c1a84b2fdfdc2078fe43df32819e4b1 # v1
with: with:
java-version: ${{ env.JAVA_VERSION }} java-version: ${{ env.JAVA_VERSION }}
distribution: "graalvm" distribution: "graalvm"
@@ -48,39 +48,39 @@ jobs:
run: mkdir -p target/pages/documentation/custom-css run: mkdir -p target/pages/documentation/custom-css
- name: Convert readme file to html - 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: with:
source: README.md source: README.md
output: target/pages/index.html output: target/pages/index.html
- name: Convert config documentation to 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: with:
source: commafeed-server/target/quarkus-generated-doc/config/commafeed-server.md source: commafeed-server/target/quarkus-generated-doc/config/commafeed-server.md
output: target/pages/documentation/index.html output: target/pages/documentation/index.html
- name: Convert custom css documentation to 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: with:
source: documentation/CUSTOMCSS.md source: documentation/CUSTOMCSS.md
output: target/pages/documentation/custom-css/index.html output: target/pages/documentation/custom-css/index.html
# Upload artifacts # Upload artifacts
- name: Upload cross-platform app - name: Upload cross-platform app
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
if: matrix.os == 'ubuntu-latest' # we only need to upload the cross-platform artifact once per database if: matrix.os == 'ubuntu-latest' # we only need to upload the cross-platform artifact once per database
with: with:
name: commafeed-${{ matrix.database }}-jvm name: commafeed-${{ matrix.database }}-jvm
path: commafeed-server/target/commafeed-*.zip path: commafeed-server/target/commafeed-*.zip
- name: Upload native executable - name: Upload native executable
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with: with:
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }} name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
path: commafeed-server/target/commafeed-*-runner* path: commafeed-server/target/commafeed-*-runner*
- name: Upload pages - name: Upload pages
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4
if: matrix.os == 'ubuntu-latest' && matrix.database == 'h2' # we only need to upload the pages once if: matrix.os == 'ubuntu-latest' && matrix.database == 'h2' # we only need to upload the pages once
with: with:
path: target/pages path: target/pages
@@ -98,23 +98,23 @@ jobs:
steps: steps:
# Checkout # Checkout
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
fetch-depth: 0 fetch-depth: 0
# Setup # Setup
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3 uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3 uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
- name: Install required packages - name: Install required packages
run: sudo apt-get install -y rename unzip run: sudo apt-get install -y rename unzip
# Prepare artifacts # Prepare artifacts
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
with: with:
pattern: commafeed-${{ matrix.database }}-* pattern: commafeed-${{ matrix.database }}-*
path: ./artifacts path: ./artifacts
@@ -135,7 +135,7 @@ jobs:
# Docker # Docker
- name: Login to Container Registry - name: Login to Container Registry
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3 uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3
if: ${{ env.DOCKERHUB_USERNAME != '' }} if: ${{ env.DOCKERHUB_USERNAME != '' }}
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
@@ -215,12 +215,12 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Download artifacts - name: Download artifacts
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7
with: with:
pattern: commafeed-* pattern: commafeed-*
path: ./artifacts path: ./artifacts
@@ -236,7 +236,7 @@ jobs:
version: ${{ github.ref_name }} version: ${{ github.ref_name }}
- name: Create GitHub release - name: Create GitHub release
uses: ncipollo/release-action@bcfe5470707e8832e12347755757cec0eb3c22af # v1 uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1
with: with:
name: CommaFeed ${{ github.ref_name }} name: CommaFeed ${{ github.ref_name }}
body: ${{ steps.changelog_reader.outputs.changes }} body: ${{ steps.changelog_reader.outputs.changes }}
@@ -249,12 +249,12 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Update Docker Hub Description - name: Update Docker Hub Description
uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4 uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}

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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
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@51f77329afa6477de8c49fc9c7046c15b9a4e79d # 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: 21
jobs:
build:
runs-on: ubuntu-latest
steps:
# Checkout
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0
# Setup
- name: Set up JDK
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "temurin"
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 wrapperVersion=3.3.4
# 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.
distributionType=only-script 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.12/apache-maven-3.9.12-bin.zip

View File

@@ -1,5 +1,47 @@
# Changelog # Changelog
## [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)
- Fix an issue that caused feed filtering expressions to be incorrectly converted to lowercase when saving them (#1899)
## [5.11.0] ## [5.11.0]
- Add an option to navigate to the next unread category/feed when marking all entries as read (#1807) - Add an option to navigate to the next unread category/feed when marking all entries as read (#1807)

View File

@@ -26,11 +26,18 @@ Google Reader inspired self-hosted RSS reader, based on Quarkus and React/TypeSc
- MySQL - MySQL
- MariaDB - 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
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 Docker images are built automatically and are available at https://hub.docker.com/r/athou/commafeed
@@ -103,7 +110,7 @@ There are multiple ways to configure CommaFeed:
- Environment variables (keys in UPPER_CASE) - Environment variables (keys in UPPER_CASE)
- a `.env` file in the working directory (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. All [CommaFeed settings](https://athou.github.io/commafeed/documentation) are optional and have sensible default values.
@@ -113,7 +120,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). All other Quarkus settings can be found [here](https://quarkus.io/guides/all-config).
When started, the server will listen on http://localhost:8082. When started, the server will listen on http://localhost:8082.
The default user is `admin` and the default password is `admin`.
### Updates ### Updates

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -16,68 +16,66 @@
}, },
"dependencies": { "dependencies": {
"@emotion/react": "^11.14.0", "@emotion/react": "^11.14.0",
"@fontsource/open-sans": "^5.2.6", "@fontsource/open-sans": "^5.2.7",
"@lingui/core": "^5.4.0", "@lingui/core": "^5.9.0",
"@lingui/react": "^5.4.0", "@lingui/react": "^5.9.0",
"@mantine/core": "^8.2.3", "@mantine/core": "^8.3.14",
"@mantine/form": "^8.2.3", "@mantine/form": "^8.3.14",
"@mantine/hooks": "^8.2.3", "@mantine/hooks": "^8.3.14",
"@mantine/modals": "^8.2.3", "@mantine/modals": "^8.3.14",
"@mantine/notifications": "^8.2.3", "@mantine/notifications": "^8.3.14",
"@mantine/spotlight": "^8.2.3", "@mantine/spotlight": "^8.3.14",
"@monaco-editor/react": "^4.7.0", "@monaco-editor/react": "^4.7.0",
"@reduxjs/toolkit": "^2.8.2", "@reduxjs/toolkit": "^2.11.2",
"axios": "^1.11.0", "axios": "^1.13.4",
"dayjs": "^1.11.13", "dayjs": "^1.11.19",
"escape-string-regexp": "^5.0.0", "escape-string-regexp": "^5.0.0",
"interweave": "^13.1.1", "interweave": "^13.1.1",
"monaco-editor": "^0.52.2", "monaco-editor": "^0.55.1",
"mousetrap": "^1.6.5", "mousetrap": "^1.6.5",
"react": "^19.1.1", "react": "^19.2.4",
"react-async-hook": "^4.0.0", "react-async-hook": "^4.0.0",
"react-contexify": "^6.0.0", "react-contexify": "^6.0.0",
"react-device-detect": "^2.2.3", "react-dom": "^19.2.4",
"react-dom": "^19.1.1",
"react-draggable": "^4.5.0", "react-draggable": "^4.5.0",
"react-icons": "^5.5.0", "react-icons": "^5.5.0",
"react-infinite-scroller": "^1.2.6", "react-infinite-scroller": "^1.2.6",
"react-redux": "^9.2.0", "react-redux": "^9.2.0",
"react-router-dom": "^7.7.1", "react-router-dom": "^7.13.0",
"react-swipeable": "^7.0.2", "react-swipeable": "^7.0.2",
"style-to-object": "^1.0.9", "style-to-object": "^1.0.14",
"throttle-debounce": "^5.0.2", "throttle-debounce": "^5.0.2",
"tinycon": "^0.6.8", "tinycon": "^0.6.8",
"tss-react": "^4.9.19", "tss-react": "^4.9.20",
"websocket-heartbeat-js": "^1.1.3" "websocket-heartbeat-js": "^1.1.3"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "^2.1.3", "@biomejs/biome": "^2.3.14",
"@lingui/babel-plugin-lingui-macro": "^5.4.0", "@lingui/babel-plugin-lingui-macro": "^5.9.0",
"@lingui/cli": "^5.4.0", "@lingui/cli": "^5.9.0",
"@lingui/vite-plugin": "^5.4.0", "@lingui/vite-plugin": "^5.9.0",
"@testing-library/jest-dom": "^6.6.4", "@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0", "@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1", "@testing-library/user-event": "^14.6.1",
"@types/mousetrap": "^1.6.15", "@types/mousetrap": "^1.6.15",
"@types/react": "^19.1.9", "@types/react": "^19.2.13",
"@types/react-dom": "^19.1.7", "@types/react-dom": "^19.2.3",
"@types/react-infinite-scroller": "^1.2.5", "@types/react-infinite-scroller": "^1.2.5",
"@types/throttle-debounce": "^5.0.2", "@types/throttle-debounce": "^5.0.2",
"@types/tinycon": "^0.6.7", "@types/tinycon": "^0.6.7",
"@vitejs/plugin-react": "^4.7.0", "@vitejs/plugin-react": "^5.1.3",
"babel-plugin-macros": "^3.1.0", "babel-plugin-react-compiler": "1.0.0",
"babel-plugin-react-compiler": "^19.1.0-rc.2", "jsdom": "^28.0.0",
"jsdom": "^26.1.0", "typescript": "^5.9.3",
"rollup-plugin-visualizer": "^6.0.3", "vite": "^7.3.1",
"typescript": "^5.9.2", "vite-plugin-checker": "^0.12.0",
"vite": "^7.0.6", "vite-tsconfig-paths": "^6.0.5",
"vite-plugin-checker": "^0.10.2", "vitest": "^4.0.18",
"vite-tsconfig-paths": "^5.1.4", "yaml": "^2.8.2"
"vitest": "^3.2.4"
}, },
"overrides": { "overrides": {
"react-infinite-scroller": { "react-infinite-scroller": {
"react": "^19.1.1" "react": "^19.2.4"
} }
} }
} }

View File

@@ -6,19 +6,16 @@
<parent> <parent>
<groupId>com.commafeed</groupId> <groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId> <artifactId>commafeed</artifactId>
<version>5.11.0</version> <version>6.2.0</version>
</parent> </parent>
<artifactId>commafeed-client</artifactId> <artifactId>commafeed-client</artifactId>
<name>CommaFeed Client</name> <name>CommaFeed Client</name>
<properties> <properties>
<sonar.sources>package.json,src</sonar.sources>
<sonar.coverage.exclusions>**/*</sonar.coverage.exclusions>
<!-- renovate: datasource=node-version depName=node --> <!-- renovate: datasource=node-version depName=node -->
<node.version>v22.18.0</node.version> <node.version>v24.13.0</node.version>
<!-- renovate: datasource=npm depName=npm --> <!-- renovate: datasource=npm depName=npm -->
<npm.version>11.5.2</npm.version> <npm.version>11.9.0</npm.version>
</properties> </properties>
<build> <build>
@@ -26,7 +23,7 @@
<plugin> <plugin>
<groupId>com.github.eirslett</groupId> <groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId> <artifactId>frontend-maven-plugin</artifactId>
<version>1.15.1</version> <version>2.0.0</version>
<?m2e ignore?> <?m2e ignore?>
<executions> <executions>
<execution> <execution>
@@ -75,7 +72,7 @@
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-resources-plugin</artifactId> <artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version> <version>3.4.0</version>
<executions> <executions>
<execution> <execution>
<id>copy web interface to resources</id> <id>copy web interface to resources</id>

View File

@@ -0,0 +1,62 @@
<?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"
sodipodi:docname="favicon.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs3" />
<sodipodi:namedview
id="namedview3"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.21875"
inkscape:cx="207.17949"
inkscape:cy="187.07692"
inkscape:window-width="1440"
inkscape:window-height="855"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3" />
<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.9 KiB

View File

@@ -5,11 +5,11 @@ import { ModalsProvider } from "@mantine/modals"
import { Notifications } from "@mantine/notifications" import { Notifications } from "@mantine/notifications"
import type React from "react" import type React from "react"
import { useEffect, useState } from "react" import { useEffect, useState } from "react"
import { isSafari } from "react-device-detect"
import { HashRouter, Navigate, Route, Routes, useNavigate } from "react-router-dom" import { HashRouter, Navigate, Route, Routes, useNavigate } from "react-router-dom"
import Tinycon from "tinycon" import Tinycon from "tinycon"
import { Constants } from "@/app/constants" import { Constants } from "@/app/constants"
import { redirectTo } from "@/app/redirect/slice" import { redirectTo } from "@/app/redirect/slice"
import { redirectToInitialSetup } from "@/app/redirect/thunks"
import { reloadServerInfos } from "@/app/server/thunks" import { reloadServerInfos } from "@/app/server/thunks"
import { useAppDispatch, useAppSelector } from "@/app/store" import { useAppDispatch, useAppSelector } from "@/app/store"
import { categoryUnreadCount } from "@/app/utils" import { categoryUnreadCount } from "@/app/utils"
@@ -31,8 +31,10 @@ import { FeedEntriesPage } from "@/pages/app/FeedEntriesPage"
import Layout from "@/pages/app/Layout" import Layout from "@/pages/app/Layout"
import { SettingsPage } from "@/pages/app/SettingsPage" import { SettingsPage } from "@/pages/app/SettingsPage"
import { TagDetailsPage } from "@/pages/app/TagDetailsPage" import { TagDetailsPage } from "@/pages/app/TagDetailsPage"
import { InitialSetupPage } from "@/pages/auth/InitialSetupPage"
import { LoginPage } from "@/pages/auth/LoginPage" import { LoginPage } from "@/pages/auth/LoginPage"
import { PasswordRecoveryPage } from "@/pages/auth/PasswordRecoveryPage" import { PasswordRecoveryPage } from "@/pages/auth/PasswordRecoveryPage"
import { PasswordResetPage } from "@/pages/auth/PasswordResetPage"
import { RegistrationPage } from "@/pages/auth/RegistrationPage" import { RegistrationPage } from "@/pages/auth/RegistrationPage"
import { WelcomePage } from "@/pages/WelcomePage" import { WelcomePage } from "@/pages/WelcomePage"
@@ -83,9 +85,11 @@ function AppRoutes() {
<Routes> <Routes>
<Route path="/" element={<Navigate to={`/app/category/${Constants.categories.all.id}`} replace />} /> <Route path="/" element={<Navigate to={`/app/category/${Constants.categories.all.id}`} replace />} />
<Route path="welcome" element={<WelcomePage />} /> <Route path="welcome" element={<WelcomePage />} />
<Route path="setup" element={<InitialSetupPage />} />
<Route path="login" element={<LoginPage />} /> <Route path="login" element={<LoginPage />} />
<Route path="register" element={<RegistrationPage />} /> <Route path="register" element={<RegistrationPage />} />
<Route path="passwordRecovery" element={<PasswordRecoveryPage />} /> <Route path="passwordRecovery" element={<PasswordRecoveryPage />} />
<Route path="passwordReset" element={<PasswordResetPage />} />
<Route path="app" element={<Layout header={<Header />} sidebar={<Tree />} sidebarVisible={sidebarVisible} />}> <Route path="app" element={<Layout header={<Header />} sidebar={<Tree />} sidebarVisible={sidebarVisible} />}>
<Route path="category"> <Route path="category">
<Route path=":id" element={<FeedEntriesPage sourceType="category" />} /> <Route path=":id" element={<FeedEntriesPage sourceType="category" />} />
@@ -113,6 +117,18 @@ function AppRoutes() {
) )
} }
function InitialSetupHandler() {
const serverInfos = useAppSelector(state => state.server.serverInfos)
const dispatch = useAppDispatch()
useEffect(() => {
if (serverInfos?.initialSetupRequired) {
dispatch(redirectToInitialSetup())
}
}, [serverInfos, dispatch])
return null
}
function RedirectHandler() { function RedirectHandler() {
const target = useAppSelector(state => state.redirect.to) const target = useAppSelector(state => state.redirect.to)
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
@@ -179,6 +195,8 @@ function CustomJsHandler() {
document.body.appendChild(script) document.body.appendChild(script)
setScriptLoaded(true) setScriptLoaded(true)
return () => script.remove()
}, [scriptLoaded, loading]) }, [scriptLoaded, loading])
return null return null
@@ -191,6 +209,8 @@ function CustomCssHandler() {
link.type = "text/css" link.type = "text/css"
link.href = "custom_css.css" link.href = "custom_css.css"
document.head.appendChild(link) document.head.appendChild(link)
return () => link.remove()
}, []) }, [])
return null return null
@@ -200,6 +220,7 @@ export function App() {
useI18n() useI18n()
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle) const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon) const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const disablePullToRefresh = useAppSelector(state => state.user.settings?.disablePullToRefresh)
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
useEffect(() => { useEffect(() => {
@@ -213,14 +234,10 @@ export function App() {
<BrowserExtensionBadgeUnreadCountHandler /> <BrowserExtensionBadgeUnreadCountHandler />
<CustomJsHandler /> <CustomJsHandler />
<CustomCssHandler /> <CustomCssHandler />
<DisablePullToRefresh enabled={disablePullToRefresh} />
{/* 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> <HashRouter>
<InitialSetupHandler />
<RedirectHandler /> <RedirectHandler />
<AppRoutes /> <AppRoutes />
</HashRouter> </HashRouter>

View File

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

View File

@@ -40,7 +40,9 @@ export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_,
const state = thunkApi.getState() const state = thunkApi.getState()
const { source } = state.entries const { source } = state.entries
const offset = 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 endpoint = getEndpoint(state.entries.source.type)
const result = await endpoint(buildGetEntriesPaginatedRequest(state, source, offset)) const result = await endpoint(buildGetEntriesPaginatedRequest(state, source, offset))
return result.data 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 redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register")))
export const redirectToInitialSetup = createAppAsyncThunk("redirect/initialSetup", (_, thunkApi) => thunkApi.dispatch(redirectTo("/setup")))
export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", () => { export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", () => {
window.location.href = "api-documentation/" window.location.href = "api-documentation/"
}) })

View File

@@ -196,6 +196,12 @@ export interface PasswordResetRequest {
email: string email: string
} }
export interface PasswordResetConfirmationRequest {
email: string
token: string
password: string
}
export interface ProfileModificationRequest { export interface ProfileModificationRequest {
currentPassword: string currentPassword: string
email: string email: string
@@ -209,17 +215,26 @@ export interface RegistrationRequest {
email: string email: string
} }
export interface InitialSetupRequest {
name: string
password: string
email?: string
}
export interface ServerInfo { export interface ServerInfo {
announcement?: string announcement?: string
version: string version: string
gitCommit: string gitCommit: string
allowRegistrations: boolean allowRegistrations: boolean
emailAddressRequired: boolean
smtpEnabled: boolean smtpEnabled: boolean
demoAccountEnabled: boolean demoAccountEnabled: boolean
websocketEnabled: boolean websocketEnabled: boolean
websocketPingInterval: number websocketPingInterval: number
treeReloadInterval: number treeReloadInterval: number
forceRefreshCooldownDuration: number forceRefreshCooldownDuration: number
initialSetupRequired: boolean
minimumPasswordLength: number
} }
export interface SharingSettings { export interface SharingSettings {
@@ -234,7 +249,7 @@ export interface SharingSettings {
} }
export interface Settings { export interface Settings {
language: string language?: string
readingMode: ReadingMode readingMode: ReadingMode
readingOrder: ReadingOrder readingOrder: ReadingOrder
showRead: boolean showRead: boolean
@@ -252,6 +267,7 @@ export interface Settings {
mobileFooter: boolean mobileFooter: boolean
unreadCountTitle: boolean unreadCountTitle: boolean
unreadCountFavicon: boolean unreadCountFavicon: boolean
disablePullToRefresh: boolean
primaryColor?: string primaryColor?: string
sharingSettings: SharingSettings sharingSettings: SharingSettings
} }

View File

@@ -4,6 +4,7 @@ import { createSlice, isAnyOf, type PayloadAction } from "@reduxjs/toolkit"
import type { LocalSettings, Settings, UserModel, ViewMode } from "@/app/types" import type { LocalSettings, Settings, UserModel, ViewMode } from "@/app/types"
import { import {
changeCustomContextMenu, changeCustomContextMenu,
changeDisablePullToRefresh,
changeEntriesToKeepOnTopWhenScrolling, changeEntriesToKeepOnTopWhenScrolling,
changeExternalLinkIconDisplayMode, changeExternalLinkIconDisplayMode,
changeLanguage, changeLanguage,
@@ -135,6 +136,10 @@ export const userSlice = createSlice({
if (!state.settings) return if (!state.settings) return
state.settings.unreadCountFavicon = action.meta.arg state.settings.unreadCountFavicon = action.meta.arg
}) })
builder.addCase(changeDisablePullToRefresh.pending, (state, action) => {
if (!state.settings) return
state.settings.disablePullToRefresh = action.meta.arg
})
builder.addCase(changePrimaryColor.pending, (state, action) => { builder.addCase(changePrimaryColor.pending, (state, action) => {
if (!state.settings) return if (!state.settings) return
state.settings.primaryColor = action.meta.arg state.settings.primaryColor = action.meta.arg
@@ -143,6 +148,7 @@ export const userSlice = createSlice({
if (!state.settings) return if (!state.settings) return
state.settings.sharingSettings[action.meta.arg.site] = action.meta.arg.value state.settings.sharingSettings[action.meta.arg.site] = action.meta.arg.value
}) })
builder.addMatcher( builder.addMatcher(
isAnyOf( isAnyOf(
changeLanguage.fulfilled, changeLanguage.fulfilled,
@@ -159,6 +165,7 @@ export const userSlice = createSlice({
changeMobileFooter.fulfilled, changeMobileFooter.fulfilled,
changeUnreadCountTitle.fulfilled, changeUnreadCountTitle.fulfilled,
changeUnreadCountFavicon.fulfilled, changeUnreadCountFavicon.fulfilled,
changeDisablePullToRefresh.fulfilled,
changePrimaryColor.fulfilled, changePrimaryColor.fulfilled,
changeSharingSetting.fulfilled changeSharingSetting.fulfilled
), ),

View File

@@ -122,6 +122,15 @@ export const changeUnreadCountFavicon = createAppAsyncThunk("settings/unreadCoun
client.user.saveSettings({ ...settings, unreadCountFavicon }) client.user.saveSettings({ ...settings, unreadCountFavicon })
}) })
export const changeDisablePullToRefresh = createAppAsyncThunk(
"settings/disablePullToRefresh",
(disablePullToRefresh: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, disablePullToRefresh })
}
)
export const changePrimaryColor = createAppAsyncThunk("settings/primaryColor", (primaryColor: string, thunkApi) => { export const changePrimaryColor = createAppAsyncThunk("settings/primaryColor", (primaryColor: string, thunkApi) => {
const { settings } = thunkApi.getState().user const { settings } = thunkApi.getState().user
if (!settings) return if (!settings) return

View File

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

View File

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

View File

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

View File

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

View File

@@ -63,11 +63,7 @@ export function Header() {
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
const { _ } = useLingui() const { _ } = useLingui()
const searchForm = useForm<{ search: string }>({ const searchForm = useForm<{ search: string }>()
validate: {
search: value => (value.length > 0 && value.length < 3 ? _(msg`Search requires at least 3 characters`) : null),
},
})
const { setValues } = searchForm const { setValues } = searchForm
useEffect(() => { useEffect(() => {

View File

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

View File

@@ -9,6 +9,7 @@ import { useAppDispatch, useAppSelector } from "@/app/store"
import type { IconDisplayMode, ScrollMode, SharingSettings } from "@/app/types" import type { IconDisplayMode, ScrollMode, SharingSettings } from "@/app/types"
import { import {
changeCustomContextMenu, changeCustomContextMenu,
changeDisablePullToRefresh,
changeEntriesToKeepOnTopWhenScrolling, changeEntriesToKeepOnTopWhenScrolling,
changeExternalLinkIconDisplayMode, changeExternalLinkIconDisplayMode,
changeLanguage, changeLanguage,
@@ -42,6 +43,7 @@ export function DisplaySettings() {
const mobileFooter = useAppSelector(state => state.user.settings?.mobileFooter) const mobileFooter = useAppSelector(state => state.user.settings?.mobileFooter)
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle) const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon) const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const disablePullToRefresh = useAppSelector(state => state.user.settings?.disablePullToRefresh)
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings) const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor
const { _ } = useLingui() const { _ } = useLingui()
@@ -141,6 +143,47 @@ export function DisplaySettings() {
onChange={async e => await dispatch(changeMobileFooter(e.currentTarget.checked))} onChange={async e => await dispatch(changeMobileFooter(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={disablePullToRefresh}
onChange={async e => await dispatch(changeDisablePullToRefresh(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))}
>
<Group mt="xs">
{Object.entries(scrollModeOptions).map(e => (
<Radio key={e[0]} value={e[0]} label={e[1]} />
))}
</Group>
</Radio.Group>
<NumberInput
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))}
/>
<Switch
label={<Trans>Scroll smoothly when navigating between entries</Trans>}
checked={scrollSpeed ? scrollSpeed > 0 : false}
onChange={async e => await dispatch(changeScrollSpeed(e.currentTarget.checked))}
/>
<Switch
label={<Trans>In expanded view, scrolling through entries mark them as read</Trans>}
checked={scrollMarks}
onChange={async e => await dispatch(changeScrollMarks(e.currentTarget.checked))}
/>
<Divider label={<Trans>Browser tab</Trans>} labelPosition="center" /> <Divider label={<Trans>Browser tab</Trans>} labelPosition="center" />
<Switch <Switch
@@ -177,40 +220,6 @@ export function DisplaySettings() {
onChange={async e => await dispatch(changeCustomContextMenu(e.currentTarget.checked))} onChange={async e => await dispatch(changeCustomContextMenu(e.currentTarget.checked))}
/> />
<Divider label={<Trans>Scrolling</Trans>} labelPosition="center" />
<Radio.Group
label={<Trans>Scroll selected entry to the top of the page</Trans>}
value={scrollMode}
onChange={async value => await dispatch(changeScrollMode(value as ScrollMode))}
>
<Group mt="xs">
{Object.entries(scrollModeOptions).map(e => (
<Radio key={e[0]} value={e[0]} label={e[1]} />
))}
</Group>
</Radio.Group>
<NumberInput
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))}
/>
<Switch
label={<Trans>Scroll smoothly when navigating between entries</Trans>}
checked={scrollSpeed ? scrollSpeed > 0 : false}
onChange={async e => await dispatch(changeScrollSpeed(e.currentTarget.checked))}
/>
<Switch
label={<Trans>In expanded view, scrolling through entries mark them as read</Trans>}
checked={scrollMarks}
onChange={async e => await dispatch(changeScrollMarks(e.currentTarget.checked))}
/>
<Divider label={<Trans>Sharing sites</Trans>} labelPosition="center" /> <Divider label={<Trans>Sharing sites</Trans>} labelPosition="center" />
<SimpleGrid cols={2}> <SimpleGrid cols={2}>

View File

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

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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0> هل تحتاج إلى حساب؟ </0> <1> اشترك! </ 1>" msgstr "<0> هل تحتاج إلى حساب؟ </0> <1> اشترك! </ 1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "حول" msgstr "حول"
@@ -54,17 +54,22 @@ msgstr "إضافة فئة"
msgid "Add user" msgid "Add user"
msgstr "إضافة مستخدم" msgstr "إضافة مستخدم"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "إداري" msgstr "إداري"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "الكل" msgstr "الكل"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "العودة" msgstr "العودة"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "العودة لتسجيل الدخول" msgstr "العودة لتسجيل الدخول"
@@ -137,39 +143,39 @@ msgstr "العودة لتسجيل الدخول"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "إلغاء" msgstr "إلغاء"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "الفئة" msgstr "الفئة"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "مضغوط" msgstr "مضغوط"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "تأكيد" msgstr "تأكيد"
@@ -221,10 +227,19 @@ msgstr "تأكيد"
msgid "Confirm password" msgid "Confirm password"
msgstr "تأكيد كلمة المرور" msgstr "تأكيد كلمة المرور"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "دافئ" msgstr "دافئ"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "السيطرة" msgstr "السيطرة"
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "تنازلي"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "عرض" msgstr "عرض"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "تنزيل"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "اسحب الرابط إلى شريط الإشارات" msgstr "اسحب الرابط إلى شريط الإشارات"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "البريد الإلكتروني" msgstr "البريد الإلكتروني"
@@ -319,8 +340,8 @@ msgstr "عنوان البريد الإلكتروني"
msgid "Edit user" msgid "Edit user"
msgstr "تحرير المستخدم" msgstr "تحرير المستخدم"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "ممكن" msgstr "ممكن"
@@ -356,8 +377,8 @@ msgstr "موسع"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "قم بتصدير اشتراكاتك وفئاتك كملف OPML يمكن استيراده في خدمات قراءة الأعلاف الأخرى" msgstr "قم بتصدير اشتراكاتك وفئاتك كملف OPML يمكن استيراده في خدمات قراءة الأعلاف الأخرى"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "اسم الخلاصة" msgstr "اسم الخلاصة"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "موجز URL" msgstr "موجز URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "هل نسيت كلمة المرور؟" msgstr "هل نسيت كلمة المرور؟"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص بك أولاً." msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص بك أولاً."
@@ -409,9 +430,9 @@ msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص
msgid "Generate new API key" msgid "Generate new API key"
msgstr "إنشاء مفتاح API جديد" msgstr "إنشاء مفتاح API جديد"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "رابط الخلاصة المولدة" msgstr "رابط الخلاصة المولدة"
@@ -472,13 +493,21 @@ msgstr "في العرض الموسع ، التمرير عبر الإدخالات
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "إبقاء غير مقروءة" msgstr "إبقاء غير مقروءة"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "اختصارات لوحة المفاتيح" msgstr "اختصارات لوحة المفاتيح"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "رابط" msgstr "رابط"
@@ -532,9 +561,9 @@ msgstr "تحميل الاشتراكات ..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "تحميل العلامات ..." msgstr "تحميل العلامات ..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "تسجيل الدخول" msgstr "تسجيل الدخول"
@@ -546,8 +575,8 @@ msgstr "تسجيل الخروج"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "إدارة المستخدمين" msgstr "إدارة المستخدمين"
@@ -555,18 +584,18 @@ msgstr "إدارة المستخدمين"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "تعليم الكل كمقروء" msgstr "تعليم الكل كمقروء"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "تعليم كافة الإدخالات كمقروءة" msgstr "تعليم كافة الإدخالات كمقروءة"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "وضع علامة كمقروء" msgstr "وضع علامة كمقروء"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "وضع علامة كمقروءة حتى هنا" msgstr "وضع علامة كمقروءة حتى هنا"
@@ -586,15 +615,15 @@ msgstr "تحريك الصفحة لأسفل"
msgid "Move the page up" msgid "Move the page up"
msgstr "تحريك الصفحة لأعلى" msgstr "تحريك الصفحة لأعلى"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "لا" msgstr "لا"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "الاسم" msgstr "الاسم"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "كلمة مرور جديدة" msgstr "كلمة مرور جديدة"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "الأحدث أولاً" msgstr "الأحدث أولاً"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "التالي" msgstr "التالي"
@@ -742,19 +776,25 @@ msgstr "والد"
msgid "Parent Category" msgid "Parent Category"
msgstr "الفئة الأصل" msgstr "الفئة الأصل"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "كلمة المرور" msgstr "كلمة المرور"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "استعادة كلمة المرور" msgstr "استعادة كلمة المرور"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "كلمات المرور غير متطابقة" msgstr "كلمات المرور غير متطابقة"
@@ -762,8 +802,8 @@ msgstr "كلمات المرور غير متطابقة"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "المنـصب" msgstr "المنـصب"
@@ -787,8 +827,8 @@ msgstr "استعادة كلمة السر"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "تحديث" msgstr "تحديث"
@@ -796,6 +836,11 @@ msgstr "تحديث"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "تم إغلاق التسجيلات في مثيل CommaFeed هذا" msgstr "تم إغلاق التسجيلات في مثيل CommaFeed هذا"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "حفظ" msgstr "حفظ"
@@ -825,17 +870,13 @@ msgstr "قم بالتمرير بسلاسة عند التنقل بين الإدخ
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "بحث" msgstr "بحث"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "يتطلب البحث 3 أحرف على الأقل"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "قم بالتسجيل" msgstr "قم بالتسجيل"
@@ -933,21 +974,21 @@ msgstr "شيء سيء حدث للتو ..."
msgid "Space" msgid "Space"
msgstr "فضاء" msgstr "فضاء"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "النجم" msgstr "النجم"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "مميز بنجمة" msgstr "مميز بنجمة"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "اشتراك" msgstr "اشتراك"
@@ -1000,6 +1041,10 @@ msgstr "الموضوع"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "تبديل قراءة حالة الإدخال الحالي" msgstr "تبديل قراءة حالة الإدخال الحالي"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "غير مقروءة" msgstr "غير مقروءة"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "إلغاء النجم" msgstr "إلغاء النجم"
@@ -1056,6 +1101,10 @@ msgstr "تحذير"
msgid "Website" msgid "Website"
msgstr "موقع الكتروني" msgstr "موقع الكتروني"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "ليس لديك أي اشتراكات حتى الآن. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr "<0>Ei,</0><1> sóc la Jérémie de Bèlgica i fa més de 10 anys que tre
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Necessites un compte?</0><1>Registreu-vos!</1>" msgstr "<0>Necessites un compte?</0><1>Registreu-vos!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Sobre" msgstr "Sobre"
@@ -44,7 +44,7 @@ msgstr "Accions"
#: src/components/content/add/AddCategory.tsx #: src/components/content/add/AddCategory.tsx
msgid "Add" msgid "Add"
msgstr "Afegir" msgstr "Afegeix"
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
msgid "Add category" msgid "Add category"
@@ -54,17 +54,22 @@ msgstr "Afegeix categoria"
msgid "Add user" msgid "Add user"
msgstr "Afegeix usuari" msgstr "Afegeix usuari"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Administrador" msgstr "Administrador"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Tot" msgstr "Tot"
@@ -83,7 +88,7 @@ msgstr "Un fitxer opml és un fitxer XML que conté URL i categories de canals.
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
msgid "Analyze feed" msgid "Analyze feed"
msgstr "Analitzar el feed" msgstr "Analitza el canal"
#: src/components/AnnouncementDialog.tsx #: src/components/AnnouncementDialog.tsx
msgid "Announcement" msgid "Announcement"
@@ -91,11 +96,11 @@ msgstr "Anunci"
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
msgid "API key" msgid "API key"
msgstr "clau API" msgstr "Clau API"
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
msgid "Are you sure you want to delete category <0>{categoryName}</0>?" 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 #: src/pages/admin/AdminUsersPage.tsx
msgid "Are you sure you want to delete user <0>{userName}</0> ?" msgid "Are you sure you want to delete user <0>{userName}</0> ?"
@@ -115,7 +120,7 @@ msgstr "Esteu segur que voleu marcar les entrades més antigues de {threshold} d
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Are you sure you want to unsubscribe from <0>{feedName}</0>?" 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 #: src/components/header/Header.tsx
msgid "Asc" msgid "Asc"
@@ -130,46 +135,47 @@ msgid "Back"
msgstr "Enrere" msgstr "Enrere"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Tornar a iniciar sessió" msgstr "Torna a iniciar sessió"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Blue" msgid "Blue"
msgstr "Blau" msgstr "Blau"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extensió del navegador"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "Extensió del navegador necessària per a 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 #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "Pestanya del navegador" msgstr "Pestanya del navegador"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Cancel·la" msgstr "Cancel·la"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Categoria" msgstr "Categoria"
@@ -209,11 +215,11 @@ msgstr "CommaFeed versió {version} ({version})."
msgid "Compact" msgid "Compact"
msgstr "Compacte" msgstr "Compacte"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Confirma" msgstr "Confirma"
@@ -221,10 +227,19 @@ msgstr "Confirma"
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirmeu la contrasenya" msgstr "Confirmeu la contrasenya"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Acollidor" msgstr "Acollidor"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "Codi JS personalitzat que s'executarà en carregar la pàgina"
msgid "Cyan" msgid "Cyan"
msgstr "Cian" msgstr "Cian"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Fosc" msgstr "Fosc"
@@ -283,14 +298,18 @@ msgstr "Desc"
msgid "Detailed" msgid "Detailed"
msgstr "Detallat" msgstr "Detallat"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: 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/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Mostra" msgstr "Mostra"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Donar" msgstr "Donar"
@@ -302,11 +321,13 @@ msgstr "Descarrega"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Arrossegueu l'enllaç a la barra d'adreces d'interès" msgstr "Arrossegueu l'enllaç a la barra d'adreces d'interès"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "Correu electrònic" msgstr "Correu electrònic"
@@ -319,10 +340,10 @@ msgstr "Adreça de correu electrònic"
msgid "Edit user" msgid "Edit user"
msgstr "Edita l'usuari" msgstr "Edita l'usuari"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "activat" msgstr "Activat"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Enter" msgid "Enter"
@@ -356,8 +377,8 @@ msgstr "Ampliat"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "exporteu les vostres subscripcions i categories com a fitxer OPML que es pot importar a altres serveis de lectura de feeds" msgstr "exporteu les vostres subscripcions i categories com a fitxer OPML que es pot importar a altres serveis de lectura de feeds"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Opcions de l'extensió" msgstr "Opcions de l'extensió"
@@ -365,9 +386,9 @@ msgstr "Opcions de l'extensió"
msgid "Feed name" msgid "Feed name"
msgstr "Nom del canal" msgstr "Nom del canal"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL del canal" msgstr "URL del canal"
@@ -399,9 +420,9 @@ msgstr "La recuperació forçada de feeds encara no està disponible."
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Heu oblidat la contrasenya?" msgstr "Heu oblidat la contrasenya?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "primer genereu una clau API al vostre perfil." msgstr "primer genereu una clau API al vostre perfil."
@@ -409,9 +430,9 @@ msgstr "primer genereu una clau API al vostre perfil."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Genera una nova clau d'API" msgstr "Genera una nova clau d'API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "URL del feed generat" msgstr "URL del feed generat"
@@ -430,7 +451,7 @@ msgstr "Vés a la documentació de l'API."
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Goodies" msgid "Goodies"
msgstr "Bones" msgstr "Extres"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Grape" msgid "Grape"
@@ -472,13 +493,21 @@ msgstr "En la vista ampliada, en desplaçar-se per les entrades, es marquen com
msgid "Indigo" msgid "Indigo"
msgstr "Indi" msgstr "Indi"
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Mantenir sense llegir" msgstr "Mantenir sense llegir"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Dreceres de teclat" msgstr "Dreceres de teclat"
@@ -506,9 +535,9 @@ msgstr "Clar"
msgid "Lime" msgid "Lime"
msgstr "Llima" msgstr "Llima"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Enllaç" msgstr "Enllaç"
@@ -532,9 +561,9 @@ msgstr "S'estan carregant les subscripcions..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Carregant les etiquetes..." msgstr "Carregant les etiquetes..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Inicia sessió" msgstr "Inicia sessió"
@@ -546,8 +575,8 @@ msgstr "Tanca sessió"
msgid "Long press" msgid "Long press"
msgstr "Prem llargament la tecla" msgstr "Prem llargament la tecla"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Gestionar usuaris" msgstr "Gestionar usuaris"
@@ -555,18 +584,18 @@ msgstr "Gestionar usuaris"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Marca-ho tot com a llegit" msgstr "Marca-ho tot com a llegit"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Marqueu totes les entrades com a llegides" msgstr "Marqueu totes les entrades com a llegides"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Marca com a llegit" msgstr "Marca com a llegit"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Marca com a llegit fins aquí" msgstr "Marca com a llegit fins aquí"
@@ -586,15 +615,15 @@ msgstr "Mou la pàgina cap avall"
msgid "Move the page up" msgid "Move the page up"
msgstr "Mou la pàgina cap amunt" msgstr "Mou la pàgina cap amunt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "No es coneix" msgstr "No es coneix"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
@@ -615,12 +644,17 @@ msgstr "Mai"
msgid "New password" msgid "New password"
msgstr "Contrasenya nova" msgstr "Contrasenya nova"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "El més nou primer" msgstr "El més nou primer"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Següent" msgstr "Següent"
@@ -650,7 +684,7 @@ msgstr "el més vell primer"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "On desktop" msgid "On desktop"
msgstr "A l'scriptori" msgstr "A l'escriptori"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "On mobile" msgid "On mobile"
@@ -742,19 +776,25 @@ msgstr "pares"
msgid "Parent Category" msgid "Parent Category"
msgstr "Categoria pare" msgstr "Categoria pare"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Contrasenya" msgstr "Contrasenya"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Recuperació de contrasenya" msgstr "Recuperació de contrasenya"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Les contrasenyes no coincideixen" msgstr "Les contrasenyes no coincideixen"
@@ -762,8 +802,8 @@ msgstr "Les contrasenyes no coincideixen"
msgid "Pink" msgid "Pink"
msgstr "Rosa" msgstr "Rosa"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posició" msgstr "Posició"
@@ -787,8 +827,8 @@ msgstr "Recuperar la contrasenya"
msgid "Red" msgid "Red"
msgstr "Vermell" msgstr "Vermell"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Actualitzar" msgstr "Actualitzar"
@@ -796,6 +836,11 @@ msgstr "Actualitzar"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Els registres estan tancats en aquesta instància de CommaFeed" msgstr "Els registres estan tancats en aquesta instància de CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "API REST" msgstr "API REST"
@@ -805,11 +850,11 @@ msgstr "API REST"
msgid "Right click" msgid "Right click"
msgstr "Clic dret" msgstr "Clic dret"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Desa" msgstr "Desa"
@@ -825,17 +870,13 @@ msgstr "Desplaceu-vos suaument quan navegueu entre entrades"
msgid "Scrolling" msgid "Scrolling"
msgstr "Desplaçament" msgstr "Desplaçament"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Cerca" msgstr "Cerca"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "La cerca requereix almenys 3 caràcters"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "Selecciona el següent canal/categoria no llegit" msgstr "Selecciona el següent canal/categoria no llegit"
@@ -918,9 +959,9 @@ msgstr "Mostra el recompte de no llegits a la icona de favorits de la pestanya"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "Mostra el recompte de no llegits al títol de la pestanya" 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 #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Registra't" msgstr "Registra't"
@@ -933,21 +974,21 @@ msgstr "Acaba de passar una cosa dolenta..."
msgid "Space" msgid "Space"
msgstr "Espai" msgstr "Espai"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Estrella" msgstr "Estrella"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Estrellat" msgstr "Estrellat"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Subscriu-te" msgstr "Subscriu-te"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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." 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 #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Canvia l'estat de lectura de l'entrada actual" msgstr "Canvia l'estat de lectura de l'entrada actual"
@@ -1024,8 +1069,8 @@ msgstr "Prova la demostració!"
msgid "Unread" msgid "Unread"
msgstr "Sense llegir" msgstr "Sense llegir"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Desestrellar" msgstr "Desestrellar"
@@ -1056,6 +1101,10 @@ msgstr "Avís"
msgid "Website" msgid "Website"
msgstr "Lloc web" msgstr "Lloc web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "Groc" msgstr "Groc"
@@ -1067,3 +1116,7 @@ msgstr "Encara no teniu cap subscripció. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "Els vostres feeds s'han posat a la cua per actualitzar-los." 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 ""

View File

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Potřebujete účet?</0><1>Zaregistrujte se!</1>" msgstr "<0>Potřebujete účet?</0><1>Zaregistrujte se!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Asi" msgstr "Asi"
@@ -54,17 +54,22 @@ msgstr "Přidat kategorii"
msgid "Add user" msgid "Add user"
msgstr "Přidat uživatele" msgstr "Přidat uživatele"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Správce" msgstr "Správce"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Všechny" msgstr "Všechny"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Zpět" msgstr "Zpět"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Zpět k přihlášení" msgstr "Zpět k přihlášení"
@@ -137,39 +143,39 @@ msgstr "Zpět k přihlášení"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Zrušit" msgstr "Zrušit"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategorie" msgstr "Kategorie"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompaktní" msgstr "Kompaktní"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Potvrdit" msgstr "Potvrdit"
@@ -221,10 +227,19 @@ msgstr "Potvrdit"
msgid "Confirm password" msgid "Confirm password"
msgstr "Potvrďte heslo" msgstr "Potvrďte heslo"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Útulný" msgstr "Útulný"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Displej" msgstr "Displej"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Stáhnout"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Přetáhněte odkaz na lištu záložek" msgstr "Přetáhněte odkaz na lištu záložek"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "E-mailová adresa"
msgid "Edit user" msgid "Edit user"
msgstr "Upravit uživatele" msgstr "Upravit uživatele"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Povoleno" msgstr "Povoleno"
@@ -356,8 +377,8 @@ msgstr "Rozbaleno"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exportujte svá předplatná a kategorie jako soubor OPML, který lze importovat do jiných služeb čtení kanálů" msgstr "Exportujte svá předplatná a kategorie jako soubor OPML, který lze importovat do jiných služeb čtení kanálů"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Název zdroje" msgstr "Název zdroje"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL zdroje" msgstr "URL zdroje"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Zapomněli jste heslo?" msgstr "Zapomněli jste heslo?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Nejprve ve svém profilu vygenerujte klíč API." msgstr "Nejprve ve svém profilu vygenerujte klíč API."
@@ -409,9 +430,9 @@ msgstr "Nejprve ve svém profilu vygenerujte klíč API."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Vygenerujte nový klíč API" msgstr "Vygenerujte nový klíč API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Generovaná adresa URL zdroje" msgstr "Generovaná adresa URL zdroje"
@@ -472,13 +493,21 @@ msgstr "V rozšířeném zobrazení je procházením označíte jako přečtené
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Ponechat nepřečtené" msgstr "Ponechat nepřečtené"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Klávesové zkratky" msgstr "Klávesové zkratky"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Odkaz" msgstr "Odkaz"
@@ -532,9 +561,9 @@ msgstr "Načítání odběrů..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Načítání značek..." msgstr "Načítání značek..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Přihlaste se" msgstr "Přihlaste se"
@@ -546,8 +575,8 @@ msgstr "Odhlášení"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Spravujte uživatele" msgstr "Spravujte uživatele"
@@ -555,18 +584,18 @@ msgstr "Spravujte uživatele"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Označit vše jako přečtené" msgstr "Označit vše jako přečtené"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Označte všechny položky jako přečtené" msgstr "Označte všechny položky jako přečtené"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Označit jako přečtené" msgstr "Označit jako přečtené"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Označit jako přečtené až sem" msgstr "Označit jako přečtené až sem"
@@ -586,15 +615,15 @@ msgstr "Přesuňte stránku dolů"
msgid "Move the page up" msgid "Move the page up"
msgstr "Přesuňte stránku nahoru" msgstr "Přesuňte stránku nahoru"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Jméno" msgstr "Jméno"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nové heslo" msgstr "Nové heslo"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Nejnovější jako první" msgstr "Nejnovější jako první"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Další" msgstr "Další"
@@ -742,19 +776,25 @@ msgstr "Rodič"
msgid "Parent Category" msgid "Parent Category"
msgstr "Rodičovská kategorie" msgstr "Rodičovská kategorie"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Heslo" msgstr "Heslo"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Obnovení hesla" msgstr "Obnovení hesla"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Hesla se neshodují" msgstr "Hesla se neshodují"
@@ -762,8 +802,8 @@ msgstr "Hesla se neshodují"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Pozice" msgstr "Pozice"
@@ -787,8 +827,8 @@ msgstr "Obnovte heslo"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Obnovit" msgstr "Obnovit"
@@ -796,6 +836,11 @@ msgstr "Obnovit"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "V této instanci CommaFeed jsou registrace uzavřeny" msgstr "V této instanci CommaFeed jsou registrace uzavřeny"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Uložit" msgstr "Uložit"
@@ -825,17 +870,13 @@ msgstr "Posouvejte plynule při navigaci mezi položkami"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Hledej" msgstr "Hledej"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Hledání vyžaduje alespoň 3 znaky"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Zaregistrujte se" msgstr "Zaregistrujte se"
@@ -933,21 +974,21 @@ msgstr "Právě se stalo něco špatného..."
msgid "Space" msgid "Space"
msgstr "Vesmír" msgstr "Vesmír"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Hvězda" msgstr "Hvězda"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "S hvězdičkou" msgstr "S hvězdičkou"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Přihlaste se" msgstr "Přihlaste se"
@@ -1000,6 +1041,10 @@ msgstr "Téma"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Přepne stav čtení aktuálního záznamu" msgstr "Přepne stav čtení aktuálního záznamu"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Nepřečteno" msgstr "Nepřečteno"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Odstranit hvězdu" msgstr "Odstranit hvězdu"
@@ -1056,6 +1101,10 @@ msgstr "Varování"
msgid "Website" msgid "Website"
msgstr "Webové stránky" msgstr "Webové stránky"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Zatím nemáte žádné předplatné. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Angen cyfrif?</0><1>Ymunwch!</1>" msgstr "<0>Angen cyfrif?</0><1>Ymunwch!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Ynghylch" msgstr "Ynghylch"
@@ -54,17 +54,22 @@ msgstr "Ychwanegu categori"
msgid "Add user" msgid "Add user"
msgstr "Ychwanegu defnyddiwr" msgstr "Ychwanegu defnyddiwr"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Gweinyddol" msgstr "Gweinyddol"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Pawb" msgstr "Pawb"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Yn ôl" msgstr "Yn ôl"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Yn ôl i fewngofnodi" msgstr "Yn ôl i fewngofnodi"
@@ -137,39 +143,39 @@ msgstr "Yn ôl i fewngofnodi"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Diddymu" msgstr "Diddymu"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "categori" msgstr "categori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "cryno" msgstr "cryno"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Cadarnhau" msgstr "Cadarnhau"
@@ -221,10 +227,19 @@ msgstr "Cadarnhau"
msgid "Confirm password" msgid "Confirm password"
msgstr "Cadarnhau'r cyfrinair" msgstr "Cadarnhau'r cyfrinair"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "clyd" msgstr "clyd"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "Rhag"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Arddangos" msgstr "Arddangos"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Lawrlwytho"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Llusgwch y ddolen i'r bar nod tudalen" msgstr "Llusgwch y ddolen i'r bar nod tudalen"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-bost" msgstr "E-bost"
@@ -319,8 +340,8 @@ msgstr "cyfeiriad e-bost"
msgid "Edit user" msgid "Edit user"
msgstr "Golygu defnyddiwr" msgstr "Golygu defnyddiwr"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Wedi'i alluogi" msgstr "Wedi'i alluogi"
@@ -356,8 +377,8 @@ msgstr "Ehangu"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Allforio eich tanysgrifiadau a'ch categorïau fel ffeil OPML y gellir ei mewnforio i wasanaethau darllen porthiant eraill" msgstr "Allforio eich tanysgrifiadau a'ch categorïau fel ffeil OPML y gellir ei mewnforio i wasanaethau darllen porthiant eraill"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Enw porthiant" msgstr "Enw porthiant"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL porthiant" msgstr "URL porthiant"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Wedi anghofio cyfrinair?" msgstr "Wedi anghofio cyfrinair?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf." msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf."
@@ -409,9 +430,9 @@ msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Cynhyrchu allwedd API newydd" msgstr "Cynhyrchu allwedd API newydd"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "url porthiant a gynhyrchir" msgstr "url porthiant a gynhyrchir"
@@ -472,13 +493,21 @@ msgstr "Mewn gwedd estynedig, mae sgrolio trwy gofnodion yn nodi eu bod wedi'u d
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Cadwch heb ei ddarllen" msgstr "Cadwch heb ei ddarllen"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "llwybrau byr bysellfwrdd" msgstr "llwybrau byr bysellfwrdd"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Cyswllt" msgstr "Cyswllt"
@@ -532,9 +561,9 @@ msgstr "Yn llwytho tanysgrifiadau..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Wrthi'n llwytho tagiau..." msgstr "Wrthi'n llwytho tagiau..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Mewngofnodi" msgstr "Mewngofnodi"
@@ -546,8 +575,8 @@ msgstr "Allgofnodi"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Rheoli defnyddwyr" msgstr "Rheoli defnyddwyr"
@@ -555,18 +584,18 @@ msgstr "Rheoli defnyddwyr"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Marciwch y cyfan wedi'i ddarllen" msgstr "Marciwch y cyfan wedi'i ddarllen"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Marciwch bob cofnod wedi'i ddarllen" msgstr "Marciwch bob cofnod wedi'i ddarllen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Marciwch ei fod wedi'i ddarllen" msgstr "Marciwch ei fod wedi'i ddarllen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Marciwch fel y darllenwyd hyd yma" msgstr "Marciwch fel y darllenwyd hyd yma"
@@ -586,15 +615,15 @@ msgstr "Symudwch y dudalen i lawr"
msgid "Move the page up" msgid "Move the page up"
msgstr "Symudwch y dudalen i fyny" msgstr "Symudwch y dudalen i fyny"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "Amh" msgstr "Amh"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Enw" msgstr "Enw"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Cyfrinair newydd" msgstr "Cyfrinair newydd"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Y diweddaraf yn gyntaf" msgstr "Y diweddaraf yn gyntaf"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Nesaf" msgstr "Nesaf"
@@ -742,19 +776,25 @@ msgstr "rhiant"
msgid "Parent Category" msgid "Parent Category"
msgstr "Categori Rhiant" msgstr "Categori Rhiant"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "cyfrinair" msgstr "cyfrinair"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Adfer Cyfrinair" msgstr "Adfer Cyfrinair"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Nid yw cyfrineiriau yn cyfateb" msgstr "Nid yw cyfrineiriau yn cyfateb"
@@ -762,8 +802,8 @@ msgstr "Nid yw cyfrineiriau yn cyfateb"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Swydd" msgstr "Swydd"
@@ -787,8 +827,8 @@ msgstr "Adfer cyfrinair"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Adnewyddu" msgstr "Adnewyddu"
@@ -796,6 +836,11 @@ msgstr "Adnewyddu"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Mae cofrestriadau ar gau ar yr achos CommaFeed hwn" msgstr "Mae cofrestriadau ar gau ar yr achos CommaFeed hwn"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Arbed" msgstr "Arbed"
@@ -825,17 +870,13 @@ msgstr "Sgroliwch yn esmwyth wrth lywio rhwng cofnodion"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Chwilio" msgstr "Chwilio"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Mae angen o leiaf 3 nod ar gyfer chwilio"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Cofrestrwch" msgstr "Cofrestrwch"
@@ -933,21 +974,21 @@ msgstr "Mae rhywbeth drwg newydd ddigwydd ..."
msgid "Space" msgid "Space"
msgstr "Gofod" msgstr "Gofod"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "seren" msgstr "seren"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "serennog" msgstr "serennog"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Tanysgrifio" msgstr "Tanysgrifio"
@@ -1000,6 +1041,10 @@ msgstr "Thema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Toglo statws darllen y cofnod cyfredol" msgstr "Toglo statws darllen y cofnod cyfredol"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Heb ei ddarllen" msgstr "Heb ei ddarllen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "dad-seren" msgstr "dad-seren"
@@ -1056,6 +1101,10 @@ msgstr "Rhybudd"
msgid "Website" msgid "Website"
msgstr "Gwefan" msgstr "Gwefan"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Nid oes gennych unrhyw danysgrifiadau eto. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Har du brug for en konto?</0><1>Tilmeld dig!</1>" msgstr "<0>Har du brug for en konto?</0><1>Tilmeld dig!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Omkring" msgstr "Omkring"
@@ -54,17 +54,22 @@ msgstr "Tilføj kategori"
msgid "Add user" msgid "Add user"
msgstr "Tilføj bruger" msgstr "Tilføj bruger"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Tilbage" msgstr "Tilbage"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Tilbage for at logge ind" msgstr "Tilbage for at logge ind"
@@ -137,39 +143,39 @@ msgstr "Tilbage for at logge ind"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Annuller" msgstr "Annuller"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Bekræft" msgstr "Bekræft"
@@ -221,10 +227,19 @@ msgstr "Bekræft"
msgid "Confirm password" msgid "Confirm password"
msgstr "Bekræft adgangskode" msgstr "Bekræft adgangskode"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Hyggeligt" msgstr "Hyggeligt"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Skærm" msgstr "Skærm"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr ""
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Træk linket til bogmærkelinjen" msgstr "Træk linket til bogmærkelinjen"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "E-mailadresse"
msgid "Edit user" msgid "Edit user"
msgstr "Rediger bruger" msgstr "Rediger bruger"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Aktiveret" msgstr "Aktiveret"
@@ -356,8 +377,8 @@ msgstr "Udvidet"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Eksporter dine abonnementer og kategorier som en OPML-fil, der kan importeres i andre feed-læsningstjenester" msgstr "Eksporter dine abonnementer og kategorier som en OPML-fil, der kan importeres i andre feed-læsningstjenester"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Feednavn" msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "" msgstr ""
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Glemt adgangskode?" msgstr "Glemt adgangskode?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Generer først en API-nøgle i din profil." msgstr "Generer først en API-nøgle i din profil."
@@ -409,9 +430,9 @@ msgstr "Generer først en API-nøgle i din profil."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Generer ny API-nøgle" msgstr "Generer ny API-nøgle"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Genereret feed-url" msgstr "Genereret feed-url"
@@ -472,13 +493,21 @@ msgstr "I udvidet visning markerer du dem som læst, når du ruller gennem poste
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Forbehold ulæst" msgstr "Forbehold ulæst"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Tastaturgenveje" msgstr "Tastaturgenveje"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "" msgstr ""
@@ -532,9 +561,9 @@ msgstr "Indlæser abonnementer..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Indlæser tags..." msgstr "Indlæser tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Log ind" msgstr "Log ind"
@@ -546,8 +575,8 @@ msgstr "Log ud"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Administrer brugere" msgstr "Administrer brugere"
@@ -555,18 +584,18 @@ msgstr "Administrer brugere"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Marker alle som læst" msgstr "Marker alle som læst"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Marker alle poster som læst" msgstr "Marker alle poster som læst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Markér som læst" msgstr "Markér som læst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Markér som læst indtil her" msgstr "Markér som læst indtil her"
@@ -586,15 +615,15 @@ msgstr "Flyt siden ned"
msgid "Move the page up" msgid "Move the page up"
msgstr "Flyt siden op" msgstr "Flyt siden op"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Navn" msgstr "Navn"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Ny adgangskode" msgstr "Ny adgangskode"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Nyeste først" msgstr "Nyeste først"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Næste" msgstr "Næste"
@@ -742,19 +776,25 @@ msgstr "Forælder"
msgid "Parent Category" msgid "Parent Category"
msgstr "Forældrekategori" msgstr "Forældrekategori"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Adgangskode" msgstr "Adgangskode"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Gendannelse af adgangskode" msgstr "Gendannelse af adgangskode"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Adgangskoder stemmer ikke overens" msgstr "Adgangskoder stemmer ikke overens"
@@ -762,8 +802,8 @@ msgstr "Adgangskoder stemmer ikke overens"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "" msgstr ""
@@ -787,8 +827,8 @@ msgstr "Gendan adgangskode"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Opdater" msgstr "Opdater"
@@ -796,6 +836,11 @@ msgstr "Opdater"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringer er lukket på denne CommaFeed-instans" msgstr "Registreringer er lukket på denne CommaFeed-instans"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Gem" msgstr "Gem"
@@ -825,17 +870,13 @@ msgstr "Rul jævnt, når du navigerer mellem poster"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Søg" msgstr "Søg"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Søgning kræver mindst 3 tegn"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Tilmeld dig" msgstr "Tilmeld dig"
@@ -933,21 +974,21 @@ msgstr "Der er lige sket noget slemt..."
msgid "Space" msgid "Space"
msgstr "Rum" msgstr "Rum"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Stjerne" msgstr "Stjerne"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Medvirkende" msgstr "Medvirkende"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Tilmeld" msgstr "Tilmeld"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Skift læsestatus for den aktuelle post" msgstr "Skift læsestatus for den aktuelle post"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Ulæst" msgstr "Ulæst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "" msgstr ""
@@ -1056,6 +1101,10 @@ msgstr "Advarsel"
msgid "Website" msgid "Website"
msgstr "Hjemmeside" msgstr "Hjemmeside"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Du har ingen abonnementer endnu. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr "<0>Hey,</0><1>Ich bin Jérémie aus Belgien und arbeite seit über 10 Ja
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Benötigen Sie ein Konto?</0><1>Hier geht's zur Registrierung!</1>" msgstr "<0>Benötigen Sie ein Konto?</0><1>Hier geht's zur Registrierung!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Über" msgstr "Über"
@@ -54,17 +54,22 @@ msgstr "Kategorie hinzufügen"
msgid "Add user" msgid "Add user"
msgstr "Benutzer hinzufügen" msgstr "Benutzer hinzufügen"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Verwaltung" msgstr "Verwaltung"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Zurück" msgstr "Zurück"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Zurück zum Login" msgstr "Zurück zum Login"
@@ -137,39 +143,39 @@ msgstr "Zurück zum Login"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Browser-Erweiterung"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "Browser-Erweiterung für Chrome benötigt" msgstr "Browser-Erweiterung für Chrome benötigt"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Browser-Erweiterung"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Abbrechen" msgstr "Abbrechen"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategorie" msgstr "Kategorie"
@@ -209,11 +215,11 @@ msgstr "CommaFeed version {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Bestätigen" msgstr "Bestätigen"
@@ -221,10 +227,19 @@ msgstr "Bestätigen"
msgid "Confirm password" msgid "Confirm password"
msgstr "Passwort bestätigen" msgstr "Passwort bestätigen"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Gemütlich" msgstr "Gemütlich"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Strg" msgstr "Strg"
@@ -249,8 +264,8 @@ msgstr "Einer JS Code der beim Laden der Seite ausgeführt wird"
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Dunkel" msgstr "Dunkel"
@@ -283,14 +298,18 @@ msgstr "Beschr"
msgid "Detailed" msgid "Detailed"
msgstr "Detailliert" msgstr "Detailliert"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Anzeige" msgstr "Anzeige"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Spenden" msgstr "Spenden"
@@ -302,11 +321,13 @@ msgstr "Herunterladen"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Link in Lesezeichenleiste ziehen" msgstr "Link in Lesezeichenleiste ziehen"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-Mail" msgstr "E-Mail"
@@ -319,8 +340,8 @@ msgstr "E-Mail-Adresse"
msgid "Edit user" msgid "Edit user"
msgstr "Benutzer bearbeiten" msgstr "Benutzer bearbeiten"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Aktiviert" msgstr "Aktiviert"
@@ -356,8 +377,8 @@ msgstr "Erweitert"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exportieren Sie Ihre Abonnements und Kategorien als OPML-Datei, die in andere Feed-Lesedienste importiert werden kann" msgstr "Exportieren Sie Ihre Abonnements und Kategorien als OPML-Datei, die in andere Feed-Lesedienste importiert werden kann"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Erweiterungsoptionen" msgstr "Erweiterungsoptionen"
@@ -365,9 +386,9 @@ msgstr "Erweiterungsoptionen"
msgid "Feed name" msgid "Feed name"
msgstr "Feedname" msgstr "Feedname"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Feed-URL" msgstr "Feed-URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Passwort vergessen?" msgstr "Passwort vergessen?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil." msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil."
@@ -409,9 +430,9 @@ msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Neuen API-Schlüssel generieren" msgstr "Neuen API-Schlüssel generieren"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Generierte Feed-URL" msgstr "Generierte Feed-URL"
@@ -472,13 +493,21 @@ msgstr "In der erweiterten Ansicht werden Einträge beim Scrollen als gelesen ma
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Ungelesen lassen" msgstr "Ungelesen lassen"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Tastaturkürzel" msgstr "Tastaturkürzel"
@@ -506,9 +535,9 @@ msgstr "Hell"
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Verbindung" msgstr "Verbindung"
@@ -532,9 +561,9 @@ msgstr "Abonnements werden geladen..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Tags werden geladen..." msgstr "Tags werden geladen..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Einloggen" msgstr "Einloggen"
@@ -546,8 +575,8 @@ msgstr "Abmelden"
msgid "Long press" msgid "Long press"
msgstr "Langer Tastendruck" msgstr "Langer Tastendruck"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Benutzer verwalten" msgstr "Benutzer verwalten"
@@ -555,18 +584,18 @@ msgstr "Benutzer verwalten"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Alle als gelesen markieren" msgstr "Alle als gelesen markieren"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Alle Einträge als gelesen markieren" msgstr "Alle Einträge als gelesen markieren"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Als gelesen markieren" msgstr "Als gelesen markieren"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Bis hierhin als gelesen markieren" msgstr "Bis hierhin als gelesen markieren"
@@ -586,15 +615,15 @@ msgstr "Seite nach unten verschieben"
msgid "Move the page up" msgid "Move the page up"
msgstr "Bewege die Seite nach oben" msgstr "Bewege die Seite nach oben"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "n.v." msgstr "n.v."
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@@ -615,12 +644,17 @@ msgstr "Niemals"
msgid "New password" msgid "New password"
msgstr "Neues Passwort" msgstr "Neues Passwort"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Neueste zuerst" msgstr "Neueste zuerst"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Weiter" msgstr "Weiter"
@@ -742,19 +776,25 @@ msgstr "Übergeordnet"
msgid "Parent Category" msgid "Parent Category"
msgstr "Übergeordnete Kategorie" msgstr "Übergeordnete Kategorie"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Passwort" msgstr "Passwort"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Passwortwiederherstellung" msgstr "Passwortwiederherstellung"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein" msgstr "Passwörter stimmen nicht überein"
@@ -762,8 +802,8 @@ msgstr "Passwörter stimmen nicht überein"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Position" msgstr "Position"
@@ -787,8 +827,8 @@ msgstr "Kennwort wiederherstellen"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Aktualisieren" msgstr "Aktualisieren"
@@ -796,6 +836,11 @@ msgstr "Aktualisieren"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registrierungen sind für diese CommaFeed-Instanz geschlossen" msgstr "Registrierungen sind für diese CommaFeed-Instanz geschlossen"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST-API" msgstr "REST-API"
@@ -805,11 +850,11 @@ msgstr "REST-API"
msgid "Right click" msgid "Right click"
msgstr "Rechtsklick" msgstr "Rechtsklick"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Speichern" msgstr "Speichern"
@@ -825,17 +870,13 @@ msgstr "Schnelles Scrollen beim Navigieren zwischen Einträgen"
msgid "Scrolling" msgid "Scrolling"
msgstr "Scrollen" msgstr "Scrollen"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Suche" msgstr "Suche"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Suche erfordert mindestens 3 Zeichen"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Melden Sie sich an" msgstr "Melden Sie sich an"
@@ -933,21 +974,21 @@ msgstr "Etwas Schlimmes ist gerade passiert..."
msgid "Space" msgid "Space"
msgstr "Raum" msgstr "Raum"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Stern" msgstr "Stern"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Markiert" msgstr "Markiert"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Abonnieren" msgstr "Abonnieren"
@@ -1000,6 +1041,10 @@ msgstr "Thema"
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" 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" 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 ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Lesestatus des aktuellen Eintrags umschalten" msgstr "Lesestatus des aktuellen Eintrags umschalten"
@@ -1024,8 +1069,8 @@ msgstr "Testen Sie die Demo!"
msgid "Unread" msgid "Unread"
msgstr "Ungelesen" msgstr "Ungelesen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Stern entfernen" msgstr "Stern entfernen"
@@ -1056,6 +1101,10 @@ msgstr "Warnung"
msgid "Website" msgid "Website"
msgstr "Webseite" msgstr "Webseite"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Sie haben noch keine Abonnements."
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "Ihr Feed wurde für die Aktualisierung eingereiht." 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 ""

View File

@@ -33,8 +33,8 @@ msgstr "<0>Hey,</0><1>I'm Jérémie from Belgium and I've been working on CommaF
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Need an account?</0><1>Sign up!</1>" msgstr "<0>Need an account?</0><1>Sign up!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "About" msgstr "About"
@@ -54,17 +54,22 @@ msgstr "Add category"
msgid "Add user" msgid "Add user"
msgstr "Add user" msgstr "Add user"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Admin" msgstr "Admin"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr "Admin user name"
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "All" msgstr "All"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Back" msgstr "Back"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Back to log in" msgstr "Back to log in"
@@ -137,39 +143,39 @@ msgstr "Back to log in"
msgid "Blue" msgid "Blue"
msgstr "Blue" msgstr "Blue"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Browser extension"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "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 #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "Browser tab" msgstr "Browser tab"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Category" msgstr "Category"
@@ -209,11 +215,11 @@ msgstr "CommaFeed version {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Compact" msgstr "Compact"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Confirm" msgstr "Confirm"
@@ -221,10 +227,19 @@ msgstr "Confirm"
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirm password" msgstr "Confirm password"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirm Password"
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Cozy" msgstr "Cozy"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Create Admin Account"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "Custom JS code that will be executed on page load"
msgid "Cyan" msgid "Cyan"
msgstr "Cyan" msgstr "Cyan"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Dark" msgstr "Dark"
@@ -283,14 +298,18 @@ msgstr "Desc"
msgid "Detailed" msgid "Detailed"
msgstr "Detailed" msgstr "Detailed"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: 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/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Display" msgstr "Display"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Donate" msgstr "Donate"
@@ -302,11 +321,13 @@ msgstr "Download"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Drag link to bookmark bar" msgstr "Drag link to bookmark bar"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-mail" msgstr "E-mail"
@@ -319,8 +340,8 @@ msgstr "E-mail address"
msgid "Edit user" msgid "Edit user"
msgstr "Edit user" msgstr "Edit user"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Enabled" msgstr "Enabled"
@@ -356,8 +377,8 @@ msgstr "Expanded"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgstr "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Extension options" msgstr "Extension options"
@@ -365,9 +386,9 @@ msgstr "Extension options"
msgid "Feed name" msgid "Feed name"
msgstr "Feed name" msgstr "Feed name"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Feed URL" msgstr "Feed URL"
@@ -399,9 +420,9 @@ msgstr "Force fetching feeds is not yet available."
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Forgot password?" msgstr "Forgot password?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Generate an API key in your profile first." msgstr "Generate an API key in your profile first."
@@ -409,9 +430,9 @@ msgstr "Generate an API key in your profile first."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Generate new API key" msgstr "Generate new API key"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Generated feed url" msgstr "Generated feed url"
@@ -472,13 +493,21 @@ msgstr "In expanded view, scrolling through entries mark them as read"
msgid "Indigo" msgid "Indigo"
msgstr "Indigo" msgstr "Indigo"
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Keep unread" msgstr "Keep unread"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Keyboard shortcuts" msgstr "Keyboard shortcuts"
@@ -506,9 +535,9 @@ msgstr "Light"
msgid "Lime" msgid "Lime"
msgstr "Lime" msgstr "Lime"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Link" msgstr "Link"
@@ -532,9 +561,9 @@ msgstr "Loading subscriptions..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Loading tags..." msgstr "Loading tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Log in" msgstr "Log in"
@@ -546,8 +575,8 @@ msgstr "Logout"
msgid "Long press" msgid "Long press"
msgstr "Long press" msgstr "Long press"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Manage users" msgstr "Manage users"
@@ -555,18 +584,18 @@ msgstr "Manage users"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Mark all as read" msgstr "Mark all as read"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Mark all entries as read" msgstr "Mark all entries as read"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Mark as read" msgstr "Mark as read"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Mark as read up to here" msgstr "Mark as read up to here"
@@ -586,15 +615,15 @@ msgstr "Move the page down"
msgid "Move the page up" msgid "Move the page up"
msgstr "Move the page up" msgstr "Move the page up"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "N/A" msgstr "N/A"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@@ -615,12 +644,17 @@ msgstr "Never"
msgid "New password" msgid "New password"
msgstr "New password" msgstr "New password"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "New Password"
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Newest first" msgstr "Newest first"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Next" msgstr "Next"
@@ -742,19 +776,25 @@ msgstr "Parent"
msgid "Parent Category" msgid "Parent Category"
msgstr "Parent Category" msgstr "Parent Category"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "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 #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Password Recovery" msgstr "Password Recovery"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Passwords do not match" msgstr "Passwords do not match"
@@ -762,8 +802,8 @@ msgstr "Passwords do not match"
msgid "Pink" msgid "Pink"
msgstr "Pink" msgstr "Pink"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Position" msgstr "Position"
@@ -787,8 +827,8 @@ msgstr "Recover password"
msgid "Red" msgid "Red"
msgstr "Red" msgstr "Red"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Refresh" msgstr "Refresh"
@@ -796,6 +836,11 @@ msgstr "Refresh"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registrations are closed on this CommaFeed instance" msgstr "Registrations are closed on this CommaFeed instance"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Reset Password"
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST API" msgstr "REST API"
@@ -805,11 +850,11 @@ msgstr "REST API"
msgid "Right click" msgid "Right click"
msgstr "Right click" msgstr "Right click"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Save" msgstr "Save"
@@ -825,17 +870,13 @@ msgstr "Scroll smoothly when navigating between entries"
msgid "Scrolling" msgid "Scrolling"
msgstr "Scrolling" msgstr "Scrolling"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Search" msgstr "Search"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Search requires at least 3 characters"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "Select next unread feed/category" msgstr "Select next unread feed/category"
@@ -918,9 +959,9 @@ msgstr "Show unread count in tab favicon"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "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 #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Sign up" msgstr "Sign up"
@@ -933,21 +974,21 @@ msgstr "Something bad just happened..."
msgid "Space" msgid "Space"
msgstr "Space" msgstr "Space"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Star" msgstr "Star"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Starred" msgstr "Starred"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Subscribe" msgstr "Subscribe"
@@ -1000,6 +1041,10 @@ msgstr "Theme"
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" 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" 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 #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Toggle read status of current entry" msgstr "Toggle read status of current entry"
@@ -1024,8 +1069,8 @@ msgstr "Try the demo!"
msgid "Unread" msgid "Unread"
msgstr "Unread" msgstr "Unread"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Unstar" msgstr "Unstar"
@@ -1056,6 +1101,10 @@ msgstr "Warning"
msgid "Website" msgid "Website"
msgstr "Website" msgstr "Website"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "Yellow" msgstr "Yellow"
@@ -1067,3 +1116,7 @@ msgstr "You don't have any subscriptions yet. Why not try adding one by clicking
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "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

@@ -34,8 +34,8 @@ msgstr "<0>Hola,</0><1>Soy Jérémie de Bélgica y he estado trabajando en Comma
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>¿Necesitas una cuenta?</0><1>¡Regístrate!</1>" msgstr "<0>¿Necesitas una cuenta?</0><1>¡Regístrate!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Acerca de" msgstr "Acerca de"
@@ -55,17 +55,22 @@ msgstr "Añadir categoría"
msgid "Add user" msgid "Add user"
msgstr "Añadir usuario" msgstr "Añadir usuario"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Administrador" msgstr "Administrador"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Todo" msgstr "Todo"
@@ -131,6 +136,7 @@ msgid "Back"
msgstr "Atrás" msgstr "Atrás"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Volver a iniciar sesión" msgstr "Volver a iniciar sesión"
@@ -138,39 +144,39 @@ msgstr "Volver a iniciar sesión"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extensión del navegador"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "Se requiere extensión de navegador para 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 #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "Pestaña del navegador" msgstr "Pestaña del navegador"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Categoría" msgstr "Categoría"
@@ -210,11 +216,11 @@ msgstr "Versión de CommaFeed {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Compacto" msgstr "Compacto"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@@ -222,10 +228,19 @@ msgstr "Confirmar"
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirmar contraseña" msgstr "Confirmar contraseña"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Acogedor" msgstr "Acogedor"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -250,8 +265,8 @@ msgstr "Código JS personalizado que se ejecutará al cargar la página"
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Oscuro" msgstr "Oscuro"
@@ -284,14 +299,18 @@ msgstr "Desc"
msgid "Detailed" msgid "Detailed"
msgstr "Detallado" msgstr "Detallado"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Mostrar" msgstr "Mostrar"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Donar" msgstr "Donar"
@@ -303,11 +322,13 @@ msgstr "Descargar"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Arrastra el enlace a la barra de marcadores" msgstr "Arrastra el enlace a la barra de marcadores"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "Correo electrónico" msgstr "Correo electrónico"
@@ -320,8 +341,8 @@ msgstr "Dirección de correo electrónico"
msgid "Edit user" msgid "Edit user"
msgstr "Editar usuario" msgstr "Editar usuario"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Habilitado" msgstr "Habilitado"
@@ -357,8 +378,8 @@ msgstr "Expandido"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exporta tus suscripciones y categorías como un archivo OPML que se puede importar en otros servicios de lectura de feeds" msgstr "Exporta tus suscripciones y categorías como un archivo OPML que se puede importar en otros servicios de lectura de feeds"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Opciones de la extensión" msgstr "Opciones de la extensión"
@@ -366,9 +387,9 @@ msgstr "Opciones de la extensión"
msgid "Feed name" msgid "Feed name"
msgstr "Nombre del feed" msgstr "Nombre del feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL del feed" msgstr "URL del feed"
@@ -400,9 +421,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "¿Olvidaste la contraseña?" msgstr "¿Olvidaste la contraseña?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Primero genere una clave API en su perfil." msgstr "Primero genere una clave API en su perfil."
@@ -410,9 +431,9 @@ msgstr "Primero genere una clave API en su perfil."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Generar nueva clave API" msgstr "Generar nueva clave API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "URL del feed generado" msgstr "URL del feed generado"
@@ -473,13 +494,21 @@ msgstr "En la vista ampliada, al desplazarse por las entradas marcarlas como le
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Mantener sin leer" msgstr "Mantener sin leer"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Atajos de teclado" msgstr "Atajos de teclado"
@@ -507,9 +536,9 @@ msgstr "Claro"
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Enlace" msgstr "Enlace"
@@ -533,9 +562,9 @@ msgstr "Cargando suscripciones..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Cargando etiquetas..." msgstr "Cargando etiquetas..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Iniciar sesión" msgstr "Iniciar sesión"
@@ -547,8 +576,8 @@ msgstr "Cerrar sesión"
msgid "Long press" msgid "Long press"
msgstr "Pulsación larga" msgstr "Pulsación larga"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Administrar usuarios" msgstr "Administrar usuarios"
@@ -556,18 +585,18 @@ msgstr "Administrar usuarios"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Marcar todo como leído" msgstr "Marcar todo como leído"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Marcar todas las entradas como leídas" msgstr "Marcar todas las entradas como leídas"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Marcar como leído" msgstr "Marcar como leído"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Marcar como leído hasta aquí" msgstr "Marcar como leído hasta aquí"
@@ -587,15 +616,15 @@ msgstr "Mover la página hacia abajo"
msgid "Move the page up" msgid "Move the page up"
msgstr "Mover la página hacia arriba" msgstr "Mover la página hacia arriba"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "N/D" msgstr "N/D"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nombre" msgstr "Nombre"
@@ -616,12 +645,17 @@ msgstr "Nunca"
msgid "New password" msgid "New password"
msgstr "Nueva contraseña" msgstr "Nueva contraseña"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Las más recientes primero" msgstr "Las más recientes primero"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Siguiente" msgstr "Siguiente"
@@ -743,19 +777,25 @@ msgstr "Padre"
msgid "Parent Category" msgid "Parent Category"
msgstr "Categoría principal" msgstr "Categoría principal"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Contraseña" msgstr "Contraseña"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Recuperación de contraseña" msgstr "Recuperación de contraseña"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Las contraseñas no coinciden" msgstr "Las contraseñas no coinciden"
@@ -763,8 +803,8 @@ msgstr "Las contraseñas no coinciden"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posición" msgstr "Posición"
@@ -788,8 +828,8 @@ msgstr "Recuperar contraseña"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Actualizar" msgstr "Actualizar"
@@ -797,6 +837,11 @@ msgstr "Actualizar"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Los registros están cerrados en esta instancia de CommaFeed" msgstr "Los registros están cerrados en esta instancia de CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "API REST" msgstr "API REST"
@@ -806,11 +851,11 @@ msgstr "API REST"
msgid "Right click" msgid "Right click"
msgstr "Clic derecho" msgstr "Clic derecho"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Guardar" msgstr "Guardar"
@@ -826,17 +871,13 @@ msgstr "Desplazarse suavemente al navegar entre entradas"
msgid "Scrolling" msgid "Scrolling"
msgstr "Desplazarse" msgstr "Desplazarse"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Buscar" msgstr "Buscar"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "La búsqueda requiere al menos 3 caracteres"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -919,9 +960,9 @@ msgstr "Mostrar recuento de no leídos en la pestaña favicon"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "Mostrar recuento de no leídos en el título de la pestaña" 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 #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Registrarse" msgstr "Registrarse"
@@ -934,21 +975,21 @@ msgstr "Algo malo acaba de pasar..."
msgid "Space" msgid "Space"
msgstr "Espacio" msgstr "Espacio"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Estrella" msgstr "Estrella"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Destacado" msgstr "Destacado"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Suscribirse" msgstr "Suscribirse"
@@ -1001,6 +1042,10 @@ msgstr "Tema"
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" 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" 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 ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Alternar estado de lectura de la entrada actual" msgstr "Alternar estado de lectura de la entrada actual"
@@ -1025,8 +1070,8 @@ msgstr "¡Prueba la demostración!"
msgid "Unread" msgid "Unread"
msgstr "No leído" msgstr "No leído"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Desmarcar" msgstr "Desmarcar"
@@ -1057,6 +1102,10 @@ msgstr "Advertencia"
msgid "Website" msgid "Website"
msgstr "Sitio web" msgstr "Sitio web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1068,3 +1117,7 @@ msgstr "Aún no tienes ninguna suscripción. ¿Por qué no intentas agregar una
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "Tus feeds se han puesto en cola para actualizarse." 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 ""

View File

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>به یک حساب نیاز دارید؟</0><1>ثبت نام کنید!</1>" msgstr "<0>به یک حساب نیاز دارید؟</0><1>ثبت نام کنید!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "در مورد" msgstr "در مورد"
@@ -54,17 +54,22 @@ msgstr "اضافه کردن دسته"
msgid "Add user" msgid "Add user"
msgstr "افزودن کاربر" msgstr "افزودن کاربر"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "مدیر" msgstr "مدیر"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "همه" msgstr "همه"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "برگشت" msgstr "برگشت"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "بازگشت برای ورود به سیستم" msgstr "بازگشت برای ورود به سیستم"
@@ -137,39 +143,39 @@ msgstr "بازگشت برای ورود به سیستم"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "لغو" msgstr "لغو"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "مقوله" msgstr "مقوله"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "فشرده" msgstr "فشرده"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "تأیید کنید" msgstr "تأیید کنید"
@@ -221,10 +227,19 @@ msgstr "تأیید کنید"
msgid "Confirm password" msgid "Confirm password"
msgstr "رمز عبور را تأیید کنید" msgstr "رمز عبور را تأیید کنید"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "دنج" msgstr "دنج"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "توصیف"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "نمایش" msgstr "نمایش"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "دانلود"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "پیوند را به نوار نشانک بکشید" msgstr "پیوند را به نوار نشانک بکشید"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "ایمیل" msgstr "ایمیل"
@@ -319,8 +340,8 @@ msgstr "آدرس ایمیل"
msgid "Edit user" msgid "Edit user"
msgstr "ویرایش کاربر" msgstr "ویرایش کاربر"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "فعال" msgstr "فعال"
@@ -356,8 +377,8 @@ msgstr "گسترش یافت"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "اشتراک ها و دسته های خود را به عنوان یک فایل OPML صادر کنید که می تواند در سایر خدمات خواندن فید وارد شود" msgstr "اشتراک ها و دسته های خود را به عنوان یک فایل OPML صادر کنید که می تواند در سایر خدمات خواندن فید وارد شود"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "نام فید" msgstr "نام فید"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL فید" msgstr "URL فید"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "رمز عبور را فراموش کرده اید؟" msgstr "رمز عبور را فراموش کرده اید؟"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید." msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید."
@@ -409,9 +430,9 @@ msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید.
msgid "Generate new API key" msgid "Generate new API key"
msgstr "کلید API جدید ایجاد کنید" msgstr "کلید API جدید ایجاد کنید"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "آدرس اینترنتی فید تولید شده" msgstr "آدرس اینترنتی فید تولید شده"
@@ -472,13 +493,21 @@ msgstr "در نمای بازشده، پیمایش در ورودی‌ها، آن
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "خوانده نشده نگه دارید" msgstr "خوانده نشده نگه دارید"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "میانبرهای صفحه کلید" msgstr "میانبرهای صفحه کلید"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "پیوند" msgstr "پیوند"
@@ -532,9 +561,9 @@ msgstr "بارگیری اشتراک ها..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "بارگیری برچسب ها..." msgstr "بارگیری برچسب ها..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "وارد شوید" msgstr "وارد شوید"
@@ -546,8 +575,8 @@ msgstr "خروج"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "کاربران را مدیریت کنید" msgstr "کاربران را مدیریت کنید"
@@ -555,18 +584,18 @@ msgstr "کاربران را مدیریت کنید"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "همه را به عنوان خوانده شده علامت گذاری کنید" msgstr "همه را به عنوان خوانده شده علامت گذاری کنید"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "همه ورودی ها را به عنوان خوانده شده علامت گذاری کنید" msgstr "همه ورودی ها را به عنوان خوانده شده علامت گذاری کنید"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "علامت گذاری به عنوان خوانده شده" msgstr "علامت گذاری به عنوان خوانده شده"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "تا اینجا به عنوان خوانده شده علامت بزنید" msgstr "تا اینجا به عنوان خوانده شده علامت بزنید"
@@ -586,15 +615,15 @@ msgstr "صفحه را به پایین ببرید"
msgid "Move the page up" msgid "Move the page up"
msgstr "صفحه را به بالا ببرید" msgstr "صفحه را به بالا ببرید"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "نام" msgstr "نام"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "رمز عبور جدید" msgstr "رمز عبور جدید"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "ابتدا جدیدترین" msgstr "ابتدا جدیدترین"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "بعد" msgstr "بعد"
@@ -742,19 +776,25 @@ msgstr "پدر و مادر"
msgid "Parent Category" msgid "Parent Category"
msgstr "دسته والد" msgstr "دسته والد"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "رمز عبور" msgstr "رمز عبور"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "بازیابی رمز عبور" msgstr "بازیابی رمز عبور"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "گذرواژه ها مطابقت ندارند" msgstr "گذرواژه ها مطابقت ندارند"
@@ -762,8 +802,8 @@ msgstr "گذرواژه ها مطابقت ندارند"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "موقعیت" msgstr "موقعیت"
@@ -787,8 +827,8 @@ msgstr "بازیابی رمز عبور"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "تازه کردن" msgstr "تازه کردن"
@@ -796,6 +836,11 @@ msgstr "تازه کردن"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "ثبت نام در این نمونه CommaFeed بسته شده است" msgstr "ثبت نام در این نمونه CommaFeed بسته شده است"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "ذخیره کنید" msgstr "ذخیره کنید"
@@ -825,17 +870,13 @@ msgstr "هنگام پیمایش بین ورودی‌ها به آرامی حرک
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "جستجو" msgstr "جستجو"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "جستجو به حداقل 3 کاراکتر نیاز دارد"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "ثبت نام کنید" msgstr "ثبت نام کنید"
@@ -933,21 +974,21 @@ msgstr "اتفاق بدی افتاد..."
msgid "Space" msgid "Space"
msgstr "فضا" msgstr "فضا"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "ستاره" msgstr "ستاره"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "ستاره دار" msgstr "ستاره دار"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "مشترک شوید" msgstr "مشترک شوید"
@@ -1000,6 +1041,10 @@ msgstr "تم"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "وضعیت خواندن ورودی فعلی را تغییر دهید" msgstr "وضعیت خواندن ورودی فعلی را تغییر دهید"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "خوانده نشده" msgstr "خوانده نشده"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "" msgstr ""
@@ -1056,6 +1101,10 @@ msgstr "هشدار"
msgid "Website" msgid "Website"
msgstr "وب سایت" msgstr "وب سایت"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "شما هنوز هیچ اشتراکی ندارید. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Tarvitsetko tilin?</0><1>Rekisteröidy!</1>" msgstr "<0>Tarvitsetko tilin?</0><1>Rekisteröidy!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Noin" msgstr "Noin"
@@ -54,17 +54,22 @@ msgstr "Lisää luokka"
msgid "Add user" msgid "Add user"
msgstr "Lisää käyttäjä" msgstr "Lisää käyttäjä"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Järjestelmänvalvoja" msgstr "Järjestelmänvalvoja"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Kaikki" msgstr "Kaikki"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Takaisin" msgstr "Takaisin"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Takaisin sisäänkirjautumiseen" msgstr "Takaisin sisäänkirjautumiseen"
@@ -137,39 +143,39 @@ msgstr "Takaisin sisäänkirjautumiseen"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Peruuta" msgstr "Peruuta"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Luokka" msgstr "Luokka"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompakti" msgstr "Kompakti"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Vahvista" msgstr "Vahvista"
@@ -221,10 +227,19 @@ msgstr "Vahvista"
msgid "Confirm password" msgid "Confirm password"
msgstr "Vahvista salasana" msgstr "Vahvista salasana"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Viihtyisä" msgstr "Viihtyisä"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Näyttö" msgstr "Näyttö"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Lataa"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Vedä linkki kirjanmerkkipalkkiin" msgstr "Vedä linkki kirjanmerkkipalkkiin"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "Sähköposti" msgstr "Sähköposti"
@@ -319,8 +340,8 @@ msgstr "Sähköpostiosoite"
msgid "Edit user" msgid "Edit user"
msgstr "Muokkaa käyttäjää" msgstr "Muokkaa käyttäjää"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Käytössä" msgstr "Käytössä"
@@ -356,8 +377,8 @@ msgstr "Laajennettu"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Vie tilauksesi ja luokat OPML-tiedostona, joka voidaan tuoda muihin syötteiden lukupalveluihin" msgstr "Vie tilauksesi ja luokat OPML-tiedostona, joka voidaan tuoda muihin syötteiden lukupalveluihin"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Syötteen nimi" msgstr "Syötteen nimi"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Syötteen URL-osoite" msgstr "Syötteen URL-osoite"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Unohditko salasanan?" msgstr "Unohditko salasanan?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Luo ensin API-avain profiiliisi." msgstr "Luo ensin API-avain profiiliisi."
@@ -409,9 +430,9 @@ msgstr "Luo ensin API-avain profiiliisi."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Luo uusi API-avain" msgstr "Luo uusi API-avain"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Luotu syötteen URL-osoite" msgstr "Luotu syötteen URL-osoite"
@@ -472,13 +493,21 @@ msgstr "Merkitse ne luetuiksi laajennetussa näkymässä vierittämällä merkin
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Pidä lukematta" msgstr "Pidä lukematta"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Pikanäppäimet" msgstr "Pikanäppäimet"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Linkki" msgstr "Linkki"
@@ -532,9 +561,9 @@ msgstr "Ladataan tilauksia..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Ladataan tunnisteita..." msgstr "Ladataan tunnisteita..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Kirjaudu sisään" msgstr "Kirjaudu sisään"
@@ -546,8 +575,8 @@ msgstr "Uloskirjautuminen"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Hallitse käyttäjiä" msgstr "Hallitse käyttäjiä"
@@ -555,18 +584,18 @@ msgstr "Hallitse käyttäjiä"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Merkitse kaikki luetuiksi" msgstr "Merkitse kaikki luetuiksi"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Merkitse kaikki merkinnät luetuiksi" msgstr "Merkitse kaikki merkinnät luetuiksi"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Merkitse luetuksi" msgstr "Merkitse luetuksi"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Merkitse luetuksi tähän asti" msgstr "Merkitse luetuksi tähän asti"
@@ -586,15 +615,15 @@ msgstr "Siirrä sivua alaspäin"
msgid "Move the page up" msgid "Move the page up"
msgstr "Siirrä sivua ylöspäin" msgstr "Siirrä sivua ylöspäin"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nimi" msgstr "Nimi"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Uusi salasana" msgstr "Uusi salasana"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Uusin ensin" msgstr "Uusin ensin"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Seuraava" msgstr "Seuraava"
@@ -742,19 +776,25 @@ msgstr "Vanhempi"
msgid "Parent Category" msgid "Parent Category"
msgstr "Pääluokka" msgstr "Pääluokka"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Salasana" msgstr "Salasana"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Salasanan palautus" msgstr "Salasanan palautus"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Salasanat eivät täsmää" msgstr "Salasanat eivät täsmää"
@@ -762,8 +802,8 @@ msgstr "Salasanat eivät täsmää"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Sijainti" msgstr "Sijainti"
@@ -787,8 +827,8 @@ msgstr "Palauta salasana"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Päivitä" msgstr "Päivitä"
@@ -796,6 +836,11 @@ msgstr "Päivitä"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Tämän CommaFeed-esiintymän rekisteröinnit on suljettu" msgstr "Tämän CommaFeed-esiintymän rekisteröinnit on suljettu"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Tallenna" msgstr "Tallenna"
@@ -825,17 +870,13 @@ msgstr "Selaa sujuvasti navigoidessasi merkintöjen välillä"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Etsi" msgstr "Etsi"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Haku vaatii vähintään 3 merkkiä"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Rekisteröidy" msgstr "Rekisteröidy"
@@ -933,21 +974,21 @@ msgstr "Jotain pahaa tapahtui juuri..."
msgid "Space" msgid "Space"
msgstr "Avaruus" msgstr "Avaruus"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Tähti" msgstr "Tähti"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Tähdellä merkitty" msgstr "Tähdellä merkitty"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Tilaa" msgstr "Tilaa"
@@ -1000,6 +1041,10 @@ msgstr "Teema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Vaihda nykyisen merkinnän lukutila" msgstr "Vaihda nykyisen merkinnän lukutila"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Lukematon" msgstr "Lukematon"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Poista tähti" msgstr "Poista tähti"
@@ -1056,6 +1101,10 @@ msgstr "Varoitus"
msgid "Website" msgid "Website"
msgstr "Verkkosivusto" msgstr "Verkkosivusto"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Sinulla ei ole vielä tilauksia. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr "<0>Salut,</0><1>Je m'appelle Jérémie, je suis belge, et je développe
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Besoin d'un compte ?</0><1>Enregistrez-vous !</1>" msgstr "<0>Besoin d'un compte ?</0><1>Enregistrez-vous !</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "À propos" msgstr "À propos"
@@ -54,17 +54,22 @@ msgstr "Ajouter une catégorie"
msgid "Add user" msgid "Add user"
msgstr "Ajouter un utilisateur" msgstr "Ajouter un utilisateur"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Administrateur" msgstr "Administrateur"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr "Nom de l'administrateur"
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Tout" msgstr "Tout"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Retour" msgstr "Retour"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Retour à la connexion" msgstr "Retour à la connexion"
@@ -137,39 +143,39 @@ msgstr "Retour à la connexion"
msgid "Blue" msgid "Blue"
msgstr "Bleu" msgstr "Bleu"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extension navigateur"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "L'extension navigateur est nécessaire sur 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 #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "Onglet navigateur" msgstr "Onglet navigateur"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Catégorie" msgstr "Catégorie"
@@ -209,11 +215,11 @@ msgstr "CommaFeed version {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Compact" msgstr "Compact"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Confirmer" msgstr "Confirmer"
@@ -221,10 +227,19 @@ msgstr "Confirmer"
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirmer le mot de passe" msgstr "Confirmer le mot de passe"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "Confirmer le mot de passe"
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Cozy" msgstr "Cozy"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "Créer un compte adminstrateur"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "Code JS personnalisé qui sera appliqué au chargement des pages"
msgid "Cyan" msgid "Cyan"
msgstr "Cyan" msgstr "Cyan"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Foncé" msgstr "Foncé"
@@ -283,14 +298,18 @@ msgstr "Descendant"
msgid "Detailed" msgid "Detailed"
msgstr "Vue détaillée" msgstr "Vue détaillée"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: 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/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Affichage" msgstr "Affichage"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Faire un don" msgstr "Faire un don"
@@ -302,11 +321,13 @@ msgstr "Télécharger"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Déplacez le lien vers la barre de favoris" msgstr "Déplacez le lien vers la barre de favoris"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-mail" msgstr "E-mail"
@@ -319,8 +340,8 @@ msgstr "Adresse e-mail"
msgid "Edit user" msgid "Edit user"
msgstr "Modifier un utilisateur" msgstr "Modifier un utilisateur"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Actif" msgstr "Actif"
@@ -356,8 +377,8 @@ msgstr "Vue étendue"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exporter vos abonnements et catégories en tant que fichier OPML qui peut être importé dans d'autres services de lecture de flux" msgstr "Exporter vos abonnements et catégories en tant que fichier OPML qui peut être importé dans d'autres services de lecture de flux"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Options de l'extension" msgstr "Options de l'extension"
@@ -365,9 +386,9 @@ msgstr "Options de l'extension"
msgid "Feed name" msgid "Feed name"
msgstr "Nom du flux" msgstr "Nom du flux"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL du flux" msgstr "URL du flux"
@@ -399,9 +420,9 @@ msgstr "La récupération forcée des flux n'est pas encore disponible."
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Mot de passe oublié ?" msgstr "Mot de passe oublié ?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Générez d'abord une clé API dans votre profil." msgstr "Générez d'abord une clé API dans votre profil."
@@ -409,9 +430,9 @@ msgstr "Générez d'abord une clé API dans votre profil."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Générer une nouvelle clé API" msgstr "Générer une nouvelle clé API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "URL du flux généré" msgstr "URL du flux généré"
@@ -472,13 +493,21 @@ msgstr "En mode de lecture étendu, marquer les éléments comme lus lorsque la
msgid "Indigo" msgid "Indigo"
msgstr "Indigo" msgstr "Indigo"
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Garder non lu" msgstr "Garder non lu"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Raccourcis clavier" msgstr "Raccourcis clavier"
@@ -506,9 +535,9 @@ msgstr "Clair"
msgid "Lime" msgid "Lime"
msgstr "Jaune-vert" msgstr "Jaune-vert"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Lien" msgstr "Lien"
@@ -532,9 +561,9 @@ msgstr "Chargement des abonnements..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Chargement des marqueurs..." msgstr "Chargement des marqueurs..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Connexion" msgstr "Connexion"
@@ -546,8 +575,8 @@ msgstr "Déconnexion"
msgid "Long press" msgid "Long press"
msgstr "Appui long" msgstr "Appui long"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Gestion des utilisateurs" msgstr "Gestion des utilisateurs"
@@ -555,18 +584,18 @@ msgstr "Gestion des utilisateurs"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Tout marquer comme lu" msgstr "Tout marquer comme lu"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Marquer toutes les entrées comme lues" msgstr "Marquer toutes les entrées comme lues"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Marquer comme lu" msgstr "Marquer comme lu"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Marquer comme lu jusqu'ici" msgstr "Marquer comme lu jusqu'ici"
@@ -586,15 +615,15 @@ msgstr "Faites défiler la page vers le bas"
msgid "Move the page up" msgid "Move the page up"
msgstr "Faites défiler la page vers le haut" msgstr "Faites défiler la page vers le haut"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "N/A" msgstr "N/A"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
@@ -615,12 +644,17 @@ msgstr "Jamais"
msgid "New password" msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "Nouveau mot de passe"
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Plus récent en premier" msgstr "Plus récent en premier"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Suivant" msgstr "Suivant"
@@ -742,19 +776,25 @@ msgstr "Parent"
msgid "Parent Category" msgid "Parent Category"
msgstr "Catégorie parente" msgstr "Catégorie parente"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Mot de passe" 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 #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Récupération de mot de passe" msgstr "Récupération de mot de passe"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Les mots de passe ne correspondent pas" msgstr "Les mots de passe ne correspondent pas"
@@ -762,8 +802,8 @@ msgstr "Les mots de passe ne correspondent pas"
msgid "Pink" msgid "Pink"
msgstr "Rose" msgstr "Rose"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Position" msgstr "Position"
@@ -787,8 +827,8 @@ msgstr "Récupérer le mot de passe"
msgid "Red" msgid "Red"
msgstr "Rouge" msgstr "Rouge"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Rafraîchir" msgstr "Rafraîchir"
@@ -796,6 +836,11 @@ msgstr "Rafraîchir"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Les inscriptions sont fermées sur cette instance de CommaFeed" msgstr "Les inscriptions sont fermées sur cette instance de CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "Réinitialiser le mot de passe"
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "API REST" msgstr "API REST"
@@ -805,11 +850,11 @@ msgstr "API REST"
msgid "Right click" msgid "Right click"
msgstr "Clic droit" msgstr "Clic droit"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Enregistrer" msgstr "Enregistrer"
@@ -825,17 +870,13 @@ msgstr "Défilement animé lors de la navigation entre les entrées"
msgid "Scrolling" msgid "Scrolling"
msgstr "Défilement" msgstr "Défilement"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Rechercher" msgstr "Rechercher"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "La recherche requiert au moins 3 caractères"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "Sélectionner l'article non lu suivant/la catégorie non lue suivante" msgstr "Sélectionner l'article non lu suivant/la catégorie non lue suivante"
@@ -918,9 +959,9 @@ msgstr "Afficher le nombre d'entrées non lues dans la favicône de l'onglet"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "Afficher le nombre d'entrées non lues dans le titre de l'onglet" 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 #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Créer un compte" msgstr "Créer un compte"
@@ -933,21 +974,21 @@ msgstr "Quelque chose s'est mal passé..."
msgid "Space" msgid "Space"
msgstr "Espace" msgstr "Espace"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Ajouter aux favoris" msgstr "Ajouter aux favoris"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Favoris" msgstr "Favoris"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "S'abonner" msgstr "S'abonner"
@@ -1000,6 +1041,10 @@ msgstr "Thème"
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" 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" 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 #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Marquer l'entrée actuelle comme lue/non lue" msgstr "Marquer l'entrée actuelle comme lue/non lue"
@@ -1024,8 +1069,8 @@ msgstr "Essayez la version de démonstration !"
msgid "Unread" msgid "Unread"
msgstr "Non lu" msgstr "Non lu"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Retirer des favoris" msgstr "Retirer des favoris"
@@ -1056,6 +1101,10 @@ msgstr "Attention"
msgid "Website" msgid "Website"
msgstr "Site web" msgstr "Site web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "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 #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "Jaune" msgstr "Jaune"
@@ -1067,3 +1116,7 @@ msgstr "Vous n'avez pas encore d'abonnements. Pourquoi ne pas essayer d'en ajout
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "Vos flux sont en cours de rafraîchissement" 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Fiókra van szüksége?</0><1>Regisztráljon!</1>" msgstr "<0>Fiókra van szüksége?</0><1>Regisztráljon!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Kb" msgstr "Kb"
@@ -54,17 +54,22 @@ msgstr "Kategória hozzáadása"
msgid "Add user" msgid "Add user"
msgstr "Felhasználó hozzáadása" msgstr "Felhasználó hozzáadása"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Mind" msgstr "Mind"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Vissza" msgstr "Vissza"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Vissza a bejelentkezéshez" msgstr "Vissza a bejelentkezéshez"
@@ -137,39 +143,39 @@ msgstr "Vissza a bejelentkezéshez"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Mégse" msgstr "Mégse"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategória" msgstr "Kategória"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Erősítse meg" msgstr "Erősítse meg"
@@ -221,10 +227,19 @@ msgstr "Erősítse meg"
msgid "Confirm password" msgid "Confirm password"
msgstr "Erősítse meg a jelszót" msgstr "Erősítse meg a jelszót"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Hangulatos" msgstr "Hangulatos"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Kijelző" msgstr "Kijelző"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Letöltés"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Húzza a hivatkozást a könyvjelzősávra" msgstr "Húzza a hivatkozást a könyvjelzősávra"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "E-mail cím"
msgid "Edit user" msgid "Edit user"
msgstr "Felhasználó szerkesztése" msgstr "Felhasználó szerkesztése"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Engedélyezve" msgstr "Engedélyezve"
@@ -356,8 +377,8 @@ msgstr "Kiterjesztve"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exportálja előfizetéseit és kategóriáit OPML-fájlként, amely importálható más feedolvasó szolgáltatásokba" msgstr "Exportálja előfizetéseit és kategóriáit OPML-fájlként, amely importálható más feedolvasó szolgáltatásokba"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Hírcsatorna neve" msgstr "Hírcsatorna neve"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "" msgstr ""
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Elfelejtette a jelszavát?" msgstr "Elfelejtette a jelszavát?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Először generáljon API-kulcsot a profiljában." msgstr "Először generáljon API-kulcsot a profiljában."
@@ -409,9 +430,9 @@ msgstr "Először generáljon API-kulcsot a profiljában."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Új API-kulcs létrehozása" msgstr "Új API-kulcs létrehozása"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Hírcsatorna generált URL-je" msgstr "Hírcsatorna generált URL-je"
@@ -472,13 +493,21 @@ msgstr "Kibontott nézetben a bejegyzések görgetése olvasottként jelöli meg
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Olvasatlan marad" msgstr "Olvasatlan marad"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Billentyűparancsok" msgstr "Billentyűparancsok"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "" msgstr ""
@@ -532,9 +561,9 @@ msgstr "Előfizetések betöltése..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Címkék betöltése..." msgstr "Címkék betöltése..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Jelentkezzen be" msgstr "Jelentkezzen be"
@@ -546,8 +575,8 @@ msgstr "Kijelentkezés"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Felhasználók kezelése" msgstr "Felhasználók kezelése"
@@ -555,18 +584,18 @@ msgstr "Felhasználók kezelése"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Minden megjelölése olvasottként" msgstr "Minden megjelölése olvasottként"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Minden bejegyzés megjelölése olvasottként" msgstr "Minden bejegyzés megjelölése olvasottként"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Megjelölés olvasottként" msgstr "Megjelölés olvasottként"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Megjelölés idáig olvasottként" msgstr "Megjelölés idáig olvasottként"
@@ -586,15 +615,15 @@ msgstr "Mozgassa le az oldalt"
msgid "Move the page up" msgid "Move the page up"
msgstr "Mozgassa felfelé az oldalt" msgstr "Mozgassa felfelé az oldalt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Név" msgstr "Név"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Új jelszó" msgstr "Új jelszó"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "A legújabbak először" msgstr "A legújabbak először"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Következő" msgstr "Következő"
@@ -742,19 +776,25 @@ msgstr "Szülő"
msgid "Parent Category" msgid "Parent Category"
msgstr "Szülő kategória" msgstr "Szülő kategória"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Jelszó" msgstr "Jelszó"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Jelszó helyreállítás" msgstr "Jelszó helyreállítás"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "A jelszavak nem egyeznek" msgstr "A jelszavak nem egyeznek"
@@ -762,8 +802,8 @@ msgstr "A jelszavak nem egyeznek"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Pozíció" msgstr "Pozíció"
@@ -787,8 +827,8 @@ msgstr "Jelszó helyreállítása"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Frissítés" msgstr "Frissítés"
@@ -796,6 +836,11 @@ msgstr "Frissítés"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "A regisztrációk le vannak zárva ezen a CommaFeed példányon" msgstr "A regisztrációk le vannak zárva ezen a CommaFeed példányon"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Mentés" msgstr "Mentés"
@@ -825,17 +870,13 @@ msgstr "Sima görgetés, amikor a bejegyzések között navigál"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Keresés" msgstr "Keresés"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "A kereséshez legalább 3 karakter szükséges"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Regisztráljon" msgstr "Regisztráljon"
@@ -933,21 +974,21 @@ msgstr "Valami rossz történt..."
msgid "Space" msgid "Space"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Csillag" msgstr "Csillag"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Csillaggal megjelölve" msgstr "Csillaggal megjelölve"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Feliratkozás" msgstr "Feliratkozás"
@@ -1000,6 +1041,10 @@ msgstr "Téma"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Az aktuális bejegyzés olvasási állapotának váltása" msgstr "Az aktuális bejegyzés olvasási állapotának váltása"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Olvasatlan" msgstr "Olvasatlan"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "" msgstr ""
@@ -1056,6 +1101,10 @@ msgstr "Figyelem"
msgid "Website" msgid "Website"
msgstr "Webhely" msgstr "Webhely"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Még nincs előfizetése. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Butuh akun?</0><1>Daftar!</1>" msgstr "<0>Butuh akun?</0><1>Daftar!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Tentang" msgstr "Tentang"
@@ -54,17 +54,22 @@ msgstr "Tambahkan kategori"
msgid "Add user" msgid "Add user"
msgstr "Tambahkan pengguna" msgstr "Tambahkan pengguna"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Semua" msgstr "Semua"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Kembali" msgstr "Kembali"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Kembali untuk masuk" msgstr "Kembali untuk masuk"
@@ -137,39 +143,39 @@ msgstr "Kembali untuk masuk"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Ringkas" msgstr "Ringkas"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Konfirmasi" msgstr "Konfirmasi"
@@ -221,10 +227,19 @@ msgstr "Konfirmasi"
msgid "Confirm password" msgid "Confirm password"
msgstr "Konfirmasi kata sandi" msgstr "Konfirmasi kata sandi"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Nyaman" msgstr "Nyaman"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Tampilan" msgstr "Tampilan"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Unduh"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Seret tautan ke bilah bookmark" msgstr "Seret tautan ke bilah bookmark"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "Email" msgstr "Email"
@@ -319,8 +340,8 @@ msgstr "Alamat email"
msgid "Edit user" msgid "Edit user"
msgstr "Edit pengguna" msgstr "Edit pengguna"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Diaktifkan" msgstr "Diaktifkan"
@@ -356,8 +377,8 @@ msgstr "Diperluas"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Ekspor langganan dan kategori Anda sebagai file OPML yang dapat diimpor ke layanan membaca feed lainnya" msgstr "Ekspor langganan dan kategori Anda sebagai file OPML yang dapat diimpor ke layanan membaca feed lainnya"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Nama umpan" msgstr "Nama umpan"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL Umpan" msgstr "URL Umpan"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Lupa kata sandi?" msgstr "Lupa kata sandi?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Buat kunci API di profil Anda terlebih dahulu." msgstr "Buat kunci API di profil Anda terlebih dahulu."
@@ -409,9 +430,9 @@ msgstr "Buat kunci API di profil Anda terlebih dahulu."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Buat kunci API baru" msgstr "Buat kunci API baru"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Url umpan yang dihasilkan" msgstr "Url umpan yang dihasilkan"
@@ -472,13 +493,21 @@ msgstr "Dalam tampilan yang diperluas, menggulir entri menandainya sebagai telah
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Tetap belum dibaca" msgstr "Tetap belum dibaca"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Pintasan keyboard" msgstr "Pintasan keyboard"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Tautan" msgstr "Tautan"
@@ -532,9 +561,9 @@ msgstr "Memuat langganan..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Memuat tag..." msgstr "Memuat tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Masuk" msgstr "Masuk"
@@ -546,8 +575,8 @@ msgstr "Keluar"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Kelola pengguna" msgstr "Kelola pengguna"
@@ -555,18 +584,18 @@ msgstr "Kelola pengguna"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Tandai semua sebagai telah dibaca" msgstr "Tandai semua sebagai telah dibaca"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Tandai semua entri sebagai telah dibaca" msgstr "Tandai semua entri sebagai telah dibaca"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Tandai sebagai telah dibaca" msgstr "Tandai sebagai telah dibaca"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Tandai sebagai telah dibaca sampai di sini" msgstr "Tandai sebagai telah dibaca sampai di sini"
@@ -586,15 +615,15 @@ msgstr "Pindahkan halaman ke bawah"
msgid "Move the page up" msgid "Move the page up"
msgstr "Pindahkan halaman ke atas" msgstr "Pindahkan halaman ke atas"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "T/A" msgstr "T/A"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nama" msgstr "Nama"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Kata sandi baru" msgstr "Kata sandi baru"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Terbaru dulu" msgstr "Terbaru dulu"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Selanjutnya" msgstr "Selanjutnya"
@@ -742,19 +776,25 @@ msgstr "Orang tua"
msgid "Parent Category" msgid "Parent Category"
msgstr "Kategori Induk" msgstr "Kategori Induk"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Kata Sandi" msgstr "Kata Sandi"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Pemulihan Kata Sandi" msgstr "Pemulihan Kata Sandi"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Kata sandi tidak cocok" msgstr "Kata sandi tidak cocok"
@@ -762,8 +802,8 @@ msgstr "Kata sandi tidak cocok"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posisi" msgstr "Posisi"
@@ -787,8 +827,8 @@ msgstr "Pulihkan kata sandi"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Segarkan" msgstr "Segarkan"
@@ -796,6 +836,11 @@ msgstr "Segarkan"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Pendaftaran ditutup pada instans CommaFeed ini" msgstr "Pendaftaran ditutup pada instans CommaFeed ini"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Simpan" msgstr "Simpan"
@@ -825,17 +870,13 @@ msgstr "Gulir dengan lancar saat menavigasi antar entri"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Pencarian" msgstr "Pencarian"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Pencarian membutuhkan setidaknya 3 karakter"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Daftar" msgstr "Daftar"
@@ -933,21 +974,21 @@ msgstr "Sesuatu yang buruk baru saja terjadi..."
msgid "Space" msgid "Space"
msgstr "Luar Angkasa" msgstr "Luar Angkasa"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Bintang" msgstr "Bintang"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Berbintang" msgstr "Berbintang"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Berlangganan" msgstr "Berlangganan"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Beralih status baca entri saat ini" msgstr "Beralih status baca entri saat ini"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Belum Dibaca" msgstr "Belum Dibaca"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Hapus bintang" msgstr "Hapus bintang"
@@ -1056,6 +1101,10 @@ msgstr "Peringatan"
msgid "Website" msgid "Website"
msgstr "Situs Web" msgstr "Situs Web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Anda belum memiliki langganan. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Hai bisogno di un account?</0><1>Registrati!</1>" msgstr "<0>Hai bisogno di un account?</0><1>Registrati!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Circa" msgstr "Circa"
@@ -54,17 +54,22 @@ msgstr "Aggiungi categoria"
msgid "Add user" msgid "Add user"
msgstr "Aggiungi utente" msgstr "Aggiungi utente"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Ammin" msgstr "Ammin"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Tutto" msgstr "Tutto"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Indietro" msgstr "Indietro"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Torna per accedere" msgstr "Torna per accedere"
@@ -137,39 +143,39 @@ msgstr "Torna per accedere"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Annulla" msgstr "Annulla"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Categoria" msgstr "Categoria"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Compatto" msgstr "Compatto"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Conferma" msgstr "Conferma"
@@ -221,10 +227,19 @@ msgstr "Conferma"
msgid "Confirm password" msgid "Confirm password"
msgstr "Conferma password" msgstr "Conferma password"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Accogliente" msgstr "Accogliente"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "ctrl" msgstr "ctrl"
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Visualizzazione" msgstr "Visualizzazione"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Scarica"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Trascina il collegamento sulla barra dei preferiti" msgstr "Trascina il collegamento sulla barra dei preferiti"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "Indirizzo e-mail"
msgid "Edit user" msgid "Edit user"
msgstr "Modifica utente" msgstr "Modifica utente"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Abilitato" msgstr "Abilitato"
@@ -356,8 +377,8 @@ msgstr "Espanso"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Esporta le tue iscrizioni e categorie come file OPML che può essere importato in altri servizi di lettura feed" msgstr "Esporta le tue iscrizioni e categorie come file OPML che può essere importato in altri servizi di lettura feed"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Nome del feed" msgstr "Nome del feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL feed" msgstr "URL feed"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Password dimenticata?" msgstr "Password dimenticata?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Genera prima una chiave API nel tuo profilo." msgstr "Genera prima una chiave API nel tuo profilo."
@@ -409,9 +430,9 @@ msgstr "Genera prima una chiave API nel tuo profilo."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Genera nuova chiave API" msgstr "Genera nuova chiave API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "URL feed generato" msgstr "URL feed generato"
@@ -472,13 +493,21 @@ msgstr "Nella vista espansa, scorrendo le voci contrassegnale come lette"
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Mantieni non letto" msgstr "Mantieni non letto"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Scorciatoie da tastiera" msgstr "Scorciatoie da tastiera"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Collegamento" msgstr "Collegamento"
@@ -532,9 +561,9 @@ msgstr "Caricamento abbonamenti..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Caricamento tag..." msgstr "Caricamento tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Accedi" msgstr "Accedi"
@@ -546,8 +575,8 @@ msgstr "Disconnessione"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Gestisci utenti" msgstr "Gestisci utenti"
@@ -555,18 +584,18 @@ msgstr "Gestisci utenti"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Contrassegna tutto come letto" msgstr "Contrassegna tutto come letto"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Contrassegna tutte le voci come lette" msgstr "Contrassegna tutte le voci come lette"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Contrassegna come letto" msgstr "Contrassegna come letto"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Contrassegna come letto fino a qui" msgstr "Contrassegna come letto fino a qui"
@@ -586,15 +615,15 @@ msgstr "Sposta la pagina in basso"
msgid "Move the page up" msgid "Move the page up"
msgstr "Sposta la pagina in alto" msgstr "Sposta la pagina in alto"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nome" msgstr "Nome"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nuova password" msgstr "Nuova password"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Il più recente prima" msgstr "Il più recente prima"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Avanti" msgstr "Avanti"
@@ -742,19 +776,25 @@ msgstr "Genitore"
msgid "Parent Category" msgid "Parent Category"
msgstr "Categoria padre" msgstr "Categoria padre"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Recupero password" msgstr "Recupero password"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Le password non corrispondono" msgstr "Le password non corrispondono"
@@ -762,8 +802,8 @@ msgstr "Le password non corrispondono"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posizione" msgstr "Posizione"
@@ -787,8 +827,8 @@ msgstr "Recupera password"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Aggiorna" msgstr "Aggiorna"
@@ -796,6 +836,11 @@ msgstr "Aggiorna"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Le registrazioni sono chiuse su questa istanza CommaFeed" msgstr "Le registrazioni sono chiuse su questa istanza CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "API REST" msgstr "API REST"
@@ -805,11 +850,11 @@ msgstr "API REST"
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Salva" msgstr "Salva"
@@ -825,17 +870,13 @@ msgstr "Scorrere senza problemi durante la navigazione tra le voci"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Cerca" msgstr "Cerca"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "La ricerca richiede almeno 3 caratteri"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Iscriviti" msgstr "Iscriviti"
@@ -933,21 +974,21 @@ msgstr "È appena successo qualcosa di brutto..."
msgid "Space" msgid "Space"
msgstr "Spazio" msgstr "Spazio"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Stella" msgstr "Stella"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Speciali" msgstr "Speciali"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Iscriviti" msgstr "Iscriviti"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Commuta lo stato di lettura della voce corrente" msgstr "Commuta lo stato di lettura della voce corrente"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Non letto" msgstr "Non letto"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Elimina le stelle" msgstr "Elimina le stelle"
@@ -1056,6 +1101,10 @@ msgstr "Avviso"
msgid "Website" msgid "Website"
msgstr "Sito web" msgstr "Sito web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Non hai ancora abbonamenti. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr "<0>こんにちは、</0><1>私はベルギーのジェレミーです
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>アカウントが必要ですか?</0><1>サインアップ!</1>" msgstr "<0>アカウントが必要ですか?</0><1>サインアップ!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "About" msgstr "About"
@@ -54,17 +54,22 @@ msgstr "カテゴリを追加"
msgid "Add user" msgid "Add user"
msgstr "ユーザー追加" msgstr "ユーザー追加"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "管理者" msgstr "管理者"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "すべて" msgstr "すべて"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "戻る" msgstr "戻る"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "ログインに戻る" msgstr "ログインに戻る"
@@ -137,39 +143,39 @@ msgstr "ログインに戻る"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "ブラウザー拡張"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "Chromeのブラウザー拡張が必要です" msgstr "Chromeのブラウザー拡張が必要です"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "ブラウザー拡張"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "ブラウザータブ" msgstr "ブラウザータブ"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "キャンセル" msgstr "キャンセル"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "カテゴリー" msgstr "カテゴリー"
@@ -209,11 +215,11 @@ msgstr "CommaFeed バージョン {version} ({revision})。"
msgid "Compact" msgid "Compact"
msgstr "コンパクト" msgstr "コンパクト"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "確認" msgstr "確認"
@@ -221,10 +227,19 @@ msgstr "確認"
msgid "Confirm password" msgid "Confirm password"
msgstr "パスワード確認" msgstr "パスワード確認"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Cozy" msgstr "Cozy"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "ページ読み込み時に実行されるカスタムJSコード"
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "ダーク" msgstr "ダーク"
@@ -283,14 +298,18 @@ msgstr "説明"
msgid "Detailed" msgid "Detailed"
msgstr "詳細" msgstr "詳細"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "ディスプレイ" msgstr "ディスプレイ"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "寄付" msgstr "寄付"
@@ -302,11 +321,13 @@ msgstr "ダウンロード"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "リンクをブックマークバーにドラッグ" msgstr "リンクをブックマークバーにドラッグ"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "メール" msgstr "メール"
@@ -319,8 +340,8 @@ msgstr "メールアドレス"
msgid "Edit user" msgid "Edit user"
msgstr "ユーザーの編集" msgstr "ユーザーの編集"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "有効" msgstr "有効"
@@ -356,8 +377,8 @@ msgstr "拡張"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "サブスクリプションとカテゴリを、他のフィード読み取りサービスにインポートできる OPML ファイルとしてエクスポートします" msgstr "サブスクリプションとカテゴリを、他のフィード読み取りサービスにインポートできる OPML ファイルとしてエクスポートします"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "拡張機能オプション" msgstr "拡張機能オプション"
@@ -365,9 +386,9 @@ msgstr "拡張機能オプション"
msgid "Feed name" msgid "Feed name"
msgstr "フィード名" msgstr "フィード名"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "フィード URL" msgstr "フィード URL"
@@ -399,9 +420,9 @@ msgstr "フィードの強制フェッチはまだ利用できません。"
msgid "Forgot password?" msgid "Forgot password?"
msgstr "パスワードをお忘れですか?" msgstr "パスワードをお忘れですか?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "最初にプロファイルでAPIキーを生成します。" msgstr "最初にプロファイルでAPIキーを生成します。"
@@ -409,9 +430,9 @@ msgstr "最初にプロファイルでAPIキーを生成します。"
msgid "Generate new API key" msgid "Generate new API key"
msgstr "新しいAPIキーを生成する" msgstr "新しいAPIキーを生成する"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "生成されたフィードURL" msgstr "生成されたフィードURL"
@@ -472,13 +493,21 @@ msgstr "展開ビューでエントリーをスクロールすると、それら
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "未読のままにする" msgstr "未読のままにする"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "キーボードショートカット" msgstr "キーボードショートカット"
@@ -506,9 +535,9 @@ msgstr "ライト"
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "リンク" msgstr "リンク"
@@ -532,9 +561,9 @@ msgstr "サブスクリプションを読み込んでいます..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "タグを読み込んでいます..." msgstr "タグを読み込んでいます..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "ログイン" msgstr "ログイン"
@@ -546,8 +575,8 @@ msgstr "ログアウト"
msgid "Long press" msgid "Long press"
msgstr "長押し" msgstr "長押し"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "ユーザーの管理" msgstr "ユーザーの管理"
@@ -555,18 +584,18 @@ msgstr "ユーザーの管理"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "すべて既読にする" msgstr "すべて既読にする"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "すべてのエントリーを既読にする" msgstr "すべてのエントリーを既読にする"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "既読にする" msgstr "既読にする"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "ここまで既読にする" msgstr "ここまで既読にする"
@@ -586,15 +615,15 @@ msgstr "ページを下に移動"
msgid "Move the page up" msgid "Move the page up"
msgstr "ページを上に移動" msgstr "ページを上に移動"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "該当なし" msgstr "該当なし"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "名前" msgstr "名前"
@@ -615,12 +644,17 @@ msgstr "しない"
msgid "New password" msgid "New password"
msgstr "新しいパスワード" msgstr "新しいパスワード"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "最新順" msgstr "最新順"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "次へ" msgstr "次へ"
@@ -742,19 +776,25 @@ msgstr "親"
msgid "Parent Category" msgid "Parent Category"
msgstr "親カテゴリ" msgstr "親カテゴリ"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "パスワード" msgstr "パスワード"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "パスワード回復" msgstr "パスワード回復"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "パスワードが一致しません" msgstr "パスワードが一致しません"
@@ -762,8 +802,8 @@ msgstr "パスワードが一致しません"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "位置" msgstr "位置"
@@ -787,8 +827,8 @@ msgstr "パスワードの回復"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "リフレッシュ" msgstr "リフレッシュ"
@@ -796,6 +836,11 @@ msgstr "リフレッシュ"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "このCommaFeedインスタンスの登録は終了しています" msgstr "このCommaFeedインスタンスの登録は終了しています"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST API" msgstr "REST API"
@@ -805,11 +850,11 @@ msgstr "REST API"
msgid "Right click" msgid "Right click"
msgstr "右クリック" msgstr "右クリック"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "保存" msgstr "保存"
@@ -825,17 +870,13 @@ msgstr "エントリー間を移動するときにスムーズにスクロール
msgid "Scrolling" msgid "Scrolling"
msgstr "スクロール" msgstr "スクロール"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "検索" msgstr "検索"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "検索には少なくとも3文字が必要です"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr "未読数をタブのアイコンに表示する"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "未読数をタブのタイトルに表示する" msgstr "未読数をタブのタイトルに表示する"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "サインアップ" msgstr "サインアップ"
@@ -933,21 +974,21 @@ msgstr "何か悪いことが起きました..."
msgid "Space" msgid "Space"
msgstr "Space" msgstr "Space"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "スター" msgstr "スター"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "スター付き" msgstr "スター付き"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "購読する" msgstr "購読する"
@@ -1000,6 +1041,10 @@ msgstr "テーマ"
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" 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キーを生成します。" 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 ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "現在のエントリーの読み取りステータスを切り替えます" msgstr "現在のエントリーの読み取りステータスを切り替えます"
@@ -1024,8 +1069,8 @@ msgstr "デモを試す!"
msgid "Unread" msgid "Unread"
msgstr "未読" msgstr "未読"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "スターを外す" msgstr "スターを外す"
@@ -1056,6 +1101,10 @@ msgstr "警告"
msgid "Website" msgid "Website"
msgstr "ウェブサイト" msgstr "ウェブサイト"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "まだサブスクリプションがありません。上部の + 記号
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>계정이 필요하십니까?</0><1>가입하세요!</1>" msgstr "<0>계정이 필요하십니까?</0><1>가입하세요!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "정보" msgstr "정보"
@@ -54,17 +54,22 @@ msgstr "카테고리 추가"
msgid "Add user" msgid "Add user"
msgstr "사용자 추가" msgstr "사용자 추가"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "관리자" msgstr "관리자"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "전체" msgstr "전체"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "뒤로" msgstr "뒤로"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "로그인으로 돌아가기" msgstr "로그인으로 돌아가기"
@@ -137,39 +143,39 @@ msgstr "로그인으로 돌아가기"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "취소" msgstr "취소"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "카테고리" msgstr "카테고리"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "컴팩트" msgstr "컴팩트"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "확인" msgstr "확인"
@@ -221,10 +227,19 @@ msgstr "확인"
msgid "Confirm password" msgid "Confirm password"
msgstr "비밀번호 확인" msgstr "비밀번호 확인"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "코지" msgstr "코지"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "컨트롤" msgstr "컨트롤"
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "설명"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "디스플레이" msgstr "디스플레이"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "다운로드"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "링크를 북마크바로 드래그" msgstr "링크를 북마크바로 드래그"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "이메일" msgstr "이메일"
@@ -319,8 +340,8 @@ msgstr "이메일 주소"
msgid "Edit user" msgid "Edit user"
msgstr "사용자 편집" msgstr "사용자 편집"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "활성화" msgstr "활성화"
@@ -356,8 +377,8 @@ msgstr "확장"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "구독 및 카테고리를 다른 피드 읽기 서비스에서 가져올 수 있는 OPML 파일로 내보내기" msgstr "구독 및 카테고리를 다른 피드 읽기 서비스에서 가져올 수 있는 OPML 파일로 내보내기"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "피드 이름" msgstr "피드 이름"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "피드 URL" msgstr "피드 URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "비밀번호를 잊으셨나요?" msgstr "비밀번호를 잊으셨나요?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "먼저 프로필에서 API 키를 생성하십시오." msgstr "먼저 프로필에서 API 키를 생성하십시오."
@@ -409,9 +430,9 @@ msgstr "먼저 프로필에서 API 키를 생성하십시오."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "새 API 키 생성" msgstr "새 API 키 생성"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "생성된 피드 URL" msgstr "생성된 피드 URL"
@@ -472,13 +493,21 @@ msgstr "확장 보기에서 항목을 스크롤하면 읽은 것으로 표시됩
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "읽지 않은 상태로 유지" msgstr "읽지 않은 상태로 유지"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "키보드 단축키" msgstr "키보드 단축키"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "링크" msgstr "링크"
@@ -532,9 +561,9 @@ msgstr "구독 로드 중..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "태그 로드 중..." msgstr "태그 로드 중..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "로그인" msgstr "로그인"
@@ -546,8 +575,8 @@ msgstr "로그아웃"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "사용자 관리" msgstr "사용자 관리"
@@ -555,18 +584,18 @@ msgstr "사용자 관리"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "모두 읽은 상태로 표시" msgstr "모두 읽은 상태로 표시"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "모든 항목을 읽은 상태로 표시" msgstr "모든 항목을 읽은 상태로 표시"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "읽은 상태로 표시" msgstr "읽은 상태로 표시"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "여기까지 읽은 것으로 표시" msgstr "여기까지 읽은 것으로 표시"
@@ -586,15 +615,15 @@ msgstr "페이지를 아래로 이동"
msgid "Move the page up" msgid "Move the page up"
msgstr "페이지를 위로 이동" msgstr "페이지를 위로 이동"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "해당 없음" msgstr "해당 없음"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "이름" msgstr "이름"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "새 비밀번호" msgstr "새 비밀번호"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "최신순" msgstr "최신순"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "다음" msgstr "다음"
@@ -742,19 +776,25 @@ msgstr "부모"
msgid "Parent Category" msgid "Parent Category"
msgstr "부모 카테고리" msgstr "부모 카테고리"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "비밀번호" msgstr "비밀번호"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "비밀번호 복구" msgstr "비밀번호 복구"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "비밀번호가 일치하지 않습니다" msgstr "비밀번호가 일치하지 않습니다"
@@ -762,8 +802,8 @@ msgstr "비밀번호가 일치하지 않습니다"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "위치" msgstr "위치"
@@ -787,8 +827,8 @@ msgstr "비밀번호 복구"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "새로 고침" msgstr "새로 고침"
@@ -796,6 +836,11 @@ msgstr "새로 고침"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "이 CommaFeed 인스턴스에 대한 등록이 마감되었습니다." msgstr "이 CommaFeed 인스턴스에 대한 등록이 마감되었습니다."
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "저장" msgstr "저장"
@@ -825,17 +870,13 @@ msgstr "항목 간 탐색 시 부드럽게 스크롤"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "검색" msgstr "검색"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "검색에 최소 3자가 필요합니다."
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "가입" msgstr "가입"
@@ -933,21 +974,21 @@ msgstr "뭔가 안 좋은 일이 일어났어..."
msgid "Space" msgid "Space"
msgstr "우주" msgstr "우주"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "스타" msgstr "스타"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "별표" msgstr "별표"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "구독" msgstr "구독"
@@ -1000,6 +1041,10 @@ msgstr "테마"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "현재 항목의 읽기 상태 전환" msgstr "현재 항목의 읽기 상태 전환"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "읽지 않음" msgstr "읽지 않음"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "별표 제거" msgstr "별표 제거"
@@ -1056,6 +1101,10 @@ msgstr "경고"
msgid "Website" msgid "Website"
msgstr "웹사이트" msgstr "웹사이트"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "아직 구독이 없습니다. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Perlukan akaun?</0><1>Daftar!</1>" msgstr "<0>Perlukan akaun?</0><1>Daftar!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Mengenai" msgstr "Mengenai"
@@ -54,17 +54,22 @@ msgstr "Tambah kategori"
msgid "Add user" msgid "Add user"
msgstr "Tambah pengguna" msgstr "Tambah pengguna"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Pentadbir" msgstr "Pentadbir"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Semua" msgstr "Semua"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Kembali" msgstr "Kembali"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Kembali untuk log masuk" msgstr "Kembali untuk log masuk"
@@ -137,39 +143,39 @@ msgstr "Kembali untuk log masuk"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Batal" msgstr "Batal"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Padat" msgstr "Padat"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Sahkan" msgstr "Sahkan"
@@ -221,10 +227,19 @@ msgstr "Sahkan"
msgid "Confirm password" msgid "Confirm password"
msgstr "Sahkan kata laluan" msgstr "Sahkan kata laluan"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Nyaman" msgstr "Nyaman"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "Dec"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Paparan" msgstr "Paparan"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Muat turun"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Seret pautan ke bar penanda halaman" msgstr "Seret pautan ke bar penanda halaman"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-mel" msgstr "E-mel"
@@ -319,8 +340,8 @@ msgstr "Alamat e-mel"
msgid "Edit user" msgid "Edit user"
msgstr "Edit pengguna" msgstr "Edit pengguna"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Didayakan" msgstr "Didayakan"
@@ -356,8 +377,8 @@ msgstr "Dikembangkan"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Eksport langganan dan kategori anda sebagai fail OPML yang boleh diimport dalam perkhidmatan membaca suapan lain" msgstr "Eksport langganan dan kategori anda sebagai fail OPML yang boleh diimport dalam perkhidmatan membaca suapan lain"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Nama suapan" msgstr "Nama suapan"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL Suapan" msgstr "URL Suapan"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Lupa kata laluan?" msgstr "Lupa kata laluan?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Jana kunci API dalam profil anda dahulu." msgstr "Jana kunci API dalam profil anda dahulu."
@@ -409,9 +430,9 @@ msgstr "Jana kunci API dalam profil anda dahulu."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Jana kunci API baharu" msgstr "Jana kunci API baharu"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Url suapan yang dijana" msgstr "Url suapan yang dijana"
@@ -472,13 +493,21 @@ msgstr "Dalam paparan yang diperluas, menatal melalui entri menandakannya sebaga
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Teruskan tidak dibaca" msgstr "Teruskan tidak dibaca"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Pintasan papan kekunci" msgstr "Pintasan papan kekunci"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Pautan" msgstr "Pautan"
@@ -532,9 +561,9 @@ msgstr "Memuatkan langganan..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Memuatkan tag..." msgstr "Memuatkan tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Log masuk" msgstr "Log masuk"
@@ -546,8 +575,8 @@ msgstr "Log Keluar"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Urus pengguna" msgstr "Urus pengguna"
@@ -555,18 +584,18 @@ msgstr "Urus pengguna"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Tandai semua sebagai dibaca" msgstr "Tandai semua sebagai dibaca"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Tandai semua entri sebagai dibaca" msgstr "Tandai semua entri sebagai dibaca"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Tandakan sebagai dibaca" msgstr "Tandakan sebagai dibaca"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Tandai sebagai dibaca sehingga di sini" msgstr "Tandai sebagai dibaca sehingga di sini"
@@ -586,15 +615,15 @@ msgstr "Gerakkan halaman ke bawah"
msgid "Move the page up" msgid "Move the page up"
msgstr "Alih halaman ke atas" msgstr "Alih halaman ke atas"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "T/A" msgstr "T/A"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nama" msgstr "Nama"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Kata laluan baharu" msgstr "Kata laluan baharu"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Terbaharu dahulu" msgstr "Terbaharu dahulu"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Seterusnya" msgstr "Seterusnya"
@@ -742,19 +776,25 @@ msgstr "Ibu bapa"
msgid "Parent Category" msgid "Parent Category"
msgstr "Kategori Induk" msgstr "Kategori Induk"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Kata Laluan" msgstr "Kata Laluan"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Pemulihan Kata Laluan" msgstr "Pemulihan Kata Laluan"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Kata laluan tidak sepadan" msgstr "Kata laluan tidak sepadan"
@@ -762,8 +802,8 @@ msgstr "Kata laluan tidak sepadan"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Kedudukan" msgstr "Kedudukan"
@@ -787,8 +827,8 @@ msgstr "Pulihkan kata laluan"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Muat semula" msgstr "Muat semula"
@@ -796,6 +836,11 @@ msgstr "Muat semula"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Pendaftaran ditutup pada contoh CommaFeed ini" msgstr "Pendaftaran ditutup pada contoh CommaFeed ini"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REHAT API" msgstr "REHAT API"
@@ -805,11 +850,11 @@ msgstr "REHAT API"
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Jimat" msgstr "Jimat"
@@ -825,17 +870,13 @@ msgstr "Tatal dengan lancar apabila menavigasi antara entri"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Cari" msgstr "Cari"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Cari memerlukan sekurang-kurangnya 3 aksara"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Daftar" msgstr "Daftar"
@@ -933,21 +974,21 @@ msgstr "Sesuatu yang buruk baru saja berlaku..."
msgid "Space" msgid "Space"
msgstr "Angkasa" msgstr "Angkasa"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Bintang" msgstr "Bintang"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Dibintangi" msgstr "Dibintangi"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Langgan" msgstr "Langgan"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Togol status bacaan entri semasa" msgstr "Togol status bacaan entri semasa"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Belum dibaca" msgstr "Belum dibaca"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Nyahbintang" msgstr "Nyahbintang"
@@ -1056,6 +1101,10 @@ msgstr "Amaran"
msgid "Website" msgid "Website"
msgstr "Laman web" msgstr "Laman web"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Anda belum mempunyai sebarang langganan lagi. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>" msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Omtrent" msgstr "Omtrent"
@@ -54,17 +54,22 @@ msgstr "Legg til kategori"
msgid "Add user" msgid "Add user"
msgstr "Legg til bruker" msgstr "Legg til bruker"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Tilbake" msgstr "Tilbake"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Tilbake for å logge inn" msgstr "Tilbake for å logge inn"
@@ -137,39 +143,39 @@ msgstr "Tilbake for å logge inn"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Bekreft" msgstr "Bekreft"
@@ -221,10 +227,19 @@ msgstr "Bekreft"
msgid "Confirm password" msgid "Confirm password"
msgstr "Bekreft passord" msgstr "Bekreft passord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Koselig" msgstr "Koselig"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Visning" msgstr "Visning"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Last ned"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Dra lenken til bokmerkelinjen" msgstr "Dra lenken til bokmerkelinjen"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-post" msgstr "E-post"
@@ -319,8 +340,8 @@ msgstr "E-postadresse"
msgid "Edit user" msgid "Edit user"
msgstr "Rediger bruker" msgstr "Rediger bruker"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Aktivert" msgstr "Aktivert"
@@ -356,8 +377,8 @@ msgstr "Utvidet"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan importeres i andre feedlesetjenester" msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan importeres i andre feedlesetjenester"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Feednavn" msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Feed-URL" msgstr "Feed-URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Glemt passord?" msgstr "Glemt passord?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Generer en API-nøkkel i profilen din først." msgstr "Generer en API-nøkkel i profilen din først."
@@ -409,9 +430,9 @@ msgstr "Generer en API-nøkkel i profilen din først."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Generer ny API-nøkkel" msgstr "Generer ny API-nøkkel"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Generert feed-url" msgstr "Generert feed-url"
@@ -472,13 +493,21 @@ msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføring
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Behold ulest" msgstr "Behold ulest"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Tastatursnarveier" msgstr "Tastatursnarveier"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "" msgstr ""
@@ -532,9 +561,9 @@ msgstr "Laster abonnementer..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Laster tagger..." msgstr "Laster tagger..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Logg inn" msgstr "Logg inn"
@@ -546,8 +575,8 @@ msgstr "Logg ut"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Administrer brukere" msgstr "Administrer brukere"
@@ -555,18 +584,18 @@ msgstr "Administrer brukere"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Merk alle som lest" msgstr "Merk alle som lest"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Merk alle oppføringer som lest" msgstr "Merk alle oppføringer som lest"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Merk som lest" msgstr "Merk som lest"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Merk som lest frem til her" msgstr "Merk som lest frem til her"
@@ -586,15 +615,15 @@ msgstr "Flytt siden ned"
msgid "Move the page up" msgid "Move the page up"
msgstr "Flytt siden opp" msgstr "Flytt siden opp"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Navn" msgstr "Navn"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nytt passord" msgstr "Nytt passord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Nyeste først" msgstr "Nyeste først"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Neste" msgstr "Neste"
@@ -742,19 +776,25 @@ msgstr "Foreldre"
msgid "Parent Category" msgid "Parent Category"
msgstr "Overordnet kategori" msgstr "Overordnet kategori"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Passord" msgstr "Passord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Passordgjenoppretting" msgstr "Passordgjenoppretting"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Passordene samsvarer ikke" msgstr "Passordene samsvarer ikke"
@@ -762,8 +802,8 @@ msgstr "Passordene samsvarer ikke"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posisjon" msgstr "Posisjon"
@@ -787,8 +827,8 @@ msgstr "Gjenopprett passord"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Oppdater" msgstr "Oppdater"
@@ -796,6 +836,11 @@ msgstr "Oppdater"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringer er stengt på denne CommaFeed-forekomsten" msgstr "Registreringer er stengt på denne CommaFeed-forekomsten"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Lagre" msgstr "Lagre"
@@ -825,17 +870,13 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Søk" msgstr "Søk"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Søk krever minst 3 tegn"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Meld deg på" msgstr "Meld deg på"
@@ -933,21 +974,21 @@ msgstr "Noe ille skjedde akkurat..."
msgid "Space" msgid "Space"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Stjerne" msgstr "Stjerne"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Stjerne" msgstr "Stjerne"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Abonner" msgstr "Abonner"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Veksle lesestatus for gjeldende oppføring" msgstr "Veksle lesestatus for gjeldende oppføring"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Ulest" msgstr "Ulest"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Fjern stjerne" msgstr "Fjern stjerne"
@@ -1056,6 +1101,10 @@ msgstr "Advarsel"
msgid "Website" msgid "Website"
msgstr "Nettsted" msgstr "Nettsted"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Du har ingen abonnementer ennå. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Een account nodig?</0><1>Meld je aan!</1>" msgstr "<0>Een account nodig?</0><1>Meld je aan!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Over" msgstr "Over"
@@ -54,17 +54,22 @@ msgstr "Categorie toevoegen"
msgid "Add user" msgid "Add user"
msgstr "Gebruiker toevoegen" msgstr "Gebruiker toevoegen"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Beheerder" msgstr "Beheerder"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Alles" msgstr "Alles"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Terug" msgstr "Terug"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Terug naar inloggen" msgstr "Terug naar inloggen"
@@ -137,39 +143,39 @@ msgstr "Terug naar inloggen"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Annuleren" msgstr "Annuleren"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Categorie" msgstr "Categorie"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Bevestigen" msgstr "Bevestigen"
@@ -221,10 +227,19 @@ msgstr "Bevestigen"
msgid "Confirm password" msgid "Confirm password"
msgstr "Bevestig wachtwoord" msgstr "Bevestig wachtwoord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Gezellig" msgstr "Gezellig"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "Beschrijving"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Weergave" msgstr "Weergave"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Downloaden"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Link naar bladwijzerbalk slepen" msgstr "Link naar bladwijzerbalk slepen"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "E-mailadres"
msgid "Edit user" msgid "Edit user"
msgstr "Gebruiker bewerken" msgstr "Gebruiker bewerken"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Ingeschakeld" msgstr "Ingeschakeld"
@@ -356,8 +377,8 @@ msgstr "Uitgebreid"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exporteer uw abonnementen en categorieën als een OPML-bestand dat kan worden geïmporteerd in andere feedleesservices" msgstr "Exporteer uw abonnementen en categorieën als een OPML-bestand dat kan worden geïmporteerd in andere feedleesservices"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Feednaam" msgstr "Feednaam"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Feed-URL" msgstr "Feed-URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Wachtwoord vergeten?" msgstr "Wachtwoord vergeten?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Genereer eerst een API-sleutel in uw profiel." msgstr "Genereer eerst een API-sleutel in uw profiel."
@@ -409,9 +430,9 @@ msgstr "Genereer eerst een API-sleutel in uw profiel."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Nieuwe API-sleutel genereren" msgstr "Nieuwe API-sleutel genereren"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Gegenereerde feed-url" msgstr "Gegenereerde feed-url"
@@ -472,13 +493,21 @@ msgstr "In de uitgevouwen weergave markeert het scrollen door items ze als gelez
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Ongelezen houden" msgstr "Ongelezen houden"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "sneltoetsen" msgstr "sneltoetsen"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "" msgstr ""
@@ -532,9 +561,9 @@ msgstr "Abonnementen laden..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Tags laden..." msgstr "Tags laden..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Inloggen" msgstr "Inloggen"
@@ -546,8 +575,8 @@ msgstr "Uitloggen"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Gebruikers beheren" msgstr "Gebruikers beheren"
@@ -555,18 +584,18 @@ msgstr "Gebruikers beheren"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Alles markeren als gelezen" msgstr "Alles markeren als gelezen"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Markeer alle vermeldingen als gelezen" msgstr "Markeer alle vermeldingen als gelezen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Markeren als gelezen" msgstr "Markeren als gelezen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Markeer als gelezen tot hier" msgstr "Markeer als gelezen tot hier"
@@ -586,15 +615,15 @@ msgstr "Verplaats de pagina naar beneden"
msgid "Move the page up" msgid "Move the page up"
msgstr "Verplaats de pagina omhoog" msgstr "Verplaats de pagina omhoog"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Naam" msgstr "Naam"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nieuw wachtwoord" msgstr "Nieuw wachtwoord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Nieuwste eerst" msgstr "Nieuwste eerst"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Volgende" msgstr "Volgende"
@@ -742,19 +776,25 @@ msgstr "Ouder"
msgid "Parent Category" msgid "Parent Category"
msgstr "Oudercategorie" msgstr "Oudercategorie"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Wachtwoord" msgstr "Wachtwoord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Wachtwoordherstel" msgstr "Wachtwoordherstel"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Wachtwoorden komen niet overeen" msgstr "Wachtwoorden komen niet overeen"
@@ -762,8 +802,8 @@ msgstr "Wachtwoorden komen niet overeen"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Positie" msgstr "Positie"
@@ -787,8 +827,8 @@ msgstr "wachtwoord herstellen"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Vernieuwen" msgstr "Vernieuwen"
@@ -796,6 +836,11 @@ msgstr "Vernieuwen"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registraties zijn gesloten op deze CommaFeed-instantie" msgstr "Registraties zijn gesloten op deze CommaFeed-instantie"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST-API" msgstr "REST-API"
@@ -805,11 +850,11 @@ msgstr "REST-API"
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Opslaan" msgstr "Opslaan"
@@ -825,17 +870,13 @@ msgstr "Vloeiend scrollen bij het navigeren tussen items"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Zoeken" msgstr "Zoeken"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Zoeken vereist minimaal 3 tekens"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Aanmelden" msgstr "Aanmelden"
@@ -933,21 +974,21 @@ msgstr "Er is net iets ergs gebeurd..."
msgid "Space" msgid "Space"
msgstr "Ruimte" msgstr "Ruimte"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Ster" msgstr "Ster"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Met ster" msgstr "Met ster"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Abonneren" msgstr "Abonneren"
@@ -1000,6 +1041,10 @@ msgstr "Thema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Toggle leesstatus van huidige invoer" msgstr "Toggle leesstatus van huidige invoer"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Ongelezen" msgstr "Ongelezen"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Sterren uit" msgstr "Sterren uit"
@@ -1056,6 +1101,10 @@ msgstr "Waarschuwing"
msgid "Website" msgid "Website"
msgstr "" msgstr ""
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Je hebt nog geen abonnementen. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>" msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Omtrent" msgstr "Omtrent"
@@ -54,17 +54,22 @@ msgstr "Legg til kategori"
msgid "Add user" msgid "Add user"
msgstr "Legg til bruker" msgstr "Legg til bruker"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Tilbake" msgstr "Tilbake"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Tilbake for å logge inn" msgstr "Tilbake for å logge inn"
@@ -137,39 +143,39 @@ msgstr "Tilbake for å logge inn"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Bekreft" msgstr "Bekreft"
@@ -221,10 +227,19 @@ msgstr "Bekreft"
msgid "Confirm password" msgid "Confirm password"
msgstr "Bekreft passord" msgstr "Bekreft passord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Koselig" msgstr "Koselig"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Visning" msgstr "Visning"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Last ned"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Dra lenken til bokmerkelinjen" msgstr "Dra lenken til bokmerkelinjen"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-post" msgstr "E-post"
@@ -319,8 +340,8 @@ msgstr "E-postadresse"
msgid "Edit user" msgid "Edit user"
msgstr "Rediger bruker" msgstr "Rediger bruker"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Aktivert" msgstr "Aktivert"
@@ -356,8 +377,8 @@ msgstr "Utvidet"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan importeres i andre feedlesetjenester" msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan importeres i andre feedlesetjenester"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Feednavn" msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Feed-URL" msgstr "Feed-URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Glemt passord?" msgstr "Glemt passord?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Generer en API-nøkkel i profilen din først." msgstr "Generer en API-nøkkel i profilen din først."
@@ -409,9 +430,9 @@ msgstr "Generer en API-nøkkel i profilen din først."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Generer ny API-nøkkel" msgstr "Generer ny API-nøkkel"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Generert feed-url" msgstr "Generert feed-url"
@@ -472,13 +493,21 @@ msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføring
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Behold ulest" msgstr "Behold ulest"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Tastatursnarveier" msgstr "Tastatursnarveier"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "" msgstr ""
@@ -532,9 +561,9 @@ msgstr "Laster abonnementer..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Laster tagger..." msgstr "Laster tagger..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Logg inn" msgstr "Logg inn"
@@ -546,8 +575,8 @@ msgstr "Logg ut"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Administrer brukere" msgstr "Administrer brukere"
@@ -555,18 +584,18 @@ msgstr "Administrer brukere"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Merk alle som lest" msgstr "Merk alle som lest"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Merk alle oppføringer som lest" msgstr "Merk alle oppføringer som lest"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Merk som lest" msgstr "Merk som lest"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Merk som lest frem til her" msgstr "Merk som lest frem til her"
@@ -586,15 +615,15 @@ msgstr "Flytt siden ned"
msgid "Move the page up" msgid "Move the page up"
msgstr "Flytt siden opp" msgstr "Flytt siden opp"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Navn" msgstr "Navn"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nytt passord" msgstr "Nytt passord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Nyeste først" msgstr "Nyeste først"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Neste" msgstr "Neste"
@@ -742,19 +776,25 @@ msgstr "Foreldre"
msgid "Parent Category" msgid "Parent Category"
msgstr "Overordnet kategori" msgstr "Overordnet kategori"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Passord" msgstr "Passord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Passordgjenoppretting" msgstr "Passordgjenoppretting"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Passordene samsvarer ikke" msgstr "Passordene samsvarer ikke"
@@ -762,8 +802,8 @@ msgstr "Passordene samsvarer ikke"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posisjon" msgstr "Posisjon"
@@ -787,8 +827,8 @@ msgstr "Gjenopprett passord"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Oppdater" msgstr "Oppdater"
@@ -796,6 +836,11 @@ msgstr "Oppdater"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringer er stengt på denne CommaFeed-forekomsten" msgstr "Registreringer er stengt på denne CommaFeed-forekomsten"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Lagre" msgstr "Lagre"
@@ -825,17 +870,13 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Søk" msgstr "Søk"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Søk krever minst 3 tegn"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Meld deg på" msgstr "Meld deg på"
@@ -933,21 +974,21 @@ msgstr "Noe ille skjedde akkurat..."
msgid "Space" msgid "Space"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Stjerne" msgstr "Stjerne"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Stjerne" msgstr "Stjerne"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Abonner" msgstr "Abonner"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Veksle lesestatus for gjeldende oppføring" msgstr "Veksle lesestatus for gjeldende oppføring"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Ulest" msgstr "Ulest"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Fjern stjerne" msgstr "Fjern stjerne"
@@ -1056,6 +1101,10 @@ msgstr "Advarsel"
msgid "Website" msgid "Website"
msgstr "Nettsted" msgstr "Nettsted"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Du har ingen abonnementer ennå. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Potrzebujesz konta?</0><1>Zarejestruj się!</1>" msgstr "<0>Potrzebujesz konta?</0><1>Zarejestruj się!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "O" msgstr "O"
@@ -54,17 +54,22 @@ msgstr "Dodaj kategorię"
msgid "Add user" msgid "Add user"
msgstr "Dodaj użytkownika" msgstr "Dodaj użytkownika"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Administracja" msgstr "Administracja"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Wszystkie" msgstr "Wszystkie"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Powrót" msgstr "Powrót"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Powrót do logowania" msgstr "Powrót do logowania"
@@ -137,39 +143,39 @@ msgstr "Powrót do logowania"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Anuluj" msgstr "Anuluj"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategoria" msgstr "Kategoria"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompaktowy" msgstr "Kompaktowy"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Potwierdź" msgstr "Potwierdź"
@@ -221,10 +227,19 @@ msgstr "Potwierdź"
msgid "Confirm password" msgid "Confirm password"
msgstr "Potwierdź hasło" msgstr "Potwierdź hasło"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Przytulny" msgstr "Przytulny"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "Opis"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Wyświetlacz" msgstr "Wyświetlacz"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Pobierz"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Przeciągnij link do paska zakładek" msgstr "Przeciągnij link do paska zakładek"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "Adres e-mail"
msgid "Edit user" msgid "Edit user"
msgstr "Edytuj użytkownika" msgstr "Edytuj użytkownika"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "włączone" msgstr "włączone"
@@ -356,8 +377,8 @@ msgstr "Rozszerzony"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Eksportuj swoje subskrypcje i kategorie jako plik OPML, który można zaimportować do innych usług odczytu kanałów" msgstr "Eksportuj swoje subskrypcje i kategorie jako plik OPML, który można zaimportować do innych usług odczytu kanałów"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "nazwa kanału" msgstr "nazwa kanału"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL kanału" msgstr "URL kanału"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Zapomniałeś hasła?" msgstr "Zapomniałeś hasła?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Najpierw wygeneruj klucz API w swoim profilu." msgstr "Najpierw wygeneruj klucz API w swoim profilu."
@@ -409,9 +430,9 @@ msgstr "Najpierw wygeneruj klucz API w swoim profilu."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Wygeneruj nowy klucz API" msgstr "Wygeneruj nowy klucz API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Wygenerowany adres URL kanału" msgstr "Wygenerowany adres URL kanału"
@@ -472,13 +493,21 @@ msgstr "W widoku rozszerzonym przewijanie wpisów oznacza je jako przeczytane"
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Nie przeczytaj" msgstr "Nie przeczytaj"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Skróty klawiaturowe" msgstr "Skróty klawiaturowe"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "" msgstr ""
@@ -532,9 +561,9 @@ msgstr "Ładowanie subskrypcji..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Ładowanie tagów..." msgstr "Ładowanie tagów..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Zaloguj się" msgstr "Zaloguj się"
@@ -546,8 +575,8 @@ msgstr "Wyloguj"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Zarządzaj użytkownikami" msgstr "Zarządzaj użytkownikami"
@@ -555,18 +584,18 @@ msgstr "Zarządzaj użytkownikami"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Oznacz wszystko jako przeczytane" msgstr "Oznacz wszystko jako przeczytane"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Oznacz wszystkie wpisy jako przeczytane" msgstr "Oznacz wszystkie wpisy jako przeczytane"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Oznacz jako przeczytane" msgstr "Oznacz jako przeczytane"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Oznacz jako przeczytane do tej pory" msgstr "Oznacz jako przeczytane do tej pory"
@@ -586,15 +615,15 @@ msgstr "Przesuń stronę w dół"
msgid "Move the page up" msgid "Move the page up"
msgstr "Przesuń stronę w górę" msgstr "Przesuń stronę w górę"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "nie dotyczy" msgstr "nie dotyczy"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nazwa" msgstr "Nazwa"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nowe hasło" msgstr "Nowe hasło"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Najnowsze jako pierwsze" msgstr "Najnowsze jako pierwsze"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Dalej" msgstr "Dalej"
@@ -742,19 +776,25 @@ msgstr "Rodzic"
msgid "Parent Category" msgid "Parent Category"
msgstr "Kategoria nadrzędna" msgstr "Kategoria nadrzędna"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Hasło" msgstr "Hasło"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Odzyskiwanie hasła" msgstr "Odzyskiwanie hasła"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Hasła nie pasują" msgstr "Hasła nie pasują"
@@ -762,8 +802,8 @@ msgstr "Hasła nie pasują"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Pozycja" msgstr "Pozycja"
@@ -787,8 +827,8 @@ msgstr "Odzyskaj hasło"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Odśwież" msgstr "Odśwież"
@@ -796,6 +836,11 @@ msgstr "Odśwież"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Rejestracje są zamknięte w tej instancji CommaFeed" msgstr "Rejestracje są zamknięte w tej instancji CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Zapisz" msgstr "Zapisz"
@@ -825,17 +870,13 @@ msgstr "Przewijaj płynnie podczas nawigowania między wpisami"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Szukaj" msgstr "Szukaj"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Wyszukiwanie wymaga co najmniej 3 znaków"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Zarejestruj się" msgstr "Zarejestruj się"
@@ -933,21 +974,21 @@ msgstr "Coś złego właśnie się stało..."
msgid "Space" msgid "Space"
msgstr "Przestrzeń" msgstr "Przestrzeń"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Gwiazda" msgstr "Gwiazda"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Oznaczone gwiazdką" msgstr "Oznaczone gwiazdką"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Subskrybuj" msgstr "Subskrybuj"
@@ -1000,6 +1041,10 @@ msgstr "Motyw"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Przełącz stan odczytu bieżącego wpisu" msgstr "Przełącz stan odczytu bieżącego wpisu"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Nieprzeczytane" msgstr "Nieprzeczytane"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "" msgstr ""
@@ -1056,6 +1101,10 @@ msgstr "Ostrzeżenie"
msgid "Website" msgid "Website"
msgstr "Strona internetowa" msgstr "Strona internetowa"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Nie masz jeszcze żadnych subskrypcji. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr "<0>Olá,</0><1>eu sou Jérémie da Bélgica e venho trabalhando no Comma
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Precisa de uma conta?</0><1>Inscreva-se!</1>" msgstr "<0>Precisa de uma conta?</0><1>Inscreva-se!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Sobre" msgstr "Sobre"
@@ -54,17 +54,22 @@ msgstr "Adicionar categoria"
msgid "Add user" msgid "Add user"
msgstr "Adicionar usuário" msgstr "Adicionar usuário"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Administrador" msgstr "Administrador"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Todos" msgstr "Todos"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Voltar" msgstr "Voltar"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Voltar para logar" msgstr "Voltar para logar"
@@ -137,39 +143,39 @@ msgstr "Voltar para logar"
msgid "Blue" msgid "Blue"
msgstr "Azul" msgstr "Azul"
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Extensão do navegador"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "Extensão para o Chrome necessária" 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 #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "Aba do navegador" msgstr "Aba do navegador"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Cancelar" msgstr "Cancelar"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Categoria" msgstr "Categoria"
@@ -209,11 +215,11 @@ msgstr "CommaFeed versão {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Compacto" msgstr "Compacto"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Confirmar" msgstr "Confirmar"
@@ -221,10 +227,19 @@ msgstr "Confirmar"
msgid "Confirm password" msgid "Confirm password"
msgstr "Confirmar senha" msgstr "Confirmar senha"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Aconchegante" msgstr "Aconchegante"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "Código JS personalizado que será executado ao carregar a página"
msgid "Cyan" msgid "Cyan"
msgstr "Ciano" msgstr "Ciano"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Escuro" msgstr "Escuro"
@@ -283,14 +298,18 @@ msgstr "Desc"
msgid "Detailed" msgid "Detailed"
msgstr "Detalhado" msgstr "Detalhado"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Exibir" msgstr "Exibir"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Doar" msgstr "Doar"
@@ -302,11 +321,13 @@ msgstr "Baixar"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Arraste o link para a barra de favoritos" msgstr "Arraste o link para a barra de favoritos"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-mail" msgstr "E-mail"
@@ -319,8 +340,8 @@ msgstr "Endereço de e-mail"
msgid "Edit user" msgid "Edit user"
msgstr "Editar usuário" msgstr "Editar usuário"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Ativado" msgstr "Ativado"
@@ -356,8 +377,8 @@ msgstr "Expandido"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exporte suas inscrições e categorias como um arquivo OPML que pode ser importado em outros serviços de leitura de feed" msgstr "Exporte suas inscrições e categorias como um arquivo OPML que pode ser importado em outros serviços de leitura de feed"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Opções da extensão" msgstr "Opções da extensão"
@@ -365,9 +386,9 @@ msgstr "Opções da extensão"
msgid "Feed name" msgid "Feed name"
msgstr "Nome do feed" msgstr "Nome do feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL do feed" msgstr "URL do feed"
@@ -399,9 +420,9 @@ msgstr "Forçar a atualização de feeds não está disponível."
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Esqueceu a senha?" msgstr "Esqueceu a senha?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Gere uma chave de API em seu perfil primeiro." msgstr "Gere uma chave de API em seu perfil primeiro."
@@ -409,9 +430,9 @@ msgstr "Gere uma chave de API em seu perfil primeiro."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Gerar nova chave de API" msgstr "Gerar nova chave de API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "URL do feed gerado" msgstr "URL do feed gerado"
@@ -472,13 +493,21 @@ msgstr "Na visualização expandida, rolar pelas entradas marca-as como lidas"
msgid "Indigo" msgid "Indigo"
msgstr "Índigo" msgstr "Índigo"
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Manter não lido" msgstr "Manter não lido"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Atalhos de teclado" msgstr "Atalhos de teclado"
@@ -506,9 +535,9 @@ msgstr "Claro"
msgid "Lime" msgid "Lime"
msgstr "Lima" msgstr "Lima"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Link" msgstr "Link"
@@ -532,9 +561,9 @@ msgstr "Carregando assinaturas..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Carregando tags..." msgstr "Carregando tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Entrar" msgstr "Entrar"
@@ -546,8 +575,8 @@ msgstr "Sair"
msgid "Long press" msgid "Long press"
msgstr "Pressione e segure" msgstr "Pressione e segure"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Gerenciar usuários" msgstr "Gerenciar usuários"
@@ -555,18 +584,18 @@ msgstr "Gerenciar usuários"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Marcar todos como lidos" msgstr "Marcar todos como lidos"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Marcar todas as entradas como lidas" msgstr "Marcar todas as entradas como lidas"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Marcar como lido" msgstr "Marcar como lido"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Marcar como lido até aqui" msgstr "Marcar como lido até aqui"
@@ -586,15 +615,15 @@ msgstr "Mova a página para baixo"
msgid "Move the page up" msgid "Move the page up"
msgstr "Mover a página para cima" msgstr "Mover a página para cima"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "N/D" msgstr "N/D"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Nome" msgstr "Nome"
@@ -615,12 +644,17 @@ msgstr "Nunca"
msgid "New password" msgid "New password"
msgstr "Nova senha" msgstr "Nova senha"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Mais novo primeiro" msgstr "Mais novo primeiro"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Próximo" msgstr "Próximo"
@@ -742,19 +776,25 @@ msgstr "Pai"
msgid "Parent Category" msgid "Parent Category"
msgstr "Categoria Pai" msgstr "Categoria Pai"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Senha" msgstr "Senha"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Recuperação de Senha" msgstr "Recuperação de Senha"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Senhas não coincidem" msgstr "Senhas não coincidem"
@@ -762,8 +802,8 @@ msgstr "Senhas não coincidem"
msgid "Pink" msgid "Pink"
msgstr "Rosa" msgstr "Rosa"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Posição" msgstr "Posição"
@@ -787,8 +827,8 @@ msgstr "Recuperar senha"
msgid "Red" msgid "Red"
msgstr "Vermelho" msgstr "Vermelho"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Atualizar" msgstr "Atualizar"
@@ -796,6 +836,11 @@ msgstr "Atualizar"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Os registros estão fechados nesta instância do CommaFeed" msgstr "Os registros estão fechados nesta instância do CommaFeed"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "API REST" msgstr "API REST"
@@ -805,11 +850,11 @@ msgstr "API REST"
msgid "Right click" msgid "Right click"
msgstr "Clique com o botão direito" msgstr "Clique com o botão direito"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Salvar" msgstr "Salvar"
@@ -825,17 +870,13 @@ msgstr "Rolar suavemente ao navegar entre as entradas"
msgid "Scrolling" msgid "Scrolling"
msgstr "Deslizar" msgstr "Deslizar"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Pesquisar" msgstr "Pesquisar"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Pesquisa requer pelo menos 3 caracteres"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "Selecionar próximo feed/categoria não lido" msgstr "Selecionar próximo feed/categoria não lido"
@@ -918,9 +959,9 @@ msgstr "Mostrar contagem de não lidos no favion da aba"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "Mostrar contagem de não lidos no título da aba" 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 #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Inscreva-se" msgstr "Inscreva-se"
@@ -933,21 +974,21 @@ msgstr "Algo ruim acabou de acontecer..."
msgid "Space" msgid "Space"
msgstr "Espaço" msgstr "Espaço"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Estrela" msgstr "Estrela"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Com estrela" msgstr "Com estrela"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Assinar" msgstr "Assinar"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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" 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 ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Alternar o status de leitura da entrada atual" msgstr "Alternar o status de leitura da entrada atual"
@@ -1024,8 +1069,8 @@ msgstr "Teste o demo!"
msgid "Unread" msgid "Unread"
msgstr "Não lido" msgstr "Não lido"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Desestrelar" msgstr "Desestrelar"
@@ -1056,6 +1101,10 @@ msgstr "Aviso"
msgid "Website" msgid "Website"
msgstr "Site" msgstr "Site"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "Amarelo" msgstr "Amarelo"
@@ -1067,3 +1116,7 @@ msgstr "Você ainda não tem nenhuma assinatura. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "Seus feed foram enfileirados para atualização" 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 ""

View File

@@ -33,8 +33,8 @@ msgstr "<0>Здравствуйте,</0><1>Я Жереми из Бельгии,
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Нужен аккаунт?</0><1>Зарегистрируйтесь!</1>" msgstr "<0>Нужен аккаунт?</0><1>Зарегистрируйтесь!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "О CommaFeed" msgstr "О CommaFeed"
@@ -54,17 +54,22 @@ msgstr "Добавить категорию"
msgid "Add user" msgid "Add user"
msgstr "Добавить пользователя" msgstr "Добавить пользователя"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Админ" msgstr "Админ"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Все" msgstr "Все"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Назад" msgstr "Назад"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Вернуться к входу" msgstr "Вернуться к входу"
@@ -137,39 +143,39 @@ msgstr "Вернуться к входу"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Расширение для браузера"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "Для браузера Chrome требуется расширение" msgstr "Для браузера Chrome требуется расширение"
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Расширение для браузера"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Отмена" msgstr "Отмена"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Категория" msgstr "Категория"
@@ -209,11 +215,11 @@ msgstr "CommaFeed версии {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Компактный" msgstr "Компактный"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Подтвердить" msgstr "Подтвердить"
@@ -221,10 +227,19 @@ msgstr "Подтвердить"
msgid "Confirm password" msgid "Confirm password"
msgstr "Подтвердить пароль" msgstr "Подтвердить пароль"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Уютно" msgstr "Уютно"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "Пользовательский JS-код, который будет в
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "Темная" msgstr "Темная"
@@ -283,14 +298,18 @@ msgstr "По убыванию"
msgid "Detailed" msgid "Detailed"
msgstr "Подробно" msgstr "Подробно"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Отображение" msgstr "Отображение"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "Пожертвование" msgstr "Пожертвование"
@@ -302,11 +321,13 @@ msgstr "Скачать"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Перетащите ссылку на панель закладок" msgstr "Перетащите ссылку на панель закладок"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "Электронная почта" msgstr "Электронная почта"
@@ -319,8 +340,8 @@ msgstr "Адрес электронной почты"
msgid "Edit user" msgid "Edit user"
msgstr "Редактировать пользователя" msgstr "Редактировать пользователя"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Включено" msgstr "Включено"
@@ -356,8 +377,8 @@ msgstr "Расширенный"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Экспортируйте свои подписки и категории в виде файла OPML, который можно импортировать в другие службы чтения каналов." msgstr "Экспортируйте свои подписки и категории в виде файла OPML, который можно импортировать в другие службы чтения каналов."
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Параметры расширения" msgstr "Параметры расширения"
@@ -365,9 +386,9 @@ msgstr "Параметры расширения"
msgid "Feed name" msgid "Feed name"
msgstr "Имя фида" msgstr "Имя фида"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL-адрес фида" msgstr "URL-адрес фида"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Забыли пароль?" msgstr "Забыли пароль?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Сначала сгенерируйте ключ API в своем профиле." msgstr "Сначала сгенерируйте ключ API в своем профиле."
@@ -409,9 +430,9 @@ msgstr "Сначала сгенерируйте ключ API в своем пр
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Создать новый ключ API" msgstr "Создать новый ключ API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Сгенерированный URL фида" msgstr "Сгенерированный URL фида"
@@ -472,13 +493,21 @@ msgstr "В развернутом виде прокрутка записей п
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Оставить непрочитанным" msgstr "Оставить непрочитанным"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Сочетания клавиш" msgstr "Сочетания клавиш"
@@ -506,9 +535,9 @@ msgstr "Светлая"
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Ссылка" msgstr "Ссылка"
@@ -532,9 +561,9 @@ msgstr "Загрузка подписок..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Загрузка тегов..." msgstr "Загрузка тегов..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Войти" msgstr "Войти"
@@ -546,8 +575,8 @@ msgstr "Выйти"
msgid "Long press" msgid "Long press"
msgstr "Долгое нажатие" msgstr "Долгое нажатие"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Управление пользователями" msgstr "Управление пользователями"
@@ -555,18 +584,18 @@ msgstr "Управление пользователями"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Отметить все как прочитанное" msgstr "Отметить все как прочитанное"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Отметить все записи как прочитанные" msgstr "Отметить все записи как прочитанные"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Отметить как прочитанное" msgstr "Отметить как прочитанное"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Отметить как прочитанное до этого места" msgstr "Отметить как прочитанное до этого места"
@@ -586,15 +615,15 @@ msgstr "Переместить страницу вниз"
msgid "Move the page up" msgid "Move the page up"
msgstr "Переместить страницу вверх" msgstr "Переместить страницу вверх"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "Н/Д" msgstr "Н/Д"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Имя" msgstr "Имя"
@@ -615,12 +644,17 @@ msgstr "Никогда"
msgid "New password" msgid "New password"
msgstr "Новый пароль" msgstr "Новый пароль"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Сначала новые" msgstr "Сначала новые"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Следующий" msgstr "Следующий"
@@ -742,19 +776,25 @@ msgstr "Родительский"
msgid "Parent Category" msgid "Parent Category"
msgstr "Родительская категория" msgstr "Родительская категория"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Пароль" msgstr "Пароль"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Восстановление пароля" msgstr "Восстановление пароля"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Пароли не совпадают" msgstr "Пароли не совпадают"
@@ -762,8 +802,8 @@ msgstr "Пароли не совпадают"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Позиция" msgstr "Позиция"
@@ -787,8 +827,8 @@ msgstr "Восстановить пароль"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Обновить" msgstr "Обновить"
@@ -796,6 +836,11 @@ msgstr "Обновить"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Регистрация закрыта для этого экземпляра CommaFeed." msgstr "Регистрация закрыта для этого экземпляра CommaFeed."
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST API" msgstr "REST API"
@@ -805,11 +850,11 @@ msgstr "REST API"
msgid "Right click" msgid "Right click"
msgstr "Правый клик" msgstr "Правый клик"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Сохранить" msgstr "Сохранить"
@@ -825,17 +870,13 @@ msgstr "Плавная прокрутка при переходе между з
msgid "Scrolling" msgid "Scrolling"
msgstr "Прокрутка" msgstr "Прокрутка"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Поиск" msgstr "Поиск"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Для поиска требуется не менее 3 символов"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Зарегистрироваться" msgstr "Зарегистрироваться"
@@ -933,21 +974,21 @@ msgstr "Только что случилось что-то плохое..."
msgid "Space" msgid "Space"
msgstr "Пробел" msgstr "Пробел"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "В избранное" msgstr "В избранное"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Избранное" msgstr "Избранное"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Подписаться" msgstr "Подписаться"
@@ -1000,6 +1041,10 @@ msgstr "Тема"
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" 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, воспользуйтесь формой в нижней части страницы" 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 ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Переключить статус чтения текущей записи" msgstr "Переключить статус чтения текущей записи"
@@ -1024,8 +1069,8 @@ msgstr "Попробуйте демо-версию!"
msgid "Unread" msgid "Unread"
msgstr "Не прочитано" msgstr "Не прочитано"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Удалить из избранного" msgstr "Удалить из избранного"
@@ -1056,6 +1101,10 @@ msgstr "Предупреждение"
msgid "Website" msgid "Website"
msgstr "Веб-сайт" msgstr "Веб-сайт"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "У вас еще нет подписок. Почему бы не поп
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Potrebujete účet?</0><1>Zaregistrujte sa!</1>" msgstr "<0>Potrebujete účet?</0><1>Zaregistrujte sa!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Asi" msgstr "Asi"
@@ -54,17 +54,22 @@ msgstr "Pridať kategóriu"
msgid "Add user" msgid "Add user"
msgstr "Pridať užívateľa" msgstr "Pridať užívateľa"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Správca" msgstr "Správca"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Všetky" msgstr "Všetky"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Späť" msgstr "Späť"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Späť na prihlásenie" msgstr "Späť na prihlásenie"
@@ -137,39 +143,39 @@ msgstr "Späť na prihlásenie"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Zrušiť" msgstr "Zrušiť"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategória" msgstr "Kategória"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompaktný" msgstr "Kompaktný"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Potvrdiť" msgstr "Potvrdiť"
@@ -221,10 +227,19 @@ msgstr "Potvrdiť"
msgid "Confirm password" msgid "Confirm password"
msgstr "Potvrďte heslo" msgstr "Potvrďte heslo"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Útulný" msgstr "Útulný"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Displej" msgstr "Displej"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Stiahnuť"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Presuňte odkaz na lištu so záložkami" msgstr "Presuňte odkaz na lištu so záložkami"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "" msgstr ""
@@ -319,8 +340,8 @@ msgstr "E-mailová adresa"
msgid "Edit user" msgid "Edit user"
msgstr "Upravte používateľa" msgstr "Upravte používateľa"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Povolené" msgstr "Povolené"
@@ -356,8 +377,8 @@ msgstr "Rozšírené"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exportujte svoje odbery a kategórie ako súbor OPML, ktorý je možné importovať do iných služieb na čítanie informačných kanálov" msgstr "Exportujte svoje odbery a kategórie ako súbor OPML, ktorý je možné importovať do iných služieb na čítanie informačných kanálov"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Názov informačného kanála" 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 #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "URL informačného kanála" msgstr "URL informačného kanála"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Zabudli ste heslo?" msgstr "Zabudli ste heslo?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Najprv si vo svojom profile vygenerujte kľúč API." msgstr "Najprv si vo svojom profile vygenerujte kľúč API."
@@ -409,9 +430,9 @@ msgstr "Najprv si vo svojom profile vygenerujte kľúč API."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Vygenerujte nový kľúč API" msgstr "Vygenerujte nový kľúč API"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Generovaná adresa URL informačného kanála" msgstr "Generovaná adresa URL informačného kanála"
@@ -472,13 +493,21 @@ msgstr "V rozšírenom zobrazení ich rolovanie cez položky označí ako preč
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Ponechať neprečítané" msgstr "Ponechať neprečítané"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Klávesové skratky" msgstr "Klávesové skratky"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Odkaz" msgstr "Odkaz"
@@ -532,9 +561,9 @@ msgstr "Načítavam odbery..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Načítavam značky..." msgstr "Načítavam značky..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Prihláste sa" msgstr "Prihláste sa"
@@ -546,8 +575,8 @@ msgstr "Odhlásenie"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Správa používateľov" msgstr "Správa používateľov"
@@ -555,18 +584,18 @@ msgstr "Správa používateľov"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Označiť všetko ako prečítané" msgstr "Označiť všetko ako prečítané"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Označte všetky položky ako prečítané" msgstr "Označte všetky položky ako prečítané"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Označiť ako prečítané" msgstr "Označiť ako prečítané"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Označiť ako prečítané až sem" msgstr "Označiť ako prečítané až sem"
@@ -586,15 +615,15 @@ msgstr "Posuňte stránku nadol"
msgid "Move the page up" msgid "Move the page up"
msgstr "Posuňte stránku nahor" msgstr "Posuňte stránku nahor"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Meno" msgstr "Meno"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nové heslo" msgstr "Nové heslo"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Najnovšie ako prvé" msgstr "Najnovšie ako prvé"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Ďalej" msgstr "Ďalej"
@@ -742,19 +776,25 @@ msgstr "Rodič"
msgid "Parent Category" msgid "Parent Category"
msgstr "Rodičovská kategória" msgstr "Rodičovská kategória"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Heslo" msgstr "Heslo"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Obnovenie hesla" msgstr "Obnovenie hesla"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Heslá sa nezhodujú" msgstr "Heslá sa nezhodujú"
@@ -762,8 +802,8 @@ msgstr "Heslá sa nezhodujú"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Pozícia" msgstr "Pozícia"
@@ -787,8 +827,8 @@ msgstr "Obnoviť heslo"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Obnoviť" msgstr "Obnoviť"
@@ -796,6 +836,11 @@ msgstr "Obnoviť"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "V tejto inštancii CommaFeed sú registrácie uzavreté" msgstr "V tejto inštancii CommaFeed sú registrácie uzavreté"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Uložiť" msgstr "Uložiť"
@@ -825,17 +870,13 @@ msgstr "Pri navigácii medzi položkami plynulo rolujte"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Hľadaj" msgstr "Hľadaj"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Hľadanie vyžaduje aspoň 3 znaky"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Zaregistrujte sa" msgstr "Zaregistrujte sa"
@@ -933,21 +974,21 @@ msgstr "Práve sa stalo niečo zlé..."
msgid "Space" msgid "Space"
msgstr "Vesmír" msgstr "Vesmír"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Hviezda" msgstr "Hviezda"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "S hviezdičkou" msgstr "S hviezdičkou"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Prihlásiť sa" msgstr "Prihlásiť sa"
@@ -1000,6 +1041,10 @@ msgstr "Téma"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Prepne stav čítania aktuálneho záznamu" msgstr "Prepne stav čítania aktuálneho záznamu"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Neprečítané" msgstr "Neprečítané"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Odobrať hviezdičku" msgstr "Odobrať hviezdičku"
@@ -1056,6 +1101,10 @@ msgstr "Varovanie"
msgid "Website" msgid "Website"
msgstr "Webová stránka" msgstr "Webová stránka"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Zatiaľ nemáte žiadne odbery. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Behöver du ett konto?</0><1>Registrera dig!</1>" msgstr "<0>Behöver du ett konto?</0><1>Registrera dig!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Ungefär" msgstr "Ungefär"
@@ -54,17 +54,22 @@ msgstr "Lägg till kategori"
msgid "Add user" msgid "Add user"
msgstr "Lägg till användare" msgstr "Lägg till användare"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "" msgstr ""
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Alla" msgstr "Alla"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Tillbaka" msgstr "Tillbaka"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Tillbaka för att logga in" msgstr "Tillbaka för att logga in"
@@ -137,39 +143,39 @@ msgstr "Tillbaka för att logga in"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "Avbryt" msgstr "Avbryt"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr ""
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Bekräfta" msgstr "Bekräfta"
@@ -221,10 +227,19 @@ msgstr "Bekräfta"
msgid "Confirm password" msgid "Confirm password"
msgstr "Bekräfta lösenord" msgstr "Bekräfta lösenord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Mysigt" msgstr "Mysigt"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "" msgstr ""
@@ -249,8 +264,8 @@ msgstr ""
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr ""
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Visa" msgstr "Visa"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "Ladda ner"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Dra länken till bokmärkesfältet" msgstr "Dra länken till bokmärkesfältet"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-post" msgstr "E-post"
@@ -319,8 +340,8 @@ msgstr "E-postadress"
msgid "Edit user" msgid "Edit user"
msgstr "Redigera användare" msgstr "Redigera användare"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Aktiverad" msgstr "Aktiverad"
@@ -356,8 +377,8 @@ msgstr "Utökad"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exportera dina prenumerationer och kategorier som en OPML-fil som kan importeras i andra flödesläsningstjänster" msgstr "Exportera dina prenumerationer och kategorier som en OPML-fil som kan importeras i andra flödesläsningstjänster"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "" msgstr ""
@@ -365,9 +386,9 @@ msgstr ""
msgid "Feed name" msgid "Feed name"
msgstr "Flödesnamn" msgstr "Flödesnamn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Flödes-URL" msgstr "Flödes-URL"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Glömt lösenord?" msgstr "Glömt lösenord?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Generera en API-nyckel i din profil först." msgstr "Generera en API-nyckel i din profil först."
@@ -409,9 +430,9 @@ msgstr "Generera en API-nyckel i din profil först."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Generera ny API-nyckel" msgstr "Generera ny API-nyckel"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Genererad feed-url" msgstr "Genererad feed-url"
@@ -472,13 +493,21 @@ msgstr "I utökad vy, rullning genom poster markerar dem som lästa"
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Behåll oläst" msgstr "Behåll oläst"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Kortkommandon" msgstr "Kortkommandon"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Länk" msgstr "Länk"
@@ -532,9 +561,9 @@ msgstr "Laddar prenumerationer..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Laddar taggar..." msgstr "Laddar taggar..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Logga in" msgstr "Logga in"
@@ -546,8 +575,8 @@ msgstr "Logga ut"
msgid "Long press" msgid "Long press"
msgstr "" msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Hantera användare" msgstr "Hantera användare"
@@ -555,18 +584,18 @@ msgstr "Hantera användare"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Markera alla som lästa" msgstr "Markera alla som lästa"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Markera alla poster som lästa" msgstr "Markera alla poster som lästa"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Markera som läst" msgstr "Markera som läst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Markera som läst hit" msgstr "Markera som läst hit"
@@ -586,15 +615,15 @@ msgstr "Flytta sidan nedåt"
msgid "Move the page up" msgid "Move the page up"
msgstr "Flytta sidan uppåt" msgstr "Flytta sidan uppåt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "Namn" msgstr "Namn"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Nytt lösenord" msgstr "Nytt lösenord"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Nyast först" msgstr "Nyast först"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Nästa" msgstr "Nästa"
@@ -742,19 +776,25 @@ msgstr "Förälder"
msgid "Parent Category" msgid "Parent Category"
msgstr "Föräldrakategori" msgstr "Föräldrakategori"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Lösenord" msgstr "Lösenord"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Lösenordsåterställning" msgstr "Lösenordsåterställning"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Lösenorden matchar inte" msgstr "Lösenorden matchar inte"
@@ -762,8 +802,8 @@ msgstr "Lösenorden matchar inte"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "" msgstr ""
@@ -787,8 +827,8 @@ msgstr "Återställ lösenord"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Uppdatera" msgstr "Uppdatera"
@@ -796,6 +836,11 @@ msgstr "Uppdatera"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Registreringar är stängda på denna CommaFeed-instans" msgstr "Registreringar är stängda på denna CommaFeed-instans"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "" msgstr ""
@@ -805,11 +850,11 @@ msgstr ""
msgid "Right click" msgid "Right click"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Spara" msgstr "Spara"
@@ -825,17 +870,13 @@ msgstr "Bläddra mjukt när du navigerar mellan poster"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Sök" msgstr "Sök"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Sökning kräver minst 3 tecken"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Anmäl dig" msgstr "Anmäl dig"
@@ -933,21 +974,21 @@ msgstr "Något dåligt hände precis..."
msgid "Space" msgid "Space"
msgstr "Rymden" msgstr "Rymden"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Stjärna" msgstr "Stjärna"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Starmed" msgstr "Starmed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Prenumerera" msgstr "Prenumerera"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Växla lässtatus för aktuell post" msgstr "Växla lässtatus för aktuell post"
@@ -1024,8 +1069,8 @@ msgstr ""
msgid "Unread" msgid "Unread"
msgstr "Oläst" msgstr "Oläst"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "" msgstr ""
@@ -1056,6 +1101,10 @@ msgstr "Varning"
msgid "Website" msgid "Website"
msgstr "Webbplats" msgstr "Webbplats"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Du har inga prenumerationer än. "
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -33,8 +33,8 @@ msgstr "<0>Merhaba,</0><1>Ben Belçika'dan Jérémie ve 10 yıldır boş zamanla
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Bir hesaba mı ihtiyacınız var?</0><1>Kaydolun!</1>" msgstr "<0>Bir hesaba mı ihtiyacınız var?</0><1>Kaydolun!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "Hakkında" msgstr "Hakkında"
@@ -54,17 +54,22 @@ msgstr "Kategori ekle"
msgid "Add user" msgid "Add user"
msgstr "Kullanıcı ekle" msgstr "Kullanıcı ekle"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "Yönetici" msgstr "Yönetici"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr ""
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "Tümü" msgstr "Tümü"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "Geri" msgstr "Geri"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "Giriş yapmak için geri dön" msgstr "Giriş yapmak için geri dön"
@@ -137,39 +143,39 @@ msgstr "Giriş yapmak için geri dön"
msgid "Blue" msgid "Blue"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extension"
msgstr "Tarayıcı eklentisi"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension required for Chrome"
msgstr "" msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Browser extention"
msgstr "Tarayıcı eklentisi"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "İptal" msgstr "İptal"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "Kategori" msgstr "Kategori"
@@ -209,11 +215,11 @@ msgstr "CommaFeed sürüm {version} ({revision})."
msgid "Compact" msgid "Compact"
msgstr "Kompakt" msgstr "Kompakt"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "Onayla" msgstr "Onayla"
@@ -221,10 +227,19 @@ msgstr "Onayla"
msgid "Confirm password" msgid "Confirm password"
msgstr "Şifreyi onayla" msgstr "Şifreyi onayla"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "Rahat" msgstr "Rahat"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "Sayfa yüklendiğinde çalıştırılacak özel JS kodu"
msgid "Cyan" msgid "Cyan"
msgstr "" msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "" msgstr ""
@@ -283,14 +298,18 @@ msgstr "Açılış"
msgid "Detailed" msgid "Detailed"
msgstr "" msgstr ""
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr ""
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "Ekran" msgstr "Ekran"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "" msgstr ""
@@ -302,11 +321,13 @@ msgstr "İndir"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "Bağlantıyı yer işareti çubuğuna sürükleyin" msgstr "Bağlantıyı yer işareti çubuğuna sürükleyin"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "E-posta" msgstr "E-posta"
@@ -319,8 +340,8 @@ msgstr "E-posta adresi"
msgid "Edit user" msgid "Edit user"
msgstr "Kullanıcıyı düzenle" msgstr "Kullanıcıyı düzenle"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "Etkin" msgstr "Etkin"
@@ -356,8 +377,8 @@ msgstr "Genişletilmiş"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Aboneliklerinizi ve kategorilerinizi diğer besleme okuma hizmetlerinde içe aktarılabilen bir OPML dosyası olarak dışa aktarın" msgstr "Aboneliklerinizi ve kategorilerinizi diğer besleme okuma hizmetlerinde içe aktarılabilen bir OPML dosyası olarak dışa aktarın"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "Eklenti ayarları" msgstr "Eklenti ayarları"
@@ -365,9 +386,9 @@ msgstr "Eklenti ayarları"
msgid "Feed name" msgid "Feed name"
msgstr "Yayın adı" msgstr "Yayın adı"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "Feed URL'si" msgstr "Feed URL'si"
@@ -399,9 +420,9 @@ msgstr ""
msgid "Forgot password?" msgid "Forgot password?"
msgstr "Parolanızı mı unuttunuz?" msgstr "Parolanızı mı unuttunuz?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "Önce profilinizde bir API anahtarı oluşturun." msgstr "Önce profilinizde bir API anahtarı oluşturun."
@@ -409,9 +430,9 @@ msgstr "Önce profilinizde bir API anahtarı oluşturun."
msgid "Generate new API key" msgid "Generate new API key"
msgstr "Yeni API anahtarı oluştur" msgstr "Yeni API anahtarı oluştur"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "Oluşturulan besleme url'si" msgstr "Oluşturulan besleme url'si"
@@ -472,13 +493,21 @@ msgstr "Genişletilmiş görünümde, girişler arasında gezinmek onları okund
msgid "Indigo" msgid "Indigo"
msgstr "" msgstr ""
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "Okunmadan sakla" msgstr "Okunmadan sakla"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "Klavye kısayolları" msgstr "Klavye kısayolları"
@@ -506,9 +535,9 @@ msgstr ""
msgid "Lime" msgid "Lime"
msgstr "" msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "Bağlantı" msgstr "Bağlantı"
@@ -532,9 +561,9 @@ msgstr "Abonelikler yükleniyor..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "Etiketler yükleniyor..." msgstr "Etiketler yükleniyor..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "Giriş" msgstr "Giriş"
@@ -546,8 +575,8 @@ msgstr "Çıkış"
msgid "Long press" msgid "Long press"
msgstr "Uzun bas" msgstr "Uzun bas"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "Kullanıcıları yönet" msgstr "Kullanıcıları yönet"
@@ -555,18 +584,18 @@ msgstr "Kullanıcıları yönet"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "Tümünü okundu olarak işaretle" msgstr "Tümünü okundu olarak işaretle"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "Tüm girişleri okundu olarak işaretle" msgstr "Tüm girişleri okundu olarak işaretle"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "Okundu olarak işaretle" msgstr "Okundu olarak işaretle"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "Buraya kadar okundu olarak işaretle" msgstr "Buraya kadar okundu olarak işaretle"
@@ -586,15 +615,15 @@ msgstr "Sayfayı aşağı taşı"
msgid "Move the page up" msgid "Move the page up"
msgstr "Sayfayı yukarı taşı" msgstr "Sayfayı yukarı taşı"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "Yok" msgstr "Yok"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "İsim" msgstr "İsim"
@@ -615,12 +644,17 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "Yeni şifre" msgstr "Yeni şifre"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "Önce en yenisi" msgstr "Önce en yenisi"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "Sonraki" msgstr "Sonraki"
@@ -742,19 +776,25 @@ msgstr "Ebeveyn"
msgid "Parent Category" msgid "Parent Category"
msgstr "Üst Kategori" msgstr "Üst Kategori"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "Şifre" msgstr "Şifre"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr ""
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "Parola Kurtarma" msgstr "Parola Kurtarma"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Parolalar eşleşmiyor" msgstr "Parolalar eşleşmiyor"
@@ -762,8 +802,8 @@ msgstr "Parolalar eşleşmiyor"
msgid "Pink" msgid "Pink"
msgstr "" msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "Konum" msgstr "Konum"
@@ -787,8 +827,8 @@ msgstr "Şifreyi kurtar"
msgid "Red" msgid "Red"
msgstr "" msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "Yenile" msgstr "Yenile"
@@ -796,6 +836,11 @@ msgstr "Yenile"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "Bu CommaFeed örneğinde kayıtlar kapalı" msgstr "Bu CommaFeed örneğinde kayıtlar kapalı"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr ""
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST API" msgstr "REST API"
@@ -805,11 +850,11 @@ msgstr "REST API"
msgid "Right click" msgid "Right click"
msgstr "Sağ tık" msgstr "Sağ tık"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "Kaydet" msgstr "Kaydet"
@@ -825,17 +870,13 @@ msgstr "Girişler arasında gezinirken sorunsuz ilerleyin"
msgid "Scrolling" msgid "Scrolling"
msgstr "" msgstr ""
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "Ara" msgstr "Ara"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "Arama için en az 3 karakter gerekiyor"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "" msgstr ""
@@ -918,9 +959,9 @@ msgstr ""
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "" msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "Kaydolun" msgstr "Kaydolun"
@@ -933,21 +974,21 @@ msgstr "Az önce kötü bir şey oldu..."
msgid "Space" msgid "Space"
msgstr "Uzay" msgstr "Uzay"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "Yıldız" msgstr "Yıldız"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "Yıldızlı" msgstr "Yıldızlı"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "Abone ol" msgstr "Abone ol"
@@ -1000,6 +1041,10 @@ msgstr "Tema"
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" 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 ""
#: src/components/settings/DisplaySettings.tsx
msgid "This setting can cause scrolling issues on some browsers (e.g. Safari)"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "Geçerli girişin okuma durumunu değiştir" msgstr "Geçerli girişin okuma durumunu değiştir"
@@ -1024,8 +1069,8 @@ msgstr "Demo'yu deneyin!"
msgid "Unread" msgid "Unread"
msgstr "Okunmamış" msgstr "Okunmamış"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "Yıldızı kaldır" msgstr "Yıldızı kaldır"
@@ -1056,6 +1101,10 @@ msgstr "Uyarı"
msgid "Website" msgid "Website"
msgstr "Web sitesi" msgstr "Web sitesi"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr ""
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "" msgstr ""
@@ -1067,3 +1116,7 @@ msgstr "Henüz aboneliğiniz yok. Sayfanın üstündeki + işaretiyle feed ekley
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." msgid "Your feeds have been queued for refresh."
msgstr "Feed'leriniz yenileme için sıraya alındı." 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 ""

View File

@@ -33,8 +33,8 @@ msgstr "<0>您好,</0><1>我是来自比利时的Jérémie已经在业余时
msgid "<0>Need an account?</0><1>Sign up!</1>" msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>需要一个帐户?</0><1>注册!</1>" msgstr "<0>需要一个帐户?</0><1>注册!</1>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/AboutPage.tsx
msgid "About" msgid "About"
msgstr "关于" msgstr "关于"
@@ -54,17 +54,22 @@ msgstr "添加类别"
msgid "Add user" msgid "Add user"
msgstr "添加用户" msgstr "添加用户"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Admin" msgid "Admin"
msgstr "管理员" msgstr "管理员"
#: src/pages/app/FeedEntriesPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/auth/InitialSetupPage.tsx
#: src/components/sidebar/Tree.tsx msgid "Admin user name"
#: src/components/header/Header.tsx msgstr "管理员用户名"
#: src/components/content/add/CategorySelect.tsx #: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "All" msgid "All"
msgstr "全部" msgstr "全部"
@@ -130,6 +135,7 @@ msgid "Back"
msgstr "返回" msgstr "返回"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Back to log in" msgid "Back to log in"
msgstr "返回登录" msgstr "返回登录"
@@ -137,39 +143,39 @@ msgstr "返回登录"
msgid "Blue" msgid "Blue"
msgstr "蓝" msgstr "蓝"
#: src/components/KeyboardShortcutsHelp.tsx #: src/pages/app/AboutPage.tsx
msgid "Browser extension required for Chrome" msgid "Browser extension"
msgstr "浏览器扩展" msgstr "浏览器扩展"
#: src/pages/app/AboutPage.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extention" msgid "Browser extension required for Chrome"
msgstr "浏览器扩展" msgstr "浏览器扩展"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Browser tab" msgid "Browser tab"
msgstr "浏览器标签页" msgstr "浏览器标签页"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/admin/UserEdit.tsx #: 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/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" msgid "Cancel"
msgstr "取消" msgstr "取消"
#: src/pages/app/FeedDetailsPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/pages/app/AboutPage.tsx #: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/AboutPage.tsx
#: src/components/content/add/AddCategory.tsx #: src/pages/app/FeedDetailsPage.tsx
msgid "Category" msgid "Category"
msgstr "类别" msgstr "类别"
@@ -209,11 +215,11 @@ msgstr "CommaFeed版本{version} ({revision})"
msgid "Compact" msgid "Compact"
msgstr "紧凑" msgstr "紧凑"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx #: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx #: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Confirm" msgid "Confirm"
msgstr "确认" msgstr "确认"
@@ -221,10 +227,19 @@ msgstr "确认"
msgid "Confirm password" msgid "Confirm password"
msgstr "确认密码" msgstr "确认密码"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Confirm Password"
msgstr "确认密码"
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Cozy" msgid "Cozy"
msgstr "宽松" msgstr "宽松"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Create Admin Account"
msgstr "创建管理员帐号"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Ctrl" msgid "Ctrl"
msgstr "Ctrl" msgstr "Ctrl"
@@ -249,8 +264,8 @@ msgstr "将在页面加载时执行的自定义JS代码"
msgid "Cyan" msgid "Cyan"
msgstr "青" msgstr "青"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Dark" msgid "Dark"
msgstr "暗黑" msgstr "暗黑"
@@ -283,14 +298,18 @@ msgstr "降序"
msgid "Detailed" msgid "Detailed"
msgstr "详细" msgstr "详细"
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Disable \"Pull to refresh\" browser behavior"
msgstr "禁用浏览器的“下拉刷新”功能"
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/pages/app/SettingsPage.tsx
msgid "Display" msgid "Display"
msgstr "显示" msgstr "显示"
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
msgid "Donate" msgid "Donate"
msgstr "捐赠" msgstr "捐赠"
@@ -302,11 +321,13 @@ msgstr "下载"
msgid "Drag link to bookmark bar" msgid "Drag link to bookmark bar"
msgstr "拖动链接到书签栏" msgstr "拖动链接到书签栏"
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
msgid "E-mail" msgid "E-mail"
msgstr "电子邮件" msgstr "电子邮件"
@@ -319,8 +340,8 @@ msgstr "电子邮件地址"
msgid "Edit user" msgid "Edit user"
msgstr "编辑用户" msgstr "编辑用户"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Enabled" msgid "Enabled"
msgstr "已启用" msgstr "已启用"
@@ -356,8 +377,8 @@ msgstr "展开"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services" msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "将您的订阅和类别导出为 OPML 文件,可以在其它信息流阅读服务中导入" msgstr "将您的订阅和类别导出为 OPML 文件,可以在其它信息流阅读服务中导入"
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
msgid "Extension options" msgid "Extension options"
msgstr "扩展选项" msgstr "扩展选项"
@@ -365,9 +386,9 @@ msgstr "扩展选项"
msgid "Feed name" msgid "Feed name"
msgstr "信息流名称" msgstr "信息流名称"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx #: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL" msgid "Feed URL"
msgstr "信息流网址" msgstr "信息流网址"
@@ -399,9 +420,9 @@ msgstr "强制获取订阅源功能不可用。"
msgid "Forgot password?" msgid "Forgot password?"
msgstr "忘记密码?" msgstr "忘记密码?"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generate an API key in your profile first." msgid "Generate an API key in your profile first."
msgstr "首先在您的配置文件中生成一个 API 密钥。" msgstr "首先在您的配置文件中生成一个 API 密钥。"
@@ -409,9 +430,9 @@ msgstr "首先在您的配置文件中生成一个 API 密钥。"
msgid "Generate new API key" msgid "Generate new API key"
msgstr "生成新的 API 密钥" msgstr "生成新的 API 密钥"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Generated feed url" msgid "Generated feed url"
msgstr "生成信息流网址" msgstr "生成信息流网址"
@@ -472,13 +493,21 @@ msgstr "在展开视图中,滚动条目将它们标记为已读"
msgid "Indigo" msgid "Indigo"
msgstr "靛蓝" msgstr "靛蓝"
#: src/components/content/FeedEntryFooter.tsx #: 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/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Keep unread" msgid "Keep unread"
msgstr "保持未读状态" msgstr "保持未读状态"
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx #: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
msgid "Keyboard shortcuts" msgid "Keyboard shortcuts"
msgstr "键盘快捷键" msgstr "键盘快捷键"
@@ -506,9 +535,9 @@ msgstr "浅色"
msgid "Lime" msgid "Lime"
msgstr "浅黄" msgstr "浅黄"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
msgid "Link" msgid "Link"
msgstr "链接" msgstr "链接"
@@ -532,9 +561,9 @@ msgstr "正在加载订阅..."
msgid "Loading tags..." msgid "Loading tags..."
msgstr "正在加载标签..." msgstr "正在加载标签..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in" msgid "Log in"
msgstr "登录" msgstr "登录"
@@ -546,8 +575,8 @@ msgstr "注销"
msgid "Long press" msgid "Long press"
msgstr "长按" msgstr "长按"
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
msgid "Manage users" msgid "Manage users"
msgstr "管理用户" msgstr "管理用户"
@@ -555,18 +584,18 @@ msgstr "管理用户"
msgid "Mark all as read" msgid "Mark all as read"
msgstr "全部标记为已读" msgstr "全部标记为已读"
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Mark all entries as read" msgid "Mark all entries as read"
msgstr "将所有条目标记为已读" msgstr "将所有条目标记为已读"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read" msgid "Mark as read"
msgstr "标记为已读" msgstr "标记为已读"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
msgid "Mark as read up to here" msgid "Mark as read up to here"
msgstr "标记为已读到这里" msgstr "标记为已读到这里"
@@ -586,15 +615,15 @@ msgstr "下移页面"
msgid "Move the page up" msgid "Move the page up"
msgstr "上移页面" msgstr "上移页面"
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx #: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "N/A" msgid "N/A"
msgstr "不适用" msgstr "不适用"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Name" msgid "Name"
msgstr "​​名称" msgstr "​​名称"
@@ -615,12 +644,17 @@ msgstr "从不"
msgid "New password" msgid "New password"
msgstr "新密码" msgstr "新密码"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "New Password"
msgstr "新密码"
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "Newest first" msgid "Newest first"
msgstr "最新的优先" msgstr "最新的优先"
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx #: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
msgid "Next" msgid "Next"
msgstr "下一个" msgstr "下一个"
@@ -742,19 +776,25 @@ msgstr "父类别"
msgid "Parent Category" msgid "Parent Category"
msgstr "父类别" msgstr "父类别"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/InitialSetupPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password" msgid "Password"
msgstr "密码" msgstr "密码"
#: src/hooks/useValidationRules.ts
msgid "Password must be at least {minimumPasswordLength} characters"
msgstr "密码最少需要 {minimumPasswordLength} 个字符"
#: src/pages/auth/PasswordRecoveryPage.tsx #: src/pages/auth/PasswordRecoveryPage.tsx
msgid "Password Recovery" msgid "Password Recovery"
msgstr "密码恢复" msgstr "密码恢复"
#: src/components/settings/ProfileSettings.tsx #: src/hooks/useValidationRules.ts
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "密码不匹配" msgstr "密码不匹配"
@@ -762,8 +802,8 @@ msgstr "密码不匹配"
msgid "Pink" msgid "Pink"
msgstr "粉红" msgstr "粉红"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx #: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Position" msgid "Position"
msgstr "位置" msgstr "位置"
@@ -787,8 +827,8 @@ msgstr "找回密码"
msgid "Red" msgid "Red"
msgstr "红" msgstr "红"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Refresh" msgid "Refresh"
msgstr "刷新" msgstr "刷新"
@@ -796,6 +836,11 @@ msgstr "刷新"
msgid "Registrations are closed on this CommaFeed instance" msgid "Registrations are closed on this CommaFeed instance"
msgstr "此 CommaFeed 实例上的注册已关闭" msgstr "此 CommaFeed 实例上的注册已关闭"
#: src/pages/auth/PasswordResetPage.tsx
#: src/pages/auth/PasswordResetPage.tsx
msgid "Reset Password"
msgstr "重置密码"
#: src/pages/app/AboutPage.tsx #: src/pages/app/AboutPage.tsx
msgid "REST API" msgid "REST API"
msgstr "REST API" msgstr "REST API"
@@ -805,11 +850,11 @@ msgstr "REST API"
msgid "Right click" msgid "Right click"
msgstr "右键单击" msgstr "右键单击"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx #: src/components/admin/UserEdit.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
msgid "Save" msgid "Save"
msgstr "保存" msgstr "保存"
@@ -825,17 +870,13 @@ msgstr "在条目之间导航时平滑滚动"
msgid "Scrolling" msgid "Scrolling"
msgstr "滚动" msgstr "滚动"
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/header/Header.tsx #: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
msgid "Search" msgid "Search"
msgstr "搜索" msgstr "搜索"
#: src/components/header/Header.tsx
msgid "Search requires at least 3 characters"
msgstr "搜索至少需要 3 个字符"
#: src/components/KeyboardShortcutsHelp.tsx #: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category" msgid "Select next unread feed/category"
msgstr "选择下一个未读信息流/类别" msgstr "选择下一个未读信息流/类别"
@@ -918,9 +959,9 @@ msgstr "在标签页图标上显示未读数量"
msgid "Show unread count in tab title" msgid "Show unread count in tab title"
msgstr "在标签页标题中显示未读数量" msgstr "在标签页标题中显示未读数量"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx #: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up" msgid "Sign up"
msgstr "注册" msgstr "注册"
@@ -933,21 +974,21 @@ msgstr "刚刚发生了不好的事情……"
msgid "Space" msgid "Space"
msgstr "空格" msgstr "空格"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Star" msgid "Star"
msgstr "星标" msgstr "星标"
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx #: src/components/sidebar/Tree.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedEntriesPage.tsx
msgid "Starred" msgid "Starred"
msgstr "已加星标" msgstr "已加星标"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx #: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe" msgid "Subscribe"
msgstr "订阅" msgstr "订阅"
@@ -1000,6 +1041,10 @@ msgstr "主题"
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" 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密钥。" 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 #: src/components/KeyboardShortcutsHelp.tsx
msgid "Toggle read status of current entry" msgid "Toggle read status of current entry"
msgstr "切换当前条目的阅读状态" msgstr "切换当前条目的阅读状态"
@@ -1024,8 +1069,8 @@ msgstr "尝试 demo"
msgid "Unread" msgid "Unread"
msgstr "未读" msgstr "未读"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx #: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/header/Star.tsx #: src/components/content/header/Star.tsx
msgid "Unstar" msgid "Unstar"
msgstr "取消星标" msgstr "取消星标"
@@ -1056,6 +1101,10 @@ msgstr "警告"
msgid "Website" msgid "Website"
msgstr "网站" msgstr "网站"
#: src/pages/auth/InitialSetupPage.tsx
msgid "Welcome! This appears to be the first time you're running CommaFeed. Please create an administrator account to get started."
msgstr "欢迎当前页仅当您第一次使用CommaFeed时出现请创建一个管理员帐号以开始使用。"
#: src/components/settings/DisplaySettings.tsx #: src/components/settings/DisplaySettings.tsx
msgid "Yellow" msgid "Yellow"
msgstr "黄" msgstr "黄"
@@ -1067,3 +1116,7 @@ msgstr "您还没有任何订阅。"
#: src/components/header/ProfileMenu.tsx #: src/components/header/ProfileMenu.tsx
msgid "Your feeds have been queued for refresh." 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

@@ -35,10 +35,11 @@ export function MetricsPage() {
setLoading: state => ({ ...state, loading: true }), setLoading: state => ({ ...state, loading: true }),
}) })
const { execute } = query
useEffect(() => { useEffect(() => {
const interval = setInterval(() => query.execute(), 2000) const interval = setInterval(() => execute(), 2000)
return () => clearInterval(interval) return () => clearInterval(interval)
}, [query.execute]) }, [execute])
if (!query.result) return <Loader /> if (!query.result) return <Loader />
const { meters, gauges } = query.result.data const { meters, gauges } = query.result.data

View File

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

View File

@@ -50,7 +50,7 @@ function FilteringExpressionDescription() {
export function FeedDetailsPage() { export function FeedDetailsPage() {
const { id } = useParams() 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 apiKey = useAppSelector(state => state.user.profile?.apiKey)
const dispatch = useAppDispatch() const dispatch = useAppDispatch()

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

View File

@@ -1,6 +1,5 @@
import { lingui } from "@lingui/vite-plugin" import { lingui } from "@lingui/vite-plugin"
import react from "@vitejs/plugin-react" import react from "@vitejs/plugin-react"
import { visualizer } from "rollup-plugin-visualizer"
import { defineConfig } from "vite" import { defineConfig } from "vite"
import checker from "vite-plugin-checker" import checker from "vite-plugin-checker"
import tsconfigPaths from "vite-tsconfig-paths" import tsconfigPaths from "vite-tsconfig-paths"
@@ -21,7 +20,6 @@ export default defineConfig(() => ({
}), }),
lingui(), lingui(),
tsconfigPaths(), tsconfigPaths(),
visualizer(),
checker({ checker({
typescript: true, typescript: true,
biome: { biome: {

View File

@@ -6,14 +6,15 @@
<parent> <parent>
<groupId>com.commafeed</groupId> <groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId> <artifactId>commafeed</artifactId>
<version>5.11.0</version> <version>6.2.0</version>
</parent> </parent>
<artifactId>commafeed-server</artifactId> <artifactId>commafeed-server</artifactId>
<name>CommaFeed Server</name> <name>CommaFeed Server</name>
<packaging>quarkus</packaging>
<properties> <properties>
<quarkus.version>3.25.0</quarkus.version> <quarkus.version>3.31.2</quarkus.version>
<querydsl.version>7.0</querydsl.version> <querydsl.version>7.1</querydsl.version>
<rome.version>2.1.0</rome.version> <rome.version>2.1.0</rome.version>
<build.database>h2</build.database> <build.database>h2</build.database>
@@ -55,7 +56,7 @@
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId> <artifactId>properties-maven-plugin</artifactId>
<version>1.2.1</version> <version>1.3.0</version>
<executions> <executions>
<execution> <execution>
<goals> <goals>
@@ -77,24 +78,14 @@
<artifactId>quarkus-maven-plugin</artifactId> <artifactId>quarkus-maven-plugin</artifactId>
<version>${quarkus.version}</version> <version>${quarkus.version}</version>
<extensions>true</extensions> <extensions>true</extensions>
<executions> <configuration>
<execution> <properties>
<goals> <quarkus.package.output-name>commafeed-${project.version}</quarkus.package.output-name>
<goal>build</goal> <quarkus.package.runner-suffix>
<goal>generate-code</goal> -${build.database}-${os.detected.name}-${os.detected.arch}-runner
<goal>generate-code-tests</goal> </quarkus.package.runner-suffix>
<goal>native-image-agent</goal> </properties>
</goals> </configuration>
<configuration>
<properties>
<quarkus.package.output-name>commafeed-${project.version}</quarkus.package.output-name>
<quarkus.package.runner-suffix>
-${build.database}-${os.detected.name}-${os.detected.arch}-runner
</quarkus.package.runner-suffix>
</properties>
</configuration>
</execution>
</executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
@@ -117,7 +108,7 @@
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId> <artifactId>exec-maven-plugin</artifactId>
<version>3.5.1</version> <version>3.6.3</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
@@ -145,7 +136,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-assembly-plugin</artifactId>
<version>3.7.1</version> <version>3.8.0</version>
<executions> <executions>
<execution> <execution>
<phase>package</phase> <phase>package</phase>
@@ -165,8 +156,9 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<version>3.5.3</version> <version>3.5.4</version>
<configuration> <configuration>
<argLine>@{argLine}</argLine>
<systemPropertyVariables> <systemPropertyVariables>
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
<quarkus.datasource.db-kind>${build.database}</quarkus.datasource.db-kind> <quarkus.datasource.db-kind>${build.database}</quarkus.datasource.db-kind>
@@ -176,7 +168,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId> <artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.3</version> <version>3.5.4</version>
<executions> <executions>
<execution> <execution>
<goals> <goals>
@@ -186,6 +178,7 @@
</execution> </execution>
</executions> </executions>
<configuration> <configuration>
<argLine>@{argLine}</argLine>
<systemPropertyVariables> <systemPropertyVariables>
<native.image.path>${project.build.directory}/${project.build.finalName}-runner <native.image.path>${project.build.directory}/${project.build.finalName}-runner
</native.image.path> </native.image.path>
@@ -217,61 +210,6 @@
</dependency> </dependency>
</dependencies> </dependencies>
</plugin> </plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.13</version>
<configuration>
<!-- excluding SACParserCSS21TokenManager because it causes a "Method too large" exception -->
<excludes>
<exclude>com/steadystate/css/parser/SACParserCSS21TokenManager</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>unit-tests-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/jacoco-output/jacoco-unit-tests.exec</destFile>
</configuration>
</execution>
<execution>
<id>integration-tests-agent</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/jacoco-output/jacoco-integration-tests.exec</destFile>
</configuration>
</execution>
<execution>
<id>merge</id>
<phase>post-integration-test</phase>
<goals>
<goal>merge</goal>
</goals>
<configuration>
<fileSets>
<fileSet>
<directory>${project.build.directory}/jacoco-output</directory>
<includes>
<include>*.exec</include>
</includes>
</fileSet>
</fileSets>
</configuration>
</execution>
<execution>
<id>generate-code-coverage-report</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin> <plugin>
<groupId>io.github.git-commit-id</groupId> <groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId> <artifactId>git-commit-id-maven-plugin</artifactId>
@@ -299,7 +237,7 @@
<dependency> <dependency>
<groupId>com.puppycrawl.tools</groupId> <groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId> <artifactId>checkstyle</artifactId>
<version>10.26.1</version> <version>13.2.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
<executions> <executions>
@@ -328,7 +266,7 @@
<plugin> <plugin>
<groupId>com.diffplug.spotless</groupId> <groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId> <artifactId>spotless-maven-plugin</artifactId>
<version>2.46.1</version> <version>3.2.1</version>
<?m2e ignore?> <?m2e ignore?>
<executions> <executions>
<execution> <execution>
@@ -357,14 +295,14 @@
<dependency> <dependency>
<groupId>com.commafeed</groupId> <groupId>com.commafeed</groupId>
<artifactId>commafeed-client</artifactId> <artifactId>commafeed-client</artifactId>
<version>5.11.0</version> <version>6.2.0</version>
</dependency> </dependency>
<!-- compile-time processors --> <!-- compile-time processors -->
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.38</version> <version>1.18.42</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
@@ -425,7 +363,7 @@
<dependency> <dependency>
<groupId>io.dropwizard.metrics</groupId> <groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-json</artifactId> <artifactId>metrics-json</artifactId>
<version>4.2.33</version> <version>4.2.38</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.github.openfeign.querydsl</groupId> <groupId>io.github.openfeign.querydsl</groupId>
@@ -492,12 +430,12 @@
<dependency> <dependency>
<groupId>org.jsoup</groupId> <groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId> <artifactId>jsoup</artifactId>
<version>1.21.1</version> <version>1.22.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.ibm.icu</groupId> <groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId> <artifactId>icu4j</artifactId>
<version>77.1</version> <version>78.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.sourceforge.cssparser</groupId> <groupId>net.sourceforge.cssparser</groupId>
@@ -512,35 +450,29 @@
<dependency> <dependency>
<groupId>org.apache.httpcomponents.client5</groupId> <groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId> <artifactId>httpclient5</artifactId>
<version>5.5</version> <version>5.6</version>
</dependency>
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>ayza-for-apache5</artifactId>
<version>10.0.3</version>
</dependency> </dependency>
<!-- add brotli support for httpclient5 -->
<dependency> <dependency>
<groupId>org.brotli</groupId> <groupId>org.brotli</groupId>
<artifactId>dec</artifactId> <artifactId>dec</artifactId>
<version>0.1.2</version> <version>0.1.2</version>
</dependency> </dependency>
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>sslcontext-kickstart-for-apache5</artifactId>
<version>9.1.0</version>
</dependency>
<!-- test dependencies --> <!-- test dependencies -->
<dependency> <dependency>
<groupId>io.quarkus</groupId> <groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5-mockito</artifactId> <artifactId>quarkus-junit-mockito</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-jacoco</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.quarkiverse.playwright</groupId> <groupId>io.quarkiverse.playwright</groupId>
<artifactId>quarkus-playwright</artifactId> <artifactId>quarkus-playwright</artifactId>
<version>2.1.3</version> <version>2.3.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>

View File

@@ -1,4 +1,4 @@
FROM ibm-semeru-runtimes:open-21.0.8_9-jre@sha256:551139c6639d176c9591c2e2eee16b0092b97a31761c8a9202cf9fffc844d845 FROM ibm-semeru-runtimes:open-jdk-25.0.1_8-jre@sha256:e12d5f2461606d625e4d1e22dd0db89e4ae18f58a7f96332811554209ef9028a
EXPOSE 8082 EXPOSE 8082
RUN mkdir -p /commafeed/data RUN mkdir -p /commafeed/data

View File

@@ -1,4 +1,4 @@
FROM debian:12.11@sha256:b6507e340c43553136f5078284c8c68d86ec8262b1724dde73c325e8d3dcdeba FROM debian:13.3@sha256:2c91e484d93f0830a7e05a2b9d92a7b102be7cab562198b984a84fdbc7806d91
ARG TARGETARCH ARG TARGETARCH
EXPOSE 8082 EXPOSE 8082
@@ -6,7 +6,7 @@ EXPOSE 8082
RUN mkdir -p /commafeed/data RUN mkdir -p /commafeed/data
VOLUME /commafeed/data VOLUME /commafeed/data
COPY artifacts/commafeed-*-${TARGETARCH}-runner /commafeed/application COPY artifacts/commafeed-*-${TARGETARCH}-runner /commafeed/commafeed
WORKDIR /commafeed WORKDIR /commafeed
CMD ["./application"] CMD ["./commafeed"]

View File

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

View File

@@ -4,7 +4,6 @@ import jakarta.enterprise.event.Observes;
import jakarta.inject.Singleton; import jakarta.inject.Singleton;
import com.commafeed.backend.feed.FeedRefreshEngine; import com.commafeed.backend.feed.FeedRefreshEngine;
import com.commafeed.backend.service.db.DatabaseStartupService;
import com.commafeed.backend.task.TaskScheduler; import com.commafeed.backend.task.TaskScheduler;
import com.commafeed.security.password.PasswordConstraintValidator; import com.commafeed.security.password.PasswordConstraintValidator;
@@ -16,15 +15,12 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommaFeedApplication { public class CommaFeedApplication {
private final DatabaseStartupService databaseStartupService;
private final FeedRefreshEngine feedRefreshEngine; private final FeedRefreshEngine feedRefreshEngine;
private final TaskScheduler taskScheduler; private final TaskScheduler taskScheduler;
private final CommaFeedConfiguration config; private final CommaFeedConfiguration config;
public void start(@Observes StartupEvent ev) { public void start(@Observes StartupEvent ev) {
PasswordConstraintValidator.setStrict(config.users().strictPasswordPolicy()); PasswordConstraintValidator.setMinimumPasswordLength(config.users().minimumPasswordLength());
databaseStartupService.populateInitialData();
feedRefreshEngine.start(); feedRefreshEngine.start();
taskScheduler.start(); taskScheduler.start();

View File

@@ -312,6 +312,12 @@ public interface CommaFeedConfiguration {
@WithDefault("100") @WithDefault("100")
int batchSize(); int batchSize();
/**
* Whether to keep starred entries when cleaning up old entries.
*/
@WithDefault("true")
boolean keepStarredEntries();
default Instant statusesInstantThreshold() { default Instant statusesInstantThreshold() {
return statusesMaxAge().toMillis() > 0 ? Instant.now().minus(statusesMaxAge()) : null; return statusesMaxAge().toMillis() > 0 ? Instant.now().minus(statusesMaxAge()) : null;
} }
@@ -326,10 +332,16 @@ public interface CommaFeedConfiguration {
boolean allowRegistrations(); boolean allowRegistrations();
/** /**
* Whether to enable strict password validation (1 uppercase char, 1 lowercase char, 1 digit, 1 special char). * Minimum password length for user accounts.
*/ */
@WithDefault("true") @WithDefault("4")
boolean strictPasswordPolicy(); 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. * Whether to create a demo account the first time the app starts.

View File

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

View File

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

View File

@@ -9,10 +9,13 @@ import java.time.Duration;
import java.time.Instant; import java.time.Instant;
import java.time.InstantSource; import java.time.InstantSource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.SequencedMap;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.stream.Stream; import java.util.stream.Stream;
import java.util.zip.GZIPInputStream;
import jakarta.inject.Singleton; import jakarta.inject.Singleton;
import jakarta.ws.rs.core.CacheControl; import jakarta.ws.rs.core.CacheControl;
@@ -24,6 +27,9 @@ import org.apache.hc.client5.http.SystemDefaultDnsResolver;
import org.apache.hc.client5.http.config.ConnectionConfig; import org.apache.hc.client5.http.config.ConnectionConfig;
import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.config.TlsConfig; import org.apache.hc.client5.http.config.TlsConfig;
import org.apache.hc.client5.http.entity.DeflateInputStream;
import org.apache.hc.client5.http.entity.InputStreamFactory;
import org.apache.hc.client5.http.entity.compress.ContentCoding;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
@@ -41,6 +47,7 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder;
import org.apache.hc.core5.http.message.BasicHeader; import org.apache.hc.core5.http.message.BasicHeader;
import org.apache.hc.core5.util.TimeValue; import org.apache.hc.core5.util.TimeValue;
import org.apache.hc.core5.util.Timeout; import org.apache.hc.core5.util.Timeout;
import org.brotli.dec.BrotliInputStream;
import org.jboss.resteasy.reactive.common.headers.CacheControlDelegate; import org.jboss.resteasy.reactive.common.headers.CacheControlDelegate;
import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.MetricRegistry;
@@ -58,7 +65,6 @@ import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.Lombok; import lombok.Lombok;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Value;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import nl.altindag.ssl.SSLFactory; import nl.altindag.ssl.SSLFactory;
import nl.altindag.ssl.apache5.util.Apache5SslUtils; import nl.altindag.ssl.apache5.util.Apache5SslUtils;
@@ -127,9 +133,9 @@ public class HttpGetter {
} }
} }
int code = response.getCode(); int code = response.code();
if (code == HttpStatus.SC_TOO_MANY_REQUESTS || code == HttpStatus.SC_SERVICE_UNAVAILABLE && response.getRetryAfter() != null) { if (code == HttpStatus.SC_TOO_MANY_REQUESTS || code == HttpStatus.SC_SERVICE_UNAVAILABLE && response.retryAfter() != null) {
throw new TooManyRequestsException(response.getRetryAfter()); throw new TooManyRequestsException(response.retryAfter());
} }
if (code == HttpStatus.SC_NOT_MODIFIED) { if (code == HttpStatus.SC_NOT_MODIFIED) {
@@ -140,16 +146,16 @@ public class HttpGetter {
throw new HttpResponseException(code, "Server returned HTTP error code " + code); throw new HttpResponseException(code, "Server returned HTTP error code " + code);
} }
String lastModifiedHeader = response.getLastModifiedHeader(); String lastModifiedHeader = response.lastModifiedHeader();
String eTagHeader = response.getETagHeader(); String eTagHeader = response.eTagHeader();
Duration validFor = Optional.ofNullable(response.getCacheControl()) Duration validFor = Optional.ofNullable(response.cacheControl())
.filter(cc -> cc.getMaxAge() >= 0) .filter(cc -> cc.getMaxAge() >= 0)
.map(cc -> Duration.ofSeconds(cc.getMaxAge())) .map(cc -> Duration.ofSeconds(cc.getMaxAge()))
.orElse(Duration.ZERO); .orElse(Duration.ZERO);
return new HttpResult(response.getContent(), response.getContentType(), lastModifiedHeader, eTagHeader, return new HttpResult(response.content(), response.contentType(), lastModifiedHeader, eTagHeader, response.urlAfterRedirect(),
response.getUrlAfterRedirect(), validFor); validFor);
} }
private void ensureHttpScheme(String scheme) throws SchemeNotAllowedException { private void ensureHttpScheme(String scheme) throws SchemeNotAllowedException {
@@ -254,8 +260,8 @@ public class HttpGetter {
return null; return null;
} }
byte[] bytes = ByteStreams.limit(input, maxBytes).readAllBytes(); byte[] bytes = ByteStreams.limit(input, maxBytes + 1).readAllBytes();
if (bytes.length == maxBytes) { if (bytes.length > maxBytes) {
throw new IOException("Response size exceeds the maximum allowed size (%s bytes)".formatted(maxBytes)); throw new IOException("Response size exceeds the maximum allowed size (%s bytes)".formatted(maxBytes));
} }
return bytes; return bytes;
@@ -288,6 +294,11 @@ public class HttpGetter {
headers.add(new BasicHeader(HttpHeaders.PRAGMA, "No-cache")); headers.add(new BasicHeader(HttpHeaders.PRAGMA, "No-cache"));
headers.add(new BasicHeader(HttpHeaders.CACHE_CONTROL, "no-cache")); headers.add(new BasicHeader(HttpHeaders.CACHE_CONTROL, "no-cache"));
SequencedMap<String, InputStreamFactory> contentDecoderMap = new LinkedHashMap<>();
contentDecoderMap.put(ContentCoding.GZIP.token(), GZIPInputStream::new);
contentDecoderMap.put(ContentCoding.DEFLATE.token(), DeflateInputStream::new);
contentDecoderMap.put(ContentCoding.BROTLI.token(), BrotliInputStream::new);
return HttpClientBuilder.create() return HttpClientBuilder.create()
.useSystemProperties() .useSystemProperties()
.disableAutomaticRetries() .disableAutomaticRetries()
@@ -297,6 +308,7 @@ public class HttpGetter {
.setConnectionManager(connectionManager) .setConnectionManager(connectionManager)
.evictExpiredConnections() .evictExpiredConnections()
.evictIdleConnections(TimeValue.of(idleConnectionsEvictionInterval)) .evictIdleConnections(TimeValue.of(idleConnectionsEvictionInterval))
.setContentDecoderRegistry(new LinkedHashMap<>(contentDecoderMap))
.build(); .build();
} }
@@ -307,7 +319,7 @@ public class HttpGetter {
} }
return CacheBuilder.newBuilder() return CacheBuilder.newBuilder()
.weigher((HttpRequest key, HttpResponse value) -> value.getContent() != null ? value.getContent().length : 0) .weigher((HttpRequest key, HttpResponse value) -> value.content() != null ? value.content().length : 0)
.maximumWeight(cacheConfig.maximumMemorySize().asLongValue()) .maximumWeight(cacheConfig.maximumMemorySize().asLongValue())
.expireAfterWrite(cacheConfig.expiration()) .expireAfterWrite(cacheConfig.expiration())
.build(); .build();
@@ -398,26 +410,12 @@ public class HttpGetter {
} }
} }
@Value private record HttpResponse(int code, String lastModifiedHeader, String eTagHeader, CacheControl cacheControl, Instant retryAfter,
private static class HttpResponse { byte[] content, String contentType, String urlAfterRedirect) {
int code;
String lastModifiedHeader;
String eTagHeader;
CacheControl cacheControl;
Instant retryAfter;
byte[] content;
String contentType;
String urlAfterRedirect;
} }
@Value public record HttpResult(byte[] content, String contentType, String lastModifiedSince, String eTag, String urlAfterRedirect,
public static class HttpResult { Duration validFor) {
byte[] content;
String contentType;
String lastModifiedSince;
String eTag;
String urlAfterRedirect;
Duration validFor;
} }
} }

View File

@@ -8,8 +8,10 @@ import org.netpreserve.urlcanon.Canonicalizer;
import org.netpreserve.urlcanon.ParsedUrl; import org.netpreserve.urlcanon.ParsedUrl;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;
@UtilityClass @UtilityClass
@Slf4j
public class Urls { public class Urls {
private static final String ESCAPED_QUESTION_MARK = Pattern.quote("?"); private static final String ESCAPED_QUESTION_MARK = Pattern.quote("?");
@@ -42,7 +44,12 @@ public class Urls {
return null; return null;
} }
return URI.create(baseUrl).resolve(relativeUrl).toString(); try {
return URI.create(baseUrl).resolve(relativeUrl).toString();
} catch (IllegalArgumentException e) {
log.debug("Unable to create absolute url from relative url: {} base: {}", relativeUrl, baseUrl, e);
return null;
}
} }
public static String removeTrailingSlash(String url) { public static String removeTrailingSlash(String url) {

View File

@@ -11,9 +11,7 @@ import com.commafeed.backend.model.FeedEntry;
import com.commafeed.backend.model.QFeedEntry; import com.commafeed.backend.model.QFeedEntry;
import com.querydsl.core.Tuple; import com.querydsl.core.Tuple;
import com.querydsl.core.types.dsl.NumberExpression; import com.querydsl.core.types.dsl.NumberExpression;
import com.querydsl.jpa.impl.JPAQuery;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Singleton @Singleton
public class FeedEntryDAO extends GenericDAO<FeedEntry> { public class FeedEntryDAO extends GenericDAO<FeedEntry> {
@@ -28,15 +26,21 @@ public class FeedEntryDAO extends GenericDAO<FeedEntry> {
return query().select(ENTRY).from(ENTRY).where(ENTRY.guidHash.eq(guidHash), ENTRY.feed.eq(feed)).limit(1).fetchOne(); return query().select(ENTRY).from(ENTRY).where(ENTRY.guidHash.eq(guidHash), ENTRY.feed.eq(feed)).limit(1).fetchOne();
} }
public List<FeedCapacity> findFeedsExceedingCapacity(long maxCapacity, long max) { public List<FeedCapacity> findFeedsExceedingCapacity(long maxCapacity, long max, boolean keepStarredEntries) {
NumberExpression<Long> count = ENTRY.id.count(); NumberExpression<Long> count = ENTRY.id.count();
List<Tuple> tuples = query().select(ENTRY.feed.id, count) JPAQuery<Tuple> query = query().select(ENTRY.feed.id, count).from(ENTRY);
.from(ENTRY)
.groupBy(ENTRY.feed) if (keepStarredEntries) {
query.where(Predicates.isNotStarred(ENTRY));
}
return query.groupBy(ENTRY.feed)
.having(count.gt(maxCapacity)) .having(count.gt(maxCapacity))
.limit(max) .limit(max)
.fetch(); .fetch()
return tuples.stream().map(t -> new FeedCapacity(t.get(ENTRY.feed.id), t.get(count))).toList(); .stream()
.map(t -> new FeedCapacity(t.get(ENTRY.feed.id), t.get(count)))
.toList();
} }
public int delete(Long feedId, long max) { public int delete(Long feedId, long max) {
@@ -47,27 +51,32 @@ public class FeedEntryDAO extends GenericDAO<FeedEntry> {
/** /**
* Delete entries older than a certain date * Delete entries older than a certain date
*/ */
public int deleteEntriesOlderThan(Instant olderThan, long max) { public int deleteEntriesOlderThan(Instant olderThan, long max, boolean keepStarredEntries) {
List<FeedEntry> list = query().selectFrom(ENTRY) JPAQuery<FeedEntry> query = query().selectFrom(ENTRY)
.where(ENTRY.published.lt(olderThan)) .where(ENTRY.published.lt(olderThan))
.orderBy(ENTRY.published.asc()) .orderBy(ENTRY.published.asc())
.limit(max) .limit(max);
.fetch();
return delete(list); if (keepStarredEntries) {
query.where(Predicates.isNotStarred(ENTRY));
}
return delete(query.fetch());
} }
/** /**
* Delete the oldest entries of a feed * Delete the oldest entries of a feed
*/ */
public int deleteOldEntries(Long feedId, long max) { public int deleteOldEntries(Long feedId, long max, boolean keepStarredEntries) {
List<FeedEntry> list = query().selectFrom(ENTRY).where(ENTRY.feed.id.eq(feedId)).orderBy(ENTRY.published.asc()).limit(max).fetch(); JPAQuery<FeedEntry> query = query().selectFrom(ENTRY).where(ENTRY.feed.id.eq(feedId)).orderBy(ENTRY.published.asc()).limit(max);
return delete(list);
if (keepStarredEntries) {
query.where(Predicates.isNotStarred(ENTRY));
}
return delete(query.fetch());
} }
@AllArgsConstructor public record FeedCapacity(Long id, Long capacity) {
@Getter
public static class FeedCapacity {
private Long id;
private Long capacity;
} }
} }

View File

@@ -129,9 +129,9 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
if (CollectionUtils.isNotEmpty(keywords)) { if (CollectionUtils.isNotEmpty(keywords)) {
for (FeedEntryKeyword keyword : keywords) { for (FeedEntryKeyword keyword : keywords) {
BooleanBuilder or = new BooleanBuilder(); BooleanBuilder or = new BooleanBuilder();
or.or(CONTENT.content.containsIgnoreCase(keyword.getKeyword())); or.or(CONTENT.content.containsIgnoreCase(keyword.keyword()));
or.or(CONTENT.title.containsIgnoreCase(keyword.getKeyword())); or.or(CONTENT.title.containsIgnoreCase(keyword.keyword()));
if (keyword.getMode() == Mode.EXCLUDE) { if (keyword.mode() == Mode.EXCLUDE) {
or.not(); or.not();
} }
query.where(or); query.where(or);

View File

@@ -0,0 +1,18 @@
package com.commafeed.backend.dao;
import com.commafeed.backend.model.QFeedEntry;
import com.commafeed.backend.model.QFeedEntryStatus;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.jpa.JPAExpressions;
import lombok.experimental.UtilityClass;
@UtilityClass
public class Predicates {
private static final QFeedEntryStatus STATUS = QFeedEntryStatus.feedEntryStatus;
public static BooleanExpression isNotStarred(QFeedEntry entry) {
return JPAExpressions.selectOne().from(STATUS).where(STATUS.entry.eq(entry).and(STATUS.starred.isTrue())).notExists();
}
}

View File

@@ -32,4 +32,8 @@ public class UserRoleDAO extends GenericDAO<UserRole> {
public Set<Role> findRoles(User user) { public Set<Role> findRoles(User user) {
return findAll(user).stream().map(UserRole::getRole).collect(Collectors.toSet()); return findAll(user).stream().map(UserRole::getRole).collect(Collectors.toSet());
} }
public long countAdmins() {
return query().select(ROLE.count()).from(ROLE).where(ROLE.role.eq(Role.ADMIN)).fetchOne();
}
} }

View File

@@ -71,11 +71,10 @@ public class DefaultFaviconFetcher extends AbstractFaviconFetcher {
url = Urls.removeTrailingSlash(url) + "/favicon.ico"; url = Urls.removeTrailingSlash(url) + "/favicon.ico";
log.debug("getting root icon at {}", url); log.debug("getting root icon at {}", url);
HttpResult result = getter.get(url); HttpResult result = getter.get(url);
bytes = result.getContent(); bytes = result.content();
contentType = result.getContentType(); contentType = result.contentType();
} catch (Exception e) { } catch (Exception e) {
log.debug("Failed to retrieve iconAtRoot for url {}: ", url); log.debug("Failed to retrieve iconAtRoot for url {}: ", url, e);
log.trace("Failed to retrieve iconAtRoot for url {}: ", url, e);
} }
if (!isValidIconResponse(bytes, contentType)) { if (!isValidIconResponse(bytes, contentType)) {
@@ -89,10 +88,9 @@ public class DefaultFaviconFetcher extends AbstractFaviconFetcher {
Document doc; Document doc;
try { try {
HttpResult result = getter.get(url); HttpResult result = getter.get(url);
doc = Jsoup.parse(new String(result.getContent()), url); doc = Jsoup.parse(new String(result.content()), url);
} catch (Exception e) { } catch (Exception e) {
log.debug("Failed to retrieve page to find icon"); log.debug("Failed to retrieve page to find icon", e);
log.trace("Failed to retrieve page to find icon", e);
return null; return null;
} }
@@ -103,7 +101,7 @@ public class DefaultFaviconFetcher extends AbstractFaviconFetcher {
return null; return null;
} }
String href = icons.get(0).attr("abs:href"); String href = icons.getFirst().attr("abs:href");
if (StringUtils.isBlank(href)) { if (StringUtils.isBlank(href)) {
log.debug("No icon found in page"); log.debug("No icon found in page");
return null; return null;
@@ -115,11 +113,10 @@ public class DefaultFaviconFetcher extends AbstractFaviconFetcher {
String contentType; String contentType;
try { try {
HttpResult result = getter.get(href); HttpResult result = getter.get(href);
bytes = result.getContent(); bytes = result.content();
contentType = result.getContentType(); contentType = result.contentType();
} catch (Exception e) { } catch (Exception e) {
log.debug("Failed to retrieve icon found in page {}", href); log.debug("Failed to retrieve icon found in page {}", href, e);
log.trace("Failed to retrieve icon found in page {}", href, e);
return null; return null;
} }

View File

@@ -45,8 +45,8 @@ public class FacebookFaviconFetcher extends AbstractFaviconFetcher {
log.debug("Getting Facebook user's icon, {}", url); log.debug("Getting Facebook user's icon, {}", url);
HttpResult iconResult = getter.get(iconUrl); HttpResult iconResult = getter.get(iconUrl);
bytes = iconResult.getContent(); bytes = iconResult.content();
contentType = iconResult.getContentType(); contentType = iconResult.contentType();
} catch (Exception e) { } catch (Exception e) {
log.debug("Failed to retrieve Facebook icon", e); log.debug("Failed to retrieve Facebook icon", e);
} }

View File

@@ -2,20 +2,13 @@ package com.commafeed.backend.favicon;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@RequiredArgsConstructor
@Getter
@Slf4j @Slf4j
public class Favicon { public record Favicon(byte[] icon, MediaType mediaType) {
private static final MediaType DEFAULT_MEDIA_TYPE = MediaType.valueOf("image/x-icon"); private static final MediaType DEFAULT_MEDIA_TYPE = MediaType.valueOf("image/x-icon");
private final byte[] icon;
private final MediaType mediaType;
public Favicon(byte[] icon, String contentType) { public Favicon(byte[] icon, String contentType) {
this(icon, parseMediaType(contentType)); this(icon, parseMediaType(contentType));
} }
@@ -24,7 +17,7 @@ public class Favicon {
try { try {
return MediaType.valueOf(contentType); return MediaType.valueOf(contentType);
} catch (Exception e) { } catch (Exception e) {
log.debug("invalid content type '{}' received, returning default value", contentType); log.debug("invalid content type '{}' received, returning default value", contentType, e);
return DEFAULT_MEDIA_TYPE; return DEFAULT_MEDIA_TYPE;
} }
} }

View File

@@ -85,8 +85,8 @@ public class YoutubeFaviconFetcher extends AbstractFaviconFetcher {
} }
HttpResult iconResult = getter.get(thumbnailUrl.asText()); HttpResult iconResult = getter.get(thumbnailUrl.asText());
bytes = iconResult.getContent(); bytes = iconResult.content();
contentType = iconResult.getContentType(); contentType = iconResult.contentType();
} catch (Exception e) { } catch (Exception e) {
log.debug("Failed to retrieve YouTube icon", e); log.debug("Failed to retrieve YouTube icon", e);
} }
@@ -104,7 +104,7 @@ public class YoutubeFaviconFetcher extends AbstractFaviconFetcher {
.queryParam("key", googleAuthKey) .queryParam("key", googleAuthKey)
.queryParam("forUsername", userId) .queryParam("forUsername", userId)
.build(); .build();
return getter.get(uri.toString()).getContent(); return getter.get(uri.toString()).content();
} }
private byte[] fetchForChannel(String googleAuthKey, String channelId) private byte[] fetchForChannel(String googleAuthKey, String channelId)
@@ -114,7 +114,7 @@ public class YoutubeFaviconFetcher extends AbstractFaviconFetcher {
.queryParam("key", googleAuthKey) .queryParam("key", googleAuthKey)
.queryParam("id", channelId) .queryParam("id", channelId)
.build(); .build();
return getter.get(uri.toString()).getContent(); return getter.get(uri.toString()).content();
} }
private byte[] fetchForPlaylist(String googleAuthKey, String playlistId) private byte[] fetchForPlaylist(String googleAuthKey, String playlistId)
@@ -124,7 +124,7 @@ public class YoutubeFaviconFetcher extends AbstractFaviconFetcher {
.queryParam("key", googleAuthKey) .queryParam("key", googleAuthKey)
.queryParam("id", playlistId) .queryParam("id", playlistId)
.build(); .build();
byte[] playlistBytes = getter.get(uri.toString()).getContent(); byte[] playlistBytes = getter.get(uri.toString()).content();
JsonNode channelId = objectMapper.readTree(playlistBytes).at(PLAYLIST_CHANNEL_ID); JsonNode channelId = objectMapper.readTree(playlistBytes).at(PLAYLIST_CHANNEL_ID);
if (channelId.isMissingNode()) { if (channelId.isMissingNode()) {

View File

@@ -5,23 +5,15 @@ import java.util.List;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/** /**
* A keyword used in a search query * A keyword used in a search query
*/ */
@Getter public record FeedEntryKeyword(String keyword, Mode mode) {
@RequiredArgsConstructor
public class FeedEntryKeyword {
public enum Mode { public enum Mode {
INCLUDE, EXCLUDE INCLUDE, EXCLUDE
} }
private final String keyword;
private final Mode mode;
public static List<FeedEntryKeyword> fromQueryString(String keywords) { public static List<FeedEntryKeyword> fromQueryString(String keywords) {
List<FeedEntryKeyword> list = new ArrayList<>(); List<FeedEntryKeyword> list = new ArrayList<>();
if (keywords != null) { if (keywords != null) {

View File

@@ -50,20 +50,20 @@ public class FeedFetcher {
log.debug("Fetching feed {}", feedUrl); log.debug("Fetching feed {}", feedUrl);
HttpResult result = getter.get(HttpRequest.builder(feedUrl).lastModified(lastModified).eTag(eTag).build()); HttpResult result = getter.get(HttpRequest.builder(feedUrl).lastModified(lastModified).eTag(eTag).build());
byte[] content = result.getContent(); byte[] content = result.content();
FeedParserResult parserResult; FeedParserResult parserResult;
try { try {
parserResult = parser.parse(result.getUrlAfterRedirect(), content); parserResult = parser.parse(result.urlAfterRedirect(), content);
} catch (FeedParsingException e) { } catch (FeedParsingException e) {
if (extractFeedUrlFromHtml) { if (extractFeedUrlFromHtml) {
String extractedUrl = extractFeedUrl(urlProviders, feedUrl, new String(result.getContent(), StandardCharsets.UTF_8)); String extractedUrl = extractFeedUrl(urlProviders, feedUrl, new String(result.content(), StandardCharsets.UTF_8));
if (StringUtils.isNotBlank(extractedUrl)) { if (StringUtils.isNotBlank(extractedUrl)) {
feedUrl = extractedUrl; feedUrl = extractedUrl;
result = getter.get(HttpRequest.builder(extractedUrl).lastModified(lastModified).eTag(eTag).build()); result = getter.get(HttpRequest.builder(extractedUrl).lastModified(lastModified).eTag(eTag).build());
content = result.getContent(); content = result.content();
parserResult = parser.parse(result.getUrlAfterRedirect(), content); parserResult = parser.parse(result.urlAfterRedirect(), content);
} else { } else {
throw new NoFeedFoundException(e); throw new NoFeedFoundException(e);
} }
@@ -76,26 +76,24 @@ public class FeedFetcher {
throw new IOException("Feed content is empty."); throw new IOException("Feed content is empty.");
} }
boolean lastModifiedHeaderValueChanged = !Strings.CS.equals(lastModified, result.getLastModifiedSince()); boolean lastModifiedHeaderValueChanged = !Strings.CS.equals(lastModified, result.lastModifiedSince());
boolean etagHeaderValueChanged = !Strings.CS.equals(eTag, result.getETag()); boolean etagHeaderValueChanged = !Strings.CS.equals(eTag, result.eTag());
String hash = Digests.sha1Hex(content); String hash = Digests.sha1Hex(content);
if (lastContentHash != null && lastContentHash.equals(hash)) { if (lastContentHash != null && lastContentHash.equals(hash)) {
log.debug("content hash not modified: {}", feedUrl); log.debug("content hash not modified: {}", feedUrl);
throw new NotModifiedException("content hash not modified", throw new NotModifiedException("content hash not modified", lastModifiedHeaderValueChanged ? result.lastModifiedSince() : null,
lastModifiedHeaderValueChanged ? result.getLastModifiedSince() : null, etagHeaderValueChanged ? result.eTag() : null);
etagHeaderValueChanged ? result.getETag() : null);
} }
if (lastPublishedDate != null && lastPublishedDate.equals(parserResult.lastPublishedDate())) { if (lastPublishedDate != null && lastPublishedDate.equals(parserResult.lastPublishedDate())) {
log.debug("publishedDate not modified: {}", feedUrl); log.debug("publishedDate not modified: {}", feedUrl);
throw new NotModifiedException("publishedDate not modified", throw new NotModifiedException("publishedDate not modified", lastModifiedHeaderValueChanged ? result.lastModifiedSince() : null,
lastModifiedHeaderValueChanged ? result.getLastModifiedSince() : null, etagHeaderValueChanged ? result.eTag() : null);
etagHeaderValueChanged ? result.getETag() : null);
} }
return new FeedFetcherResult(parserResult, result.getUrlAfterRedirect(), result.getLastModifiedSince(), result.getETag(), hash, return new FeedFetcherResult(parserResult, result.urlAfterRedirect(), result.lastModifiedSince(), result.eTag(), hash,
result.getValidFor()); result.validFor());
} }
private static String extractFeedUrl(List<FeedURLProvider> urlProviders, String url, String urlContent) { private static String extractFeedUrl(List<FeedURLProvider> urlProviders, String url, String urlContent) {

View File

@@ -164,9 +164,11 @@ public class FeedRefreshEngine {
Instant lastLoginThreshold = config.feedRefresh().userInactivityPeriod().isZero() ? null Instant lastLoginThreshold = config.feedRefresh().userInactivityPeriod().isZero() ? null
: Instant.now().minus(config.feedRefresh().userInactivityPeriod()); : Instant.now().minus(config.feedRefresh().userInactivityPeriod());
List<Feed> feeds = feedDAO.findNextUpdatable(max, lastLoginThreshold); List<Feed> feeds = feedDAO.findNextUpdatable(max, lastLoginThreshold);
// update disabledUntil to prevent feeds from being returned again by feedDAO.findNextUpdatable() if (!feeds.isEmpty()) {
Instant nextUpdateDate = Instant.now().plus(config.feedRefresh().interval()); // update disabledUntil to prevent feeds from being returned again by feedDAO.findNextUpdatable()
feedDAO.setDisabledUntil(feeds.stream().map(AbstractModel::getId).toList(), nextUpdateDate); Instant nextUpdateDate = Instant.now().plus(config.feedRefresh().interval());
feedDAO.setDisabledUntil(feeds.stream().map(AbstractModel::getId).toList(), nextUpdateDate);
}
return feeds; return feeds;
}); });
} }

View File

@@ -31,7 +31,6 @@ import com.commafeed.frontend.ws.WebSocketMessageBuilder;
import com.commafeed.frontend.ws.WebSocketSessions; import com.commafeed.frontend.ws.WebSocketSessions;
import com.google.common.util.concurrent.Striped; import com.google.common.util.concurrent.Striped;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/** /**
@@ -171,11 +170,7 @@ public class FeedRefreshUpdater {
WebSocketMessageBuilder.newFeedEntries(sub, unreadCount))); WebSocketMessageBuilder.newFeedEntries(sub, unreadCount)));
} }
@AllArgsConstructor private record AddEntryResult(boolean processed, boolean inserted, Set<FeedSubscription> subscriptionsForWhichEntryIsUnread) {
private static class AddEntryResult {
private final boolean processed;
private final boolean inserted;
private final Set<FeedSubscription> subscriptionsForWhichEntryIsUnread;
} }
} }

View File

@@ -11,7 +11,7 @@ import com.ibm.icu.text.CharsetDetector;
import com.ibm.icu.text.CharsetMatch; import com.ibm.icu.text.CharsetMatch;
@Singleton @Singleton
class EncodingDetector { public class EncodingDetector {
/** /**
* Detect feed encoding by using the declared encoding in the xml processing instruction and by detecting the characters used in the * Detect feed encoding by using the declared encoding in the xml processing instruction and by detecting the characters used in the

View File

@@ -8,41 +8,47 @@ import jakarta.inject.Singleton;
import org.ahocorasick.trie.Emit; import org.ahocorasick.trie.Emit;
import org.ahocorasick.trie.Trie; import org.ahocorasick.trie.Trie;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jdom2.Verifier;
@Singleton @Singleton
class FeedCleaner { public class FeedCleaner {
private static final Pattern DOCTYPE_PATTERN = Pattern.compile("<!DOCTYPE[^>]*>", Pattern.CASE_INSENSITIVE); private static final Pattern DOCTYPE_PATTERN = Pattern.compile("<!DOCTYPE[^>]*>", Pattern.CASE_INSENSITIVE);
public String trimInvalidXmlCharacters(String xml) { public String clean(String xml) {
xml = removeCharactersBeforeFirstXmlTag(xml);
xml = removeInvalidXmlCharacters(xml);
xml = replaceHtmlEntitiesWithNumericEntities(xml);
xml = removeDoctypeDeclarations(xml);
return xml;
}
String removeCharactersBeforeFirstXmlTag(String xml) {
if (StringUtils.isBlank(xml)) { if (StringUtils.isBlank(xml)) {
return null; return null;
} }
StringBuilder sb = new StringBuilder();
boolean firstTagFound = false; int pos = xml.indexOf('<');
for (int i = 0; i < xml.length(); i++) { return pos < 0 ? null : xml.substring(pos);
char c = xml.charAt(i); }
if (!firstTagFound) { String removeInvalidXmlCharacters(String xml) {
if (c == '<') { if (StringUtils.isBlank(xml)) {
firstTagFound = true; return null;
} else {
continue;
}
}
if (c >= 32 || c == 9 || c == 10 || c == 13) {
if (!Character.isHighSurrogate(c) && !Character.isLowSurrogate(c)) {
sb.append(c);
}
}
} }
return sb.toString();
return xml.codePoints()
.filter(Verifier::isXMLCharacter)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
} }
// https://stackoverflow.com/a/40836618 // https://stackoverflow.com/a/40836618
public String replaceHtmlEntitiesWithNumericEntities(String source) { String replaceHtmlEntitiesWithNumericEntities(String source) {
if (StringUtils.isBlank(source)) {
return null;
}
// Create a buffer sufficiently large that re-allocations are minimized. // Create a buffer sufficiently large that re-allocations are minimized.
StringBuilder sb = new StringBuilder(source.length() << 1); StringBuilder sb = new StringBuilder(source.length() << 1);
@@ -63,7 +69,11 @@ class FeedCleaner {
return sb.toString(); return sb.toString();
} }
public String removeDoctypeDeclarations(String xml) { String removeDoctypeDeclarations(String xml) {
if (StringUtils.isBlank(xml)) {
return null;
}
return DOCTYPE_PATTERN.matcher(xml).replaceAll(""); return DOCTYPE_PATTERN.matcher(xml).replaceAll("");
} }

View File

@@ -14,6 +14,7 @@ import jakarta.inject.Singleton;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.SystemProperties;
import org.apache.commons.math3.stat.descriptive.SummaryStatistics; import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
import org.jdom2.Element; import org.jdom2.Element;
import org.jdom2.Namespace; import org.jdom2.Namespace;
@@ -38,12 +39,9 @@ import com.rometools.rome.feed.synd.SyndLink;
import com.rometools.rome.feed.synd.SyndLinkImpl; import com.rometools.rome.feed.synd.SyndLinkImpl;
import com.rometools.rome.io.SyndFeedInput; import com.rometools.rome.io.SyndFeedInput;
import lombok.RequiredArgsConstructor;
/** /**
* Parses raw xml into a FeedParserResult object * Parses raw xml into a FeedParserResult object
*/ */
@RequiredArgsConstructor
@Singleton @Singleton
public class FeedParser { public class FeedParser {
@@ -55,15 +53,25 @@ public class FeedParser {
private final EncodingDetector encodingDetector; private final EncodingDetector encodingDetector;
private final FeedCleaner feedCleaner; private final FeedCleaner feedCleaner;
public FeedParser(EncodingDetector encodingDetector, FeedCleaner feedCleaner) {
this.encodingDetector = encodingDetector;
this.feedCleaner = feedCleaner;
// disable entity expansion limits added in JDK24+ (#1961)
// we already strip doctype declarations in FeedCleaner to prevent xxe attacks
// we also already limit the size of feeds we download in HttpGetter
System.setProperty(SystemProperties.JDK_XML_MAX_GENERAL_ENTITY_SIZE_LIMIT, "0");
System.setProperty(SystemProperties.JDK_XML_TOTAL_ENTITY_SIZE_LIMIT, "0");
}
public FeedParserResult parse(String feedUrl, byte[] xml) throws FeedParsingException { public FeedParserResult parse(String feedUrl, byte[] xml) throws FeedParsingException {
try { try {
Charset encoding = encodingDetector.getEncoding(xml); Charset encoding = encodingDetector.getEncoding(xml);
String xmlString = feedCleaner.trimInvalidXmlCharacters(new String(xml, encoding));
String xmlString = feedCleaner.clean(new String(xml, encoding));
if (xmlString == null) { if (xmlString == null) {
throw new FeedParsingException("Input string is null for url " + feedUrl); throw new FeedParsingException("Input string is empty for url " + feedUrl);
} }
xmlString = feedCleaner.replaceHtmlEntitiesWithNumericEntities(xmlString);
xmlString = feedCleaner.removeDoctypeDeclarations(xmlString);
InputSource source = new InputSource(new StringReader(xmlString)); InputSource source = new InputSource(new StringReader(xmlString));
SyndFeed feed = new SyndFeedInput().build(source); SyndFeed feed = new SyndFeedInput().build(source);

View File

@@ -131,6 +131,7 @@ public class UserSettings extends AbstractModel {
private boolean mobileFooter; private boolean mobileFooter;
private boolean unreadCountTitle; private boolean unreadCountTitle;
private boolean unreadCountFavicon; private boolean unreadCountFavicon;
private boolean disablePullToRefresh;
private boolean email; private boolean email;
private boolean gmail; private boolean gmail;

View File

@@ -30,7 +30,11 @@ public class OPMLImporter {
private final FeedSubscriptionService feedSubscriptionService; private final FeedSubscriptionService feedSubscriptionService;
public void importOpml(User user, String xml) throws IllegalArgumentException, FeedException { public void importOpml(User user, String xml) throws IllegalArgumentException, FeedException {
xml = xml.substring(xml.indexOf('<')); int index = xml.indexOf('<');
if (index == -1) {
throw new IllegalArgumentException("Invalid OPML: no start tag found");
}
xml = xml.substring(index);
WireFeedInput input = new WireFeedInput(); WireFeedInput input = new WireFeedInput();
Opml feed = (Opml) input.build(new StringReader(xml)); Opml feed = (Opml) input.build(new StringReader(xml));
List<Outline> outlines = feed.getOutlines(); List<Outline> outlines = feed.getOutlines();

View File

@@ -1,6 +1,5 @@
package com.commafeed.backend.service; package com.commafeed.backend.service;
import java.io.Serializable;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom; import java.security.SecureRandom;
@@ -18,11 +17,10 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
// taken from http://www.javacodegeeks.com/2012/05/secure-password-storage-donts-dos-and.html // taken from http://www.javacodegeeks.com/2012/05/secure-password-storage-donts-dos-and.html
@SuppressWarnings("serial")
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
@Singleton @Singleton
public class PasswordEncryptionService implements Serializable { public class PasswordEncryptionService {
public boolean authenticate(String attemptedPassword, byte[] encryptedPassword, byte[] salt) { public boolean authenticate(String attemptedPassword, byte[] encryptedPassword, byte[] salt) {
if (StringUtils.isBlank(attemptedPassword)) { if (StringUtils.isBlank(attemptedPassword)) {

View File

@@ -1,7 +1,6 @@
package com.commafeed.backend.service; package com.commafeed.backend.service;
import java.time.Instant; import java.time.Instant;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Optional; import java.util.Optional;
@@ -95,7 +94,7 @@ public class UserService {
} }
String computedFeverApiKey = Digests.md5Hex(user.getName() + ":" + user.getApiKey()); String computedFeverApiKey = Digests.md5Hex(user.getName() + ":" + user.getApiKey());
if (!computedFeverApiKey.equals(feverApiKey)) { if (!computedFeverApiKey.equalsIgnoreCase(feverApiKey)) {
return Optional.empty(); return Optional.empty();
} }
@@ -139,10 +138,6 @@ public class UserService {
return user; return user;
} }
public void createAdminUser() {
register(CommaFeedConstants.USERNAME_ADMIN, "admin", "admin@commafeed.com", Arrays.asList(Role.ADMIN, Role.USER), true);
}
public void createDemoUser() { public void createDemoUser() {
register(CommaFeedConstants.USERNAME_DEMO, "demo", "demo@commafeed.com", Collections.singletonList(Role.USER), true); register(CommaFeedConstants.USERNAME_DEMO, "demo", "demo@commafeed.com", Collections.singletonList(Role.USER), true);
} }

View File

@@ -27,13 +27,13 @@ import lombok.extern.slf4j.Slf4j;
@Singleton @Singleton
public class DatabaseCleaningService { public class DatabaseCleaningService {
private final int batchSize;
private final UnitOfWork unitOfWork; private final UnitOfWork unitOfWork;
private final FeedDAO feedDAO; private final FeedDAO feedDAO;
private final FeedEntryDAO feedEntryDAO; private final FeedEntryDAO feedEntryDAO;
private final FeedEntryContentDAO feedEntryContentDAO; private final FeedEntryContentDAO feedEntryContentDAO;
private final FeedEntryStatusDAO feedEntryStatusDAO; private final FeedEntryStatusDAO feedEntryStatusDAO;
private final int batchSize;
private final boolean keepStarredEntries;
private final Meter entriesDeletedMeter; private final Meter entriesDeletedMeter;
public DatabaseCleaningService(CommaFeedConfiguration config, UnitOfWork unitOfWork, FeedDAO feedDAO, FeedEntryDAO feedEntryDAO, public DatabaseCleaningService(CommaFeedConfiguration config, UnitOfWork unitOfWork, FeedDAO feedDAO, FeedEntryDAO feedEntryDAO,
@@ -44,6 +44,7 @@ public class DatabaseCleaningService {
this.feedEntryContentDAO = feedEntryContentDAO; this.feedEntryContentDAO = feedEntryContentDAO;
this.feedEntryStatusDAO = feedEntryStatusDAO; this.feedEntryStatusDAO = feedEntryStatusDAO;
this.batchSize = config.database().cleanup().batchSize(); this.batchSize = config.database().cleanup().batchSize();
this.keepStarredEntries = config.database().cleanup().keepStarredEntries();
this.entriesDeletedMeter = metrics.meter(MetricRegistry.name(getClass(), "entriesDeleted")); this.entriesDeletedMeter = metrics.meter(MetricRegistry.name(getClass(), "entriesDeleted"));
} }
@@ -86,21 +87,23 @@ public class DatabaseCleaningService {
log.info("cleaning entries exceeding feed capacity"); log.info("cleaning entries exceeding feed capacity");
long total = 0; long total = 0;
while (true) { while (true) {
List<FeedCapacity> feeds = unitOfWork.call(() -> feedEntryDAO.findFeedsExceedingCapacity(maxFeedCapacity, batchSize)); List<FeedCapacity> feeds = unitOfWork
.call(() -> feedEntryDAO.findFeedsExceedingCapacity(maxFeedCapacity, batchSize, keepStarredEntries));
if (feeds.isEmpty()) { if (feeds.isEmpty()) {
break; break;
} }
for (final FeedCapacity feed : feeds) { for (final FeedCapacity feed : feeds) {
long remaining = feed.getCapacity() - maxFeedCapacity; long remaining = feed.capacity() - maxFeedCapacity;
int deleted;
do { do {
final long rem = remaining; final long rem = remaining;
int deleted = unitOfWork.call(() -> feedEntryDAO.deleteOldEntries(feed.getId(), Math.min(batchSize, rem))); deleted = unitOfWork.call(() -> feedEntryDAO.deleteOldEntries(feed.id(), Math.min(batchSize, rem), keepStarredEntries));
entriesDeletedMeter.mark(deleted); entriesDeletedMeter.mark(deleted);
total += deleted; total += deleted;
remaining -= deleted; remaining -= deleted;
log.debug("removed {} entries for feeds exceeding capacity", total); log.debug("removed {} entries for feeds exceeding capacity", total);
} while (remaining > 0); } while (deleted > 0 && remaining > 0);
} }
} }
log.info("cleanup done: {} entries for feeds exceeding capacity deleted", total); log.info("cleanup done: {} entries for feeds exceeding capacity deleted", total);
@@ -111,7 +114,7 @@ public class DatabaseCleaningService {
long total = 0; long total = 0;
long deleted; long deleted;
do { do {
deleted = unitOfWork.call(() -> feedEntryDAO.deleteEntriesOlderThan(olderThan, batchSize)); deleted = unitOfWork.call(() -> feedEntryDAO.deleteEntriesOlderThan(olderThan, batchSize, keepStarredEntries));
entriesDeletedMeter.mark(deleted); entriesDeletedMeter.mark(deleted);
total += deleted; total += deleted;
log.debug("removed {} old entries", total); log.debug("removed {} old entries", total);

View File

@@ -25,23 +25,8 @@ public class DatabaseStartupService {
private final UserService userService; private final UserService userService;
private final CommaFeedConfiguration config; private final CommaFeedConfiguration config;
public void populateInitialData() { public boolean isInitialSetupRequired() {
long count = unitOfWork.call(userDAO::count); return unitOfWork.call(userDAO::count) == 0;
if (count == 0) {
unitOfWork.run(this::initialData);
}
}
private void initialData() {
log.info("populating database with default values");
try {
userService.createAdminUser();
if (config.users().createDemoAccount()) {
userService.createDemoUser();
}
} catch (Exception e) {
log.error(e.getMessage(), e);
}
} }
/** /**

View File

@@ -14,7 +14,7 @@ public class InPageReferenceFeedURLProvider implements FeedURLProvider {
@Override @Override
public List<String> get(String url, String urlContent) { public List<String> get(String url, String urlContent) {
Document doc = Jsoup.parse(urlContent, url); Document doc = Jsoup.parse(urlContent, url);
if (!"html".equals(doc.children().get(0).tagName())) { if (!"html".equals(doc.children().getFirst().tagName())) {
return List.of(); return List.of();
} }
return Stream.concat(doc.select("link[type=application/atom+xml]").stream(), doc.select("link[type=application/rss+xml]").stream()) return Stream.concat(doc.select("link[type=application/atom+xml]").stream(), doc.select("link[type=application/rss+xml]").stream())

View File

@@ -25,6 +25,9 @@ public class ServerInfo implements Serializable {
@Schema(required = true) @Schema(required = true)
private boolean allowRegistrations; private boolean allowRegistrations;
@Schema(required = true)
private boolean emailAddressRequired;
@Schema(required = true) @Schema(required = true)
private boolean smtpEnabled; private boolean smtpEnabled;
@@ -43,4 +46,10 @@ public class ServerInfo implements Serializable {
@Schema(required = true) @Schema(required = true)
private long forceRefreshCooldownDuration; private long forceRefreshCooldownDuration;
@Schema(required = true)
private boolean initialSetupRequired;
@Schema(required = true)
private int minimumPasswordLength;
} }

View File

@@ -18,7 +18,7 @@ import lombok.Data;
@RegisterForReflection @RegisterForReflection
public class Settings implements Serializable { public class Settings implements Serializable {
@Schema(description = "user's preferred language, english if none", required = true) @Schema(description = "user's preferred language, english if none")
private String language; private String language;
@Schema(description = "user reads all entries or unread entries only", required = true) @Schema(description = "user reads all entries or unread entries only", required = true)
@@ -72,6 +72,9 @@ public class Settings implements Serializable {
@Schema(description = "show unread count in the favicon", required = true) @Schema(description = "show unread count in the favicon", required = true)
private boolean unreadCountFavicon; private boolean unreadCountFavicon;
@Schema(description = "disable pull to refresh", required = true)
private boolean disablePullToRefresh;
@Schema(description = "primary theme color to use in the UI") @Schema(description = "primary theme color to use in the UI")
private String primaryColor; private String primaryColor;

View File

@@ -4,6 +4,8 @@ import java.io.Serializable;
import org.eclipse.microprofile.openapi.annotations.media.Schema; import org.eclipse.microprofile.openapi.annotations.media.Schema;
import com.commafeed.security.password.ValidPassword;
import lombok.Data; import lombok.Data;
@SuppressWarnings("serial") @SuppressWarnings("serial")
@@ -21,6 +23,7 @@ public class AdminSaveUserRequest implements Serializable {
private String email; private String email;
@Schema(description = "user password") @Schema(description = "user password")
@ValidPassword
private String password; private String password;
@Schema(description = "account status", required = true) @Schema(description = "account status", required = true)

View File

@@ -0,0 +1,25 @@
package com.commafeed.frontend.model.request;
import java.io.Serializable;
import org.eclipse.microprofile.openapi.annotations.media.Schema;
import com.commafeed.security.password.ValidPassword;
import lombok.Data;
@SuppressWarnings("serial")
@Schema(description = "Initial admin account setup request")
@Data
public class InitialSetupRequest implements Serializable {
@Schema(description = "admin username", required = true)
private String name;
@Schema(description = "admin password", required = true)
@ValidPassword
private String password;
@Schema(description = "admin email")
private String email;
}

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