Compare commits

...

636 Commits

Author SHA1 Message Date
Athou
f361be0c72 release 5.10.0 2025-05-28 07:08:11 +02:00
renovate[bot]
1611dc5703 chore(deps): update docker/build-push-action digest to 2634353 2025-05-27 20:52:00 +00:00
renovate[bot]
04faad84a4 fix(deps): update mantine monorepo to ^8.0.2 2025-05-27 14:24:50 +00:00
renovate[bot]
19c42e5838 chore(deps): update dependency @types/react to ^19.1.6 2025-05-27 11:59:22 +00:00
Athou
4918b69d0a improve performance by enabling the react compiler (#1087) 2025-05-26 21:06:53 +02:00
Athou
c7cec464aa improve performance by avoiding some big re-renders (#1087) 2025-05-26 20:55:27 +02:00
renovate[bot]
91857c4d73 chore(deps): lock file maintenance 2025-05-26 01:42:10 +00:00
Jérémie Panzer
fc6f9f4258 Merge pull request #1799 from Athou/renovate/patch-react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.6.1
2025-05-25 20:54:27 +02:00
renovate[bot]
34f9f9374a fix(deps): update dependency react-router-dom to ^7.6.1 2025-05-25 15:16:31 +00:00
renovate[bot]
0ae4c1621f fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.32 2025-05-25 01:30:25 +00:00
Athou
c393f5c045 improve aarch64 compatibility 2025-05-24 18:21:50 +02:00
Jérémie Panzer
1624290dc1 Merge pull request #1798 from Athou/renovate/rollup-plugin-visualizer-6.x
chore(deps): update dependency rollup-plugin-visualizer to v6
2025-05-24 16:31:45 +02:00
renovate[bot]
c6491990ac chore(deps): update dependency rollup-plugin-visualizer to v6 2025-05-24 13:46:34 +00:00
renovate[bot]
15dea17923 chore(deps): update dependency io.github.git-commit-id:git-commit-id-maven-plugin to v9.0.2 2025-05-23 21:45:42 +00:00
Athou
689d5ac7b2 clear indicator when entries are loaded 2025-05-23 22:37:28 +02:00
Athou
2142e20e7d cleanup 2025-05-23 16:03:16 +02:00
Jérémie Panzer
dc23126570 Merge pull request #1780 from Eshwar1212-maker/clean-red-dot
feat: red dot indicator for new unread articles
2025-05-23 15:54:22 +02:00
Jérémie Panzer
55856f9060 Merge pull request #1794 from Athou/renovate/vitejs-plugin-react-4.x
chore(deps): update dependency @vitejs/plugin-react to ^4.5.0
2025-05-23 09:20:28 +02:00
renovate[bot]
c756ce5fc8 chore(deps): update dependency @vitejs/plugin-react to ^4.5.0 2025-05-23 02:55:39 +00:00
Eshwar Tangirala
0546f25d55 Removed console.log 2025-05-22 20:13:16 -04:00
Eshwar Tangirala
7b33717333 Readjusted code to not use localstorage, and just used redux for indicator 2025-05-22 20:10:52 -04:00
Jérémie Panzer
6ea6d16e58 Merge pull request #1793 from Athou/renovate/org.apache.httpcomponents.client5-httpclient5-5.x
fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.5
2025-05-22 22:13:31 +02:00
renovate[bot]
a9b65c83aa fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.5 2025-05-22 17:14:03 +00:00
renovate[bot]
a497802b50 chore(deps): update dependency npm to v11.4.1 2025-05-22 05:05:19 +00:00
Jérémie Panzer
42b0428b9a Merge pull request #1792 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.24.0
2025-05-22 07:04:34 +02:00
Jérémie Panzer
931c553e1d Merge pull request #1791 from Athou/renovate/debian-12.x
chore(deps): update debian docker tag to v12.11
2025-05-22 07:03:52 +02:00
renovate[bot]
f3c0b92a3c chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.24.0 2025-05-22 03:10:15 +00:00
renovate[bot]
970cabf241 chore(deps): update debian docker tag to v12.11 2025-05-22 03:10:12 +00:00
renovate[bot]
e321ecde5d chore(deps): update dependency @types/react to ^19.1.5 2025-05-21 17:09:30 +00:00
Jérémie Panzer
32ac326a77 Merge pull request #1790 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.16.0
2025-05-21 19:08:34 +02:00
renovate[bot]
134dcd4466 chore(deps): update node.js to v22.16.0 2025-05-21 16:41:07 +00:00
renovate[bot]
26a44353d4 chore(deps): update dependency vitest to ^3.1.4 2025-05-19 18:09:09 +00:00
renovate[bot]
55acb3ef28 chore(deps): lock file maintenance 2025-05-19 03:45:55 +00:00
Athou
0e96307726 ignore scheme case 2025-05-18 17:40:06 +02:00
Eshwar Tangirala
0199a36238 Working on indicator feature for new unread feeds 2025-05-18 00:03:28 -04:00
Eshwar Tangirala
3f2f6e83fa Adding red dot indicator feature, got main components done 2025-05-15 20:19:05 -04:00
renovate[bot]
4fa780cac2 chore(deps): update docker/build-push-action digest to 1dc7386 2025-05-15 21:12:24 +00:00
Jérémie Panzer
edb0f655b0 Merge pull request #1786 from Athou/renovate/patch-quarkus.version
fix(deps): update quarkus.version to v3.22.3 (patch)
2025-05-15 23:11:52 +02:00
Jérémie Panzer
651ada7073 Merge pull request #1787 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.4.0
2025-05-15 23:11:36 +02:00
renovate[bot]
efb5d49d04 chore(deps): update dependency npm to v11.4.0 2025-05-15 20:08:41 +00:00
renovate[bot]
f78cc18b06 fix(deps): update quarkus.version to v3.22.3 2025-05-15 12:39:28 +00:00
renovate[bot]
8acffa11e5 fix(deps): update swagger.version to v2.2.32 2025-05-15 03:27:38 +00:00
renovate[bot]
f4246807ff chore(deps): update node.js to v22.15.1 2025-05-14 22:48:58 +00:00
renovate[bot]
abf6e7131b fix(deps): update dependency @reduxjs/toolkit to ^2.8.2 2025-05-14 19:06:20 +00:00
renovate[bot]
b2688520cc fix(deps): update mantine monorepo to ^8.0.1 2025-05-14 14:57:49 +00:00
Athou
fad0aea108 release 5.9.0 2025-05-14 16:56:01 +02:00
renovate[bot]
0b63773c83 fix(deps): update swagger.version to v2.2.31 2025-05-13 19:10:00 +00:00
renovate[bot]
3ef28009ac chore(deps): update dependency @types/react-dom to ^19.1.5 2025-05-13 14:35:24 +00:00
renovate[bot]
8979e2b191 chore(deps): update dependency @types/react to ^19.1.4 2025-05-12 23:34:04 +00:00
Eshwar Tangirala
d6910aa1e8 Cleaned up UI for Indicator 2025-05-12 16:30:06 -04:00
Eshwar Tangirala
afc56c6053 feat: red dot indicator for new unread articles 2025-05-12 16:22:40 -04:00
Eshwar Tangirala
1bd504cbfb feat: red dot indicator for new unread articles 2025-05-12 16:22:40 -04:00
renovate[bot]
2c089ddb5e chore(deps): update dependency @types/react-dom to ^19.1.4 2025-05-12 15:39:00 +00:00
Athou
0b5245643a increase cache duration of static resources even more (#1782) 2025-05-12 15:11:05 +02:00
Athou
ae35d43f7f revert back to deploy documentation on release only 2025-05-12 09:57:01 +02:00
Athou
fe55682c9f force update pages this time only 2025-05-12 09:56:22 +02:00
Jérémie Panzer
0d3e6f17e2 Merge pull request #1783 from Athou/renovate/pin-dependencies
chore(deps): pin jaywcjlove/markdown-to-html-cli action to d2c8ffd
2025-05-12 09:54:23 +02:00
renovate[bot]
d5659c4278 chore(deps): lock file maintenance 2025-05-12 06:49:59 +00:00
renovate[bot]
69b87b9026 chore(deps): pin jaywcjlove/markdown-to-html-cli action to d2c8ffd 2025-05-12 06:49:09 +00:00
Athou
168bcd3a37 add reference to the custom css documentation 2025-05-12 08:48:16 +02:00
Athou
e3b6be0cd0 add documentation for custom CSS (#1757) 2025-05-12 07:51:38 +02:00
Athou
eeceda0ca8 increase static resources cache duration (#1782) 2025-05-11 18:12:15 +02:00
renovate[bot]
aa903039c8 chore(deps): update ibm-semeru-runtimes docker tag to open-21.0.7_6-jre 2025-05-09 20:05:00 +00:00
Jérémie Panzer
73d81d0cdb Merge pull request #1778 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.6.0
2025-05-08 20:11:28 +02:00
renovate[bot]
01fe539af6 fix(deps): update dependency react-router-dom to ^7.6.0 2025-05-08 17:13:56 +00:00
renovate[bot]
c08063ca57 fix(deps): update dependency @reduxjs/toolkit to ^2.8.1 2025-05-08 03:51:29 +00:00
renovate[bot]
60d4af2890 fix(deps): update quarkus.version to v3.22.2 2025-05-07 22:33:33 +00:00
renovate[bot]
6378f074a8 fix(deps): update dependency tss-react to ^4.9.18 2025-05-07 19:57:06 +00:00
Athou
5082ec86fd Merge branch 'custom-css' 2025-05-07 19:44:24 +02:00
Jérémie Panzer
6cff5bb099 Merge pull request #1777 from WangLei1993/master
add Chinese translation for new entry
2025-05-07 07:32:45 +02:00
WangLei1993
d54562d56f add Chinese translation for new entry 2025-05-07 12:06:56 +08:00
Jérémie Panzer
2b45a8fae5 Merge pull request #1776 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.8.0
2025-05-07 05:37:18 +02:00
renovate[bot]
8654df8994 fix(deps): update dependency @reduxjs/toolkit to ^2.8.0 2025-05-06 23:47:34 +00:00
renovate[bot]
4d5145c17e chore(deps): update dependency vite-plugin-checker to ^0.9.3 2025-05-06 18:09:24 +00:00
Athou
850921bca9 release 5.8.0 2025-05-06 20:07:54 +02:00
Athou
1dc6470419 move github sponsors up to match the order on the github page 2025-05-06 20:05:33 +02:00
Athou
b5c197f499 add more css classes based on feedback 2025-05-06 19:26:03 +02:00
Athou
d417655a86 add css classes to elements to ease css customization 2025-05-06 19:04:39 +02:00
renovate[bot]
ebca9f8290 fix(deps): update dependency tss-react to ^4.9.17 2025-05-06 07:51:25 +00:00
renovate[bot]
53b1f89b30 chore(deps): update dependency @types/react to ^19.1.3 2025-05-06 03:41:03 +00:00
renovate[bot]
6885191877 chore(deps): update ibm-semeru-runtimes:open-21.0.6_7-jre docker digest to bb59a7e 2025-05-05 22:59:50 +00:00
renovate[bot]
e69d9fe8b8 chore(deps): update dependency vitest to ^3.1.3 2025-05-05 17:13:14 +00:00
Jérémie Panzer
d6a1f1ae15 Merge pull request #1773 from canoine/patch-4
Update fr/messages.po
2025-05-05 19:12:16 +02:00
canoine
a7813f4442 Update fr/messages.po
Translation of the new message
2025-05-05 19:03:00 +02:00
Athou
1e4664987a add missing i18n label 2025-05-05 17:28:52 +02:00
Jérémie Panzer
7a819f5d58 Merge pull request #1772 from Athou/renovate/major-mantine-monorepo
fix(deps): update mantine monorepo to v8 (major)
2025-05-05 14:00:14 +02:00
Athou
45ef56e9da reduce vertical room occupied by slider 2025-05-05 13:59:23 +02:00
Athou
f43c7aa5d0 change default value of entriesToKeepOnTopWhenScrolling to match what other feed readers are doing 2025-05-05 13:51:32 +02:00
renovate[bot]
8d88711e59 fix(deps): update mantine monorepo to v8 2025-05-05 11:49:11 +00:00
renovate[bot]
280c0b60e9 chore(deps): update dependency vite to ^6.3.5 2025-05-05 10:01:35 +00:00
renovate[bot]
605f8f6615 chore(deps): lock file maintenance 2025-05-05 01:29:24 +00:00
renovate[bot]
0e88b4de1b chore(deps): update dependency vite-plugin-checker to ^0.9.2 2025-05-04 13:26:48 +00:00
Athou
b02aa923d7 customizable font size (#1462) 2025-05-04 13:26:33 +02:00
Athou
680c927e1d font size reduction was not actually working, and looks bad now that it does 2025-05-04 01:21:07 +02:00
Athou
4b2e65abdc use Box instead of Text because Text resets font size 2025-05-04 01:16:11 +02:00
Athou
e501bf6b05 fix initial value not loaded correctly for newly added settings 2025-05-03 21:50:53 +02:00
Jérémie Panzer
80bf2582bd Merge pull request #1771 from Athou/renovate/com.microsoft.playwright-playwright-1.x
chore(deps): update dependency com.microsoft.playwright:playwright to v1.52.0
2025-05-02 22:14:41 +02:00
renovate[bot]
586da4424d chore(deps): update dependency com.microsoft.playwright:playwright to v1.52.0 2025-05-02 18:59:58 +00:00
renovate[bot]
8e0e8c2407 fix(deps): update mantine monorepo to ^7.17.7 2025-05-02 10:10:57 +00:00
Athou
40461ac883 fix wrong category mapping 2025-05-01 13:01:28 +02:00
renovate[bot]
9288a7e66e chore(deps): update dependency vite to ^6.3.4 2025-04-30 19:48:04 +00:00
Jérémie Panzer
275db4ec72 Merge pull request #1770 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.22.1 (minor)
2025-04-30 21:47:10 +02:00
renovate[bot]
67b2f8968d fix(deps): update quarkus.version to v3.22.1 2025-04-30 19:04:04 +00:00
renovate[bot]
45ce35dfdb chore(deps): update dependency @types/react-dom to ^19.1.3 2025-04-30 13:32:29 +00:00
renovate[bot]
52aa9ab2fe chore(deps): update debian:12.10 docker digest to 264982f 2025-04-29 11:18:53 +00:00
Jérémie Panzer
d24725bd55 Merge pull request #1769 from Athou/renovate/org.jsoup-jsoup-1.x
fix(deps): update dependency org.jsoup:jsoup to v1.20.1
2025-04-29 13:18:04 +02:00
renovate[bot]
f368a67dec fix(deps): update dependency org.jsoup:jsoup to v1.20.1 2025-04-29 08:40:01 +00:00
Jérémie Panzer
564d1744e1 Merge pull request #1768 from canoine/patch-2
Update fr/messages.po
2025-04-29 10:39:05 +02:00
canoine
d091ecfa5f Update fr/messages.po
Translation of new messages
2025-04-29 09:22:39 +02:00
Jérémie Panzer
7d23165e14 Merge pull request #1764 from WangLei1993/master
add Chinese translation for new entry
2025-04-29 06:33:39 +02:00
WangLei1993
a9ca3278c6 add Chinese translation for color 2025-04-29 11:55:32 +08:00
WangLei1993
e8734710ca Merge branch 'Athou:master' into master 2025-04-29 10:42:39 +08:00
renovate[bot]
f8a0e20df9 fix(deps): update dependency react-router-dom to ^7.5.3 2025-04-28 22:47:15 +00:00
Athou
de90e4de54 try to find a suitable language for the user before defaulting to english (#1767) 2025-04-28 22:59:41 +02:00
Athou
03cb27f69a add new translation placeholders 2025-04-28 22:49:57 +02:00
Athou
f86f1dd770 'All' and 'Starred' labels are now translatable (#1765) 2025-04-28 22:48:02 +02:00
Athou
ec21ffc571 color names are now translatable (#1766) 2025-04-28 22:39:15 +02:00
WangLei1993
c73c9c74ba Merge branch 'Athou:master' into master 2025-04-29 03:25:58 +08:00
WangLei1993
fd3c264d0c add Chinese translation for new entry 2025-04-29 03:25:16 +08:00
renovate[bot]
3983ba6cd0 chore(deps): lock file maintenance 2025-04-28 08:49:58 +00:00
renovate[bot]
dc0b5bdd11 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.23.1 2025-04-28 03:08:48 +00:00
renovate[bot]
5b3728186e fix(deps): update dependency react-router-dom to ^7.5.2 2025-04-25 06:22:05 +00:00
renovate[bot]
8b0936b678 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.4.4 2025-04-25 05:11:21 +00:00
Jérémie Panzer
b99e81a389 Merge pull request #1763 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to ^1.9.0
2025-04-25 07:10:40 +02:00
renovate[bot]
0b8fb0f9a7 fix(deps): update dependency axios to ^1.9.0 2025-04-24 23:53:43 +00:00
renovate[bot]
7d5bbe0130 chore(deps): update docker/build-push-action digest to 14487ce 2025-04-24 23:53:15 +00:00
renovate[bot]
c6637c6814 chore(deps): update actions/download-artifact digest to d3f86a1 2025-04-24 20:09:51 +00:00
renovate[bot]
e302a011bb fix(deps): update mantine monorepo to ^7.17.5 2025-04-24 12:41:34 +00:00
renovate[bot]
25f8bdaa28 chore(deps): update dependency vite to ^6.3.3 2025-04-24 09:42:45 +00:00
renovate[bot]
e7d1018cbc chore(deps): update dependency io.quarkus.platform:quarkus-maven-plugin to v3.21.4 2025-04-23 22:14:40 +00:00
Jérémie Panzer
e81fa69a03 Merge pull request #1761 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.15.0
2025-04-23 15:22:37 +02:00
renovate[bot]
176e76ad2d chore(deps): update node.js to v22.15.0 2025-04-23 12:58:46 +00:00
Jérémie Panzer
0925a91089 Merge pull request #1759 from Athou/renovate/org.apache.commons-commons-collections4-4.x
fix(deps): update dependency org.apache.commons:commons-collections4 to v4.5.0
2025-04-23 07:24:00 +02:00
renovate[bot]
c04d0b147c fix(deps): update dependency org.apache.commons:commons-collections4 to v4.5.0 2025-04-22 20:08:59 +00:00
renovate[bot]
a349eff1a3 chore(deps): update dependency vitest to ^3.1.2 2025-04-21 10:23:42 +00:00
renovate[bot]
2ddeda9a27 chore(deps): lock file maintenance 2025-04-21 02:01:50 +00:00
renovate[bot]
00b0fe921f chore(deps): update dependency @vitejs/plugin-react to ^4.4.1 2025-04-19 15:03:29 +00:00
renovate[bot]
bcc6cdf4b1 chore(deps): update dependency vite to ^6.3.2 2025-04-18 07:33:49 +00:00
renovate[bot]
ba46cc3cd6 fix(deps): update dependency react-router-dom to ^7.5.1 2025-04-17 15:41:39 +00:00
renovate[bot]
ed1bf609b8 chore(deps): update dependency vite to ^6.3.1 2025-04-17 02:11:49 +00:00
Jérémie Panzer
13262b678d Merge pull request #1756 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.7.0
2025-04-16 21:53:25 +02:00
renovate[bot]
cf9321de23 fix(deps): update dependency @reduxjs/toolkit to ^2.7.0 2025-04-16 18:48:12 +00:00
renovate[bot]
ac7a78bdc0 fix(deps): update quarkus.version to v3.21.3 2025-04-16 15:27:22 +00:00
Jérémie Panzer
640d3f1f6e Merge pull request #1754 from Athou/renovate/vite-6.x
chore(deps): update dependency vite to ^6.3.0
2025-04-16 11:45:25 +02:00
renovate[bot]
d716a8081c chore(deps): update dependency vite to ^6.3.0 2025-04-16 09:03:14 +00:00
Athou
1cec4e68b1 remove unused variables 2025-04-16 01:16:34 +02:00
Jérémie Panzer
9d16299c5b Merge pull request #1753 from Athou/renovate/vitejs-plugin-react-4.x
chore(deps): update dependency @vitejs/plugin-react to ^4.4.0
2025-04-15 14:22:10 +02:00
renovate[bot]
cb92b1969c chore(deps): update dependency @vitejs/plugin-react to ^4.4.0 2025-04-15 10:50:23 +00:00
renovate[bot]
55a62d393d chore(deps): update dependency @types/react to ^19.1.2 2025-04-14 23:14:48 +00:00
renovate[bot]
027b2252db fix(deps): update linguijs monorepo to ^5.3.1 2025-04-14 17:27:06 +00:00
Jérémie Panzer
ccfb88ddcc Merge pull request #1752 from Athou/renovate/redoc-2.x
fix(deps): update dependency redoc to ^2.5.0
2025-04-14 19:26:10 +02:00
renovate[bot]
dde0736fcf fix(deps): update dependency redoc to ^2.5.0 2025-04-14 16:24:14 +00:00
renovate[bot]
6498bb5ee6 chore(deps): lock file maintenance 2025-04-14 01:54:18 +00:00
Jérémie Panzer
d7ca2db330 Merge pull request #1751 from Athou/renovate/jsdom-26.x
chore(deps): update dependency jsdom to ^26.1.0
2025-04-13 18:11:54 +02:00
renovate[bot]
99b32795a5 chore(deps): update dependency jsdom to ^26.1.0 2025-04-13 14:35:09 +00:00
renovate[bot]
840f670d5d chore(deps): update dependency @types/react to ^19.1.1 2025-04-11 15:51:04 +00:00
renovate[bot]
e3c0a4c665 chore(deps): update dependency vite to ^6.2.6 2025-04-10 13:00:03 +00:00
Athou
915506527a add theme color picker (#1598) 2025-04-10 14:17:44 +02:00
renovate[bot]
7541251344 fix(deps): update quarkus.version to v3.21.2 2025-04-09 22:01:45 +00:00
Athou
40c9b42b24 mark all as read confirmation now also applies to the "shift+a" keyboard shortcut (#1744) 2025-04-09 20:28:40 +02:00
Athou
dfab678070 remove unused imports 2025-04-09 20:28:40 +02:00
renovate[bot]
3d371d5942 chore(deps): update dependency @types/react-dom to ^19.1.2 2025-04-09 17:25:25 +00:00
renovate[bot]
9bfbaa8ded chore(deps): update ibm-semeru-runtimes:open-21.0.6_7-jre docker digest to 475c325 2025-04-09 16:47:23 +00:00
Athou
be0fc95c45 dialog can now by confirmed with the enter key 2025-04-09 14:40:53 +02:00
Athou
dcb6113eb7 set focus to slider when the dialog opens to ease keyboard navigation 2025-04-09 14:40:53 +02:00
renovate[bot]
55491651f6 chore(deps): update ibm-semeru-runtimes:open-21.0.6_7-jre docker digest to 1515f0d 2025-04-09 07:58:05 +00:00
Jérémie Panzer
c1d471ebdc Merge pull request #1750 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.3.0
2025-04-09 07:19:10 +02:00
renovate[bot]
069e675f19 chore(deps): update dependency npm to v11.3.0 2025-04-08 22:06:01 +00:00
renovate[bot]
d34f719a4f fix(deps): update mantine monorepo to ^7.17.4 2025-04-08 16:57:23 +00:00
renovate[bot]
4eb932a3f0 chore(deps): update debian:12.10 docker digest to 00cd074 2025-04-08 06:24:19 +00:00
renovate[bot]
1ab27f2626 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v2.44.4 2025-04-08 03:28:41 +00:00
renovate[bot]
7d3ce7e602 fix(deps): update swagger.version to v2.2.30 2025-04-07 16:46:41 +00:00
renovate[bot]
cf530b2c60 chore(deps): lock file maintenance 2025-04-07 01:34:57 +00:00
Athou
d9bcd7f592 remove warning about Non-Serializable Data passed to redux action 2025-04-05 17:19:04 +02:00
Athou
8b854b5cda remove intermediate element by rendering the mantine Paper as <article> 2025-04-05 17:19:04 +02:00
renovate[bot]
f7b6677bb1 chore(deps): update dependency typescript to ^5.8.3 2025-04-05 04:17:26 +00:00
Jérémie Panzer
0cc5e8f5b8 Merge pull request #1748 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.5.0
2025-04-05 06:16:57 +02:00
Jérémie Panzer
8d153e3b2b Merge pull request #1749 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v6.11 (minor)
2025-04-05 06:16:45 +02:00
renovate[bot]
d15428971c fix(deps): update querydsl.version to v6.11 2025-04-05 02:02:22 +00:00
renovate[bot]
f34c2aa437 fix(deps): update dependency react-router-dom to ^7.5.0 2025-04-04 23:12:23 +00:00
Athou
9b3ff5f81f fix wrong issue numbers in changelog 2025-04-04 22:15:37 +02:00
Athou
e1f6937802 release 5.7.0 2025-04-04 19:39:29 +02:00
Athou
0c0834b30f fix bookmarklet, React 19 no longer allows 'javascript:' urls 2025-04-04 14:25:21 +02:00
Jérémie Panzer
5ad4b97205 Merge pull request #1747 from flisk/patch-1
don't throw NotModifiedException on etag/lm changes
2025-04-04 11:18:57 +02:00
flisk
c4ec249bc4 don't throw NotModifiedException on etag/lm changes
A well-behaved server should return 304 if our If-Modified-Since and If-None-Match indicate that we don't have the latest version of a resource cached. Having these extra conditions where we consider our local version fresh is not necessary, and may in fact lead to resource updates being missed when only one header changes.

We should instead trust the server to know whether it needs to send us a new resource or not based on the cache headers we provide.
2025-04-04 11:00:47 +02:00
renovate[bot]
cf8d3965d5 chore(deps): update dependency vite to ^6.2.5 2025-04-03 14:51:19 +00:00
renovate[bot]
3903fd9374 chore(deps): update peter-evans/dockerhub-description digest to 432a30c 2025-04-03 09:42:24 +00:00
Jérémie Panzer
77d59dabe8 Merge pull request #1742 from Athou/renovate/testing-library-monorepo
chore(deps): update dependency @testing-library/react to ^16.3.0
2025-04-03 00:37:51 +02:00
Jérémie Panzer
56ca737297 Merge pull request #1743 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.23.0
2025-04-03 00:37:34 +02:00
renovate[bot]
9edb539be3 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.23.0 2025-04-02 19:13:17 +00:00
renovate[bot]
31a773d200 chore(deps): update dependency @testing-library/react to ^16.3.0 2025-04-02 19:13:13 +00:00
renovate[bot]
61355eabf7 chore(deps): update dependency io.quarkus.platform:quarkus-maven-plugin to v3.21.1 2025-04-02 19:12:53 +00:00
Jérémie Panzer
569874e51f Merge pull request #1741 from Athou/renovate/react-monorepo
chore(deps): update react monorepo (minor)
2025-04-02 21:53:31 +09:00
renovate[bot]
00d47901fc chore(deps): update react monorepo 2025-04-02 10:49:12 +00:00
renovate[bot]
d8b4ef55ce chore(deps): lock file maintenance 2025-03-31 22:26:46 +00:00
renovate[bot]
da41a4cab9 fix(deps): update dependency org.projectlombok:lombok to v1.18.38 2025-03-31 19:13:21 +00:00
Jérémie Panzer
8a90ef0471 Merge pull request #1740 from Athou/renovate/vitest-monorepo
chore(deps): update dependency vitest to ^3.1.1
2025-04-01 04:12:48 +09:00
renovate[bot]
b4ab32a578 chore(deps): update dependency vite to ^6.2.4 2025-03-31 16:02:10 +00:00
renovate[bot]
03aa53abc8 chore(deps): update dependency vitest to ^3.1.1 2025-03-31 11:06:04 +00:00
renovate[bot]
2ae5c0cd8e chore(deps): update peter-evans/dockerhub-description digest to 0505d8b 2025-03-31 11:05:32 +00:00
renovate[bot]
cacc632443 chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.3 2025-03-31 07:27:09 +00:00
renovate[bot]
28f865ccfa chore(deps): update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.3 2025-03-31 03:07:34 +00:00
Jérémie Panzer
a4c949e8b3 Merge pull request #1739 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.22.0
2025-03-31 04:49:23 +09:00
renovate[bot]
6098994397 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.22.0 2025-03-30 17:50:39 +00:00
renovate[bot]
5763ca30d6 fix(deps): update dependency react-router-dom to ^7.4.1 2025-03-29 00:17:28 +00:00
Jérémie Panzer
7d039d1001 Merge pull request #1738 from Athou/renovate/react-monorepo
fix(deps): update react monorepo to ^19.1.0 (minor)
2025-03-29 09:16:31 +09:00
renovate[bot]
7fe74af906 fix(deps): update react monorepo to ^19.1.0 2025-03-28 23:25:45 +00:00
renovate[bot]
80b72aa30b fix(deps): update dependency tss-react to ^4.9.16 2025-03-28 10:05:38 +00:00
renovate[bot]
3ba0d241f9 fix(deps): update mantine monorepo to ^7.17.3 2025-03-27 12:04:33 +00:00
renovate[bot]
67428aa0c7 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.4.3 2025-03-26 23:20:17 +00:00
Jérémie Panzer
b9a0256031 Merge pull request #1737 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.21.0 (minor)
2025-03-27 08:19:41 +09:00
renovate[bot]
f3c2296636 fix(deps): update quarkus.version to v3.21.0 2025-03-26 12:33:20 +00:00
renovate[bot]
b6e8f21975 chore(deps): update ibm-semeru-runtimes:open-21.0.6_7-jre docker digest to fc0d0c8 2025-03-25 01:44:57 +00:00
renovate[bot]
284f80045f chore(deps): update dependency vite to ^6.2.3 2025-03-24 12:07:42 +00:00
renovate[bot]
f589477aa8 chore(deps): lock file maintenance 2025-03-24 02:45:32 +00:00
Jérémie Panzer
29cb296d09 Merge pull request #1733 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to ^5.3.0 (minor)
2025-03-21 21:07:34 +09:00
renovate[bot]
86caa1450a fix(deps): update linguijs monorepo to ^5.3.0 2025-03-21 11:26:04 +00:00
Jérémie Panzer
9dd4b9e67f Merge pull request #1732 from Athou/renovate/patch-react-monorepo
chore(deps): update dependency @types/react to ^19.0.12
2025-03-21 07:09:17 +09:00
renovate[bot]
e2e654f05b chore(deps): update dependency @types/react to ^19.0.12 2025-03-20 16:27:41 +00:00
renovate[bot]
72dbc62b41 fix(deps): update quarkus.version to v3.19.4 2025-03-20 10:58:22 +00:00
renovate[bot]
0a21014668 fix(deps): update dependency axios to ^1.8.4 2025-03-20 06:35:53 +00:00
renovate[bot]
b6d9d2a26c chore(deps): update actions/upload-artifact digest to ea165f8 2025-03-20 01:47:55 +00:00
renovate[bot]
25c3a7748c chore(deps): update actions/download-artifact digest to 95815c3 2025-03-19 20:49:20 +00:00
Jérémie Panzer
b2bcfdd6eb Merge pull request #1731 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.4.0
2025-03-19 21:48:46 +01:00
renovate[bot]
2a978db406 fix(deps): update dependency react-router-dom to ^7.4.0 2025-03-19 17:04:09 +00:00
renovate[bot]
9e40d0d066 chore(deps): update actions/download-artifact digest to cc20338 2025-03-19 02:40:14 +00:00
renovate[bot]
c912650d59 chore(deps): update actions/download-artifact digest to b14cf4c 2025-03-18 19:01:24 +00:00
renovate[bot]
464ebcb471 chore(deps): lock file maintenance 2025-03-18 12:30:06 +00:00
renovate[bot]
463e0e59d7 chore(deps): update debian:12.10 docker digest to 18023f1 2025-03-18 07:34:16 +00:00
Jérémie Panzer
b4e5d8ef20 Merge pull request #1729 from Athou/renovate/patch-react-monorepo
chore(deps): update dependency @types/react to ^19.0.11
2025-03-18 08:33:48 +01:00
renovate[bot]
126905aeb3 chore(deps): update dependency @types/react to ^19.0.11 2025-03-18 04:22:16 +00:00
Jérémie Panzer
1af10d3364 Merge pull request #1727 from Athou/renovate/lock-file-maintenance
chore(deps): lock file maintenance
2025-03-18 05:20:59 +01:00
Jérémie Panzer
6ad854c019 Merge pull request #1728 from Athou/renovate/com.microsoft.playwright-playwright-1.x
chore(deps): update dependency com.microsoft.playwright:playwright to v1.51.0
2025-03-18 05:20:37 +01:00
Jérémie Panzer
b30117aa4d Merge pull request #1730 from Athou/renovate/debian-12.x
chore(deps): update debian docker tag to v12.10
2025-03-18 05:19:56 +01:00
renovate[bot]
5a66482d1e chore(deps): lock file maintenance 2025-03-18 02:30:37 +00:00
renovate[bot]
2628ec49bb chore(deps): update debian docker tag to v12.10 2025-03-18 02:29:44 +00:00
renovate[bot]
f3d15cf173 chore(deps): update dependency com.microsoft.playwright:playwright to v1.51.0 2025-03-17 23:39:46 +00:00
renovate[bot]
bbcf55ce57 chore(deps): update dependency vitest to ^3.0.9 2025-03-17 23:39:43 +00:00
renovate[bot]
72fc3716e7 chore(deps): update dependency vite-plugin-checker to ^0.9.1 2025-03-17 17:30:58 +00:00
Jérémie Panzer
81a6cfaa88 Merge pull request #1725 from Athou/renovate/com.ibm.icu-icu4j-77.x
fix(deps): update dependency com.ibm.icu:icu4j to v77
2025-03-15 01:14:58 +01:00
renovate[bot]
aed5165ef3 chore(deps): update dependency vite to ^6.2.2 (#1726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-14 23:14:20 +00:00
renovate[bot]
eaf2933726 fix(deps): update mantine monorepo to ^7.17.2 2025-03-14 15:16:11 +00:00
renovate[bot]
39da4d9d36 chore(deps): update docker/login-action digest to 74a5d14 2025-03-14 11:05:08 +00:00
renovate[bot]
e5ebd7ff39 fix(deps): update dependency com.ibm.icu:icu4j to v77 2025-03-14 04:29:10 +00:00
renovate[bot]
b6ae3e4e1e fix(deps): update dependency io.quarkus.platform:quarkus-bom to v3.19.3 2025-03-12 16:05:37 +00:00
renovate[bot]
32d1488352 fix(deps): update dependency axios to ^1.8.3 2025-03-12 10:40:24 +00:00
Athou
b08d0a388f no need to re-render the custom js handler on route change 2025-03-12 10:36:17 +01:00
Athou
7fe004a696 load js when the app is done loading (#1724) 2025-03-12 07:33:44 +01:00
Athou
f620d033b0 DisablePullToRefresh doesn't need to be in HashRouter 2025-03-12 07:21:31 +01:00
Athou
ba071ba71f add the referrer meta (#1724) 2025-03-12 06:37:12 +01:00
Athou
6f3197302d make biome format root files too (package.json, vite config, ...) 2025-03-11 15:50:04 +01:00
Athou
131a8ebf68 remove warning about vite not finding custom code at build time 2025-03-11 15:48:52 +01:00
Athou
8b24c125c2 also skip js tests when skipping tests 2025-03-11 15:36:32 +01:00
Jérémie Panzer
52293376ec Merge pull request #1723 from Athou/renovate/patch-swagger.version
fix(deps): update swagger.version to v2.2.29 (patch)
2025-03-11 07:23:52 +01:00
renovate[bot]
f8ac59af6a fix(deps): update swagger.version to v2.2.29 2025-03-10 23:04:46 +00:00
Athou
5c791e2305 revert corrupted png files 2025-03-10 11:03:43 +01:00
Athou
6641bc0631 don't expose exception message 2025-03-10 10:54:40 +01:00
Jérémie Panzer
da690aa750 Merge pull request #1722 from Athou/line-endings
normalize line endings
2025-03-10 10:50:11 +01:00
Athou
fb7f041454 normalize line endings 2025-03-10 08:48:26 +01:00
renovate[bot]
ec4554c76e chore(deps): lock file maintenance 2025-03-10 03:01:10 +00:00
Athou
068e85fe6e add tests for selectNextUnreadTreeItem 2025-03-08 08:32:46 +01:00
renovate[bot]
ba926c674e fix(deps): update dependency @reduxjs/toolkit to ^2.6.1 2025-03-07 22:23:31 +00:00
renovate[bot]
836f8f14c0 fix(deps): update dependency axios to ^1.8.2 2025-03-07 10:56:42 +00:00
renovate[bot]
eeecac96e1 chore(deps): update dependency vite to ^6.2.1 2025-03-07 05:02:32 +00:00
Jérémie Panzer
ecc62f222a Merge pull request #1721 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.3.0
2025-03-07 06:01:39 +01:00
renovate[bot]
9022f93811 fix(deps): update dependency react-router-dom to ^7.3.0 2025-03-06 22:53:13 +00:00
renovate[bot]
e7225d35b2 chore(deps): update dependency vitest to ^3.0.8 2025-03-06 20:01:28 +00:00
Athou
454fc03038 automerge digest changes 2025-03-06 21:00:28 +01:00
Jérémie Panzer
9c0674fd83 Merge pull request #1720 from Athou/renovate/migrate-config
chore(config): migrate renovate config
2025-03-06 20:57:05 +01:00
Jérémie Panzer
7a20482ddf Merge pull request #1719 from Athou/renovate/pin-dependencies
chore(deps): pin dependencies
2025-03-06 20:55:28 +01:00
renovate[bot]
32ad47ba16 chore(config): migrate config renovate.json 2025-03-06 16:52:01 +00:00
renovate[bot]
fc562cce0f chore(deps): pin dependencies 2025-03-06 16:51:34 +00:00
Athou
b029b251db use renovate best practices 2025-03-06 17:50:54 +01:00
Jérémie Panzer
e3e28e727f Merge pull request #1718 from Athou/renovate/io.github.hakky54-sslcontext-kickstart-for-apache5-9.x
fix(deps): update dependency io.github.hakky54:sslcontext-kickstart-for-apache5 to v9.1.0
2025-03-06 07:08:24 +01:00
Jérémie Panzer
50cb728db7 Merge pull request #1717 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.2.0
2025-03-06 07:08:12 +01:00
renovate[bot]
c654ba4d1b fix(deps): update dependency io.github.hakky54:sslcontext-kickstart-for-apache5 to v9.1.0 2025-03-05 21:32:08 +00:00
renovate[bot]
846e29b15e chore(deps): update dependency npm to v11.2.0 2025-03-05 21:32:05 +00:00
renovate[bot]
f2b4062d73 fix(deps): update quarkus.version to v3.19.2 2025-03-05 19:37:47 +00:00
Athou
9051e6a6db add test to make sure documentation is available 2025-03-05 17:22:53 +01:00
Athou
b733129043 remove the need for selectPreviousUnreadTreeItem by reversing the array if we're going backwards 2025-03-05 07:33:36 +01:00
Athou
d46b571444 select next/previous unread feed/category when marking all as read (#1558) 2025-03-04 21:18:45 +01:00
renovate[bot]
7d744b4ce0 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.4 2025-03-04 13:07:31 +00:00
Jérémie Panzer
801dda912c Merge pull request #1714 from Athou/renovate/org.jsoup-jsoup-1.x
fix(deps): update dependency org.jsoup:jsoup to v1.19.1
2025-03-04 14:06:58 +01:00
renovate[bot]
a20005409a fix(deps): update dependency org.jsoup:jsoup to v1.19.1 2025-03-04 06:23:04 +00:00
renovate[bot]
6f1411d075 fix(deps): update mantine monorepo to ^7.17.1 (#1712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 06:22:47 +00:00
Athou
1aa263a6c0 simplify UnitOfWork code 2025-03-03 22:29:21 +01:00
Jérémie Panzer
9d511ac7dd Merge pull request #1710 from Athou/renovate/graalvm-setup-graalvm-digest
chore(deps): update graalvm/setup-graalvm digest to 01ed653
2025-03-03 21:24:20 +01:00
Athou
122e98cc76 revert to mantine 7.17.0 (#1711) 2025-03-03 21:21:44 +01:00
Athou
e445e5ea39 clarify in the README that if -Pnative is used, database should be specified (#1708) 2025-03-03 16:23:29 +01:00
renovate[bot]
5b9212015b chore(deps): update graalvm/setup-graalvm digest to 01ed653 2025-03-03 15:18:50 +00:00
Jérémie Panzer
293292f341 Merge pull request #1709 from Athou/renovate/graalvm-setup-graalvm-digest
chore(deps): update graalvm/setup-graalvm digest to 271a696
2025-03-03 16:18:21 +01:00
renovate[bot]
57d8a4dbb1 chore(deps): update graalvm/setup-graalvm digest to 271a696 2025-03-03 11:35:48 +00:00
renovate[bot]
e104f531f9 chore(deps): lock file maintenance 2025-03-03 02:42:48 +00:00
Athou
bf1361926f don't host by default 2025-03-02 19:21:07 +01:00
Athou
cc4f4d9eb4 remove dev:typescript, we don't need it anymore with the vite checker plugin 2025-03-02 19:20:24 +01:00
Athou
706bad26f1 use typesafe mocks 2025-03-02 19:18:51 +01:00
Athou
4ecefe6491 reduce tooltip delay for all tests 2025-03-02 19:18:27 +01:00
Athou
937e7353ce build regexp only once 2025-03-02 15:49:02 +01:00
Athou
1dcf76fc0a remove warning about missing index during tests 2025-03-02 15:49:02 +01:00
renovate[bot]
9d794dcad7 fix(deps): update dependency @fontsource/open-sans to ^5.2.5 2025-03-02 15:49:02 +01:00
Athou
d11b666755 remove vitest-mock-extended as vitest now exposes a vi.mocked() function 2025-03-02 15:49:02 +01:00
Athou
7a444e4861 add tests for ActionButton 2025-03-02 15:49:02 +01:00
Athou
5992795579 fix tooltips not showing up in mobile view 2025-03-02 15:49:02 +01:00
Athou
4441d76a7f Merge remote-tracking branch 'origin/renovate/patch-fontsource-monorepo' 2025-03-02 11:39:21 +01:00
Athou
c1305b56e3 insert jakarta imports where javax import were positioned 2025-03-02 11:37:06 +01:00
Athou
cc0440c029 enable quarkus compression (compression in dropwizard was enabled by default) 2025-03-02 09:45:10 +01:00
renovate[bot]
f65591c170 fix(deps): update dependency @fontsource/open-sans to ^5.2.1 2025-03-02 06:57:09 +00:00
Jérémie Panzer
9a32dce9d1 Merge pull request #1707 from Athou/renovate/fontsource-monorepo
fix(deps): update dependency @fontsource/open-sans to ^5.2.0
2025-03-01 19:59:07 +01:00
renovate[bot]
789bd3edae fix(deps): update dependency @fontsource/open-sans to ^5.2.0 2025-03-01 18:15:36 +00:00
renovate[bot]
256cd426d9 fix(deps): update mantine monorepo to ^7.17.1 2025-03-01 10:40:20 +00:00
Jérémie Panzer
58af2da105 Merge pull request #1706 from Athou/renovate/typescript-5.x
chore(deps): update dependency typescript to ^5.8.2
2025-02-28 21:02:58 +01:00
renovate[bot]
e0de397273 chore(deps): update dependency typescript to ^5.8.2 2025-02-28 19:33:23 +00:00
Jérémie Panzer
75cc3cf29c Merge pull request #1705 from Athou/renovate/docker-setup-qemu-action-digest
chore(deps): update docker/setup-qemu-action digest to 2910929
2025-02-28 17:11:02 +01:00
renovate[bot]
af60758e2a chore(deps): update docker/setup-qemu-action digest to 2910929 2025-02-28 14:32:17 +00:00
Jérémie Panzer
01180e95a2 Merge pull request #1704 from Athou/renovate/docker-setup-qemu-action-digest
chore(deps): update docker/setup-qemu-action digest to 5964de0
2025-02-26 21:15:41 +01:00
renovate[bot]
fa683ef7e1 chore(deps): update docker/setup-qemu-action digest to 5964de0 2025-02-26 19:20:27 +00:00
Jérémie Panzer
462d17a429 Merge pull request #1703 from Athou/renovate/docker-setup-buildx-action-digest
chore(deps): update docker/setup-buildx-action digest to b5ca514
2025-02-26 20:20:04 +01:00
Jérémie Panzer
17f71a40d4 Merge pull request #1702 from Athou/renovate/docker-build-push-action-digest
chore(deps): update docker/build-push-action digest to 471d1dc
2025-02-26 20:19:54 +01:00
renovate[bot]
de91a3a05a chore(deps): update docker/setup-buildx-action digest to b5ca514 2025-02-26 16:46:20 +00:00
renovate[bot]
ead587ee88 chore(deps): update docker/build-push-action digest to 471d1dc 2025-02-26 16:46:16 +00:00
Jérémie Panzer
62b3e6fb3a Merge pull request #1700 from Athou/renovate/actions-download-artifact-digest
chore(deps): update actions/download-artifact digest to cc20338
2025-02-26 17:46:01 +01:00
Jérémie Panzer
037ff15045 Merge pull request #1701 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.19.1 (minor)
2025-02-26 17:45:45 +01:00
renovate[bot]
ed35b06934 fix(deps): update quarkus.version to v3.19.1 2025-02-26 15:39:08 +00:00
renovate[bot]
3cfb1a13a7 chore(deps): update actions/download-artifact digest to cc20338 2025-02-26 15:38:48 +00:00
renovate[bot]
d04745d859 fix(deps): update dependency axios to ^1.8.1 2025-02-26 10:29:47 +00:00
Jérémie Panzer
58b18f36c5 Merge pull request #1699 from Athou/renovate/axios-1.x
fix(deps): update dependency axios to ^1.8.0
2025-02-26 08:10:25 +01:00
renovate[bot]
7282d18d8f fix(deps): update dependency axios to ^1.8.0 2025-02-26 06:46:03 +00:00
Jérémie Panzer
8e58fa22b4 Merge pull request #1698 from Athou/renovate/vite-6.x
chore(deps): update dependency vite to ^6.2.0
2025-02-25 05:09:34 +01:00
renovate[bot]
58d6eb2c5a chore(deps): update dependency vite to ^6.2.0 2025-02-25 03:36:32 +00:00
renovate[bot]
2f7c7498e2 chore(deps): update dependency vitest to ^3.0.7 2025-02-24 18:16:11 +00:00
renovate[bot]
bcf8dcd551 chore(deps): lock file maintenance 2025-02-24 05:39:25 +00:00
Jérémie Panzer
511f0a60bb Merge pull request #1697 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.6.0
2025-02-24 06:37:30 +01:00
renovate[bot]
72db0d815f fix(deps): update dependency @reduxjs/toolkit to ^2.6.0 2025-02-24 01:36:04 +00:00
renovate[bot]
280d0b7fdd chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.3 2025-02-23 19:49:59 +00:00
Athou
42e4575cb7 release 5.6.1 2025-02-23 20:49:01 +01:00
Jérémie Panzer
28a4bb403a Merge pull request #1691 from dcelasun/arch-package
Mention Arch package
2025-02-23 20:47:57 +01:00
Athou
cca3c907db documentation is now hosted on github pages 2025-02-23 20:23:02 +01:00
Athou
1a5b932742 upload generated documentation to github pages 2025-02-23 20:05:04 +01:00
Jérémie Panzer
a1d3f3008a Merge pull request #1693 from Athou/renovate/ncipollo-release-action-digest
chore(deps): update ncipollo/release-action digest to 440c8c1
2025-02-23 08:22:14 +01:00
Jérémie Panzer
902f2efbd2 Merge pull request #1694 from Athou/renovate/vitest-mock-extended-3.x
chore(deps): update dependency vitest-mock-extended to v3
2025-02-23 08:21:47 +01:00
renovate[bot]
2e534af146 chore(deps): update dependency vitest-mock-extended to v3 2025-02-22 17:50:06 +00:00
renovate[bot]
23ca30c3c2 chore(deps): update ncipollo/release-action digest to 440c8c1 2025-02-22 17:49:45 +00:00
Athou
517eedad00 Merge branch 'generated-properties' 2025-02-22 11:12:16 +01:00
Jérémie Panzer
216ea1fb42 Merge pull request #1692 from Athou/renovate/actions-upload-artifact-digest
chore(deps): update actions/upload-artifact digest to 4cec3d8
2025-02-22 11:11:34 +01:00
Athou
640d1a0ce3 add a tool to generate a properties file from configuration (#1691) 2025-02-22 08:03:01 +01:00
renovate[bot]
bba7425b5f chore(deps): update actions/upload-artifact digest to 4cec3d8 2025-02-21 22:15:42 +00:00
D. Can Celasun
7a1a49bfb4 Mention Arch package 2025-02-21 13:02:59 +00:00
Jérémie Panzer
e451e6698c Merge pull request #1690 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.14.0
2025-02-21 13:52:18 +01:00
renovate[bot]
9af3f21404 chore(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.0 2025-02-21 09:32:56 +00:00
renovate[bot]
7b14a9c0c2 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v2.44.3 2025-02-21 02:12:51 +00:00
Jérémie Panzer
0b65cc9510 Merge pull request #1689 from Athou/renovate/vite-plugin-checker-0.x
chore(deps): update dependency vite-plugin-checker to ^0.9.0
2025-02-20 18:29:10 +01:00
renovate[bot]
7879ab9b61 chore(deps): update dependency vite-plugin-checker to ^0.9.0 2025-02-20 15:11:34 +00:00
Athou
e6bebcafb3 allow iframes in feed entries (#1688) 2025-02-20 10:07:45 +01:00
renovate[bot]
3b465cebb7 fix(deps): update quarkus.version to v3.18.4 2025-02-19 20:28:09 +00:00
renovate[bot]
aeb211be06 chore(deps): update dependency vite to ^6.1.1 2025-02-19 18:26:04 +00:00
Jérémie Panzer
ad992aea7b Merge pull request #1687 from Athou/renovate/docker-build-push-action-digest
chore(deps): update docker/build-push-action digest to 0adf995
2025-02-19 19:25:11 +01:00
renovate[bot]
d848f72a0b chore(deps): update docker/build-push-action digest to 0adf995 2025-02-19 17:00:18 +00:00
Athou
0db087908d remove "jakarta.ws.rs.WebApplicationException" from the errors displayed in the client 2025-02-19 13:08:43 +01:00
Jérémie Panzer
42138d04d6 Merge pull request #1685 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.2.0
2025-02-19 10:16:26 +01:00
renovate[bot]
4522a9d0d5 fix(deps): update dependency react-router-dom to ^7.2.0 2025-02-19 06:32:35 +00:00
Jérémie Panzer
7440fcad0e Merge pull request #1686 from Athou/renovate/react-icons-5.x
fix(deps): update dependency react-icons to ^5.5.0
2025-02-19 07:31:05 +01:00
renovate[bot]
fc51c1882f fix(deps): update dependency react-icons to ^5.5.0 2025-02-19 05:47:14 +00:00
renovate[bot]
e24498b31f chore(deps): update dependency vitest to ^3.0.6 2025-02-18 14:27:16 +00:00
Athou
60fdc79563 don't expose rome's FeedException 2025-02-18 08:57:24 +01:00
Athou
6729ebc6ea throw a specific exception if we can't parse the url's content (#1684) 2025-02-18 07:41:02 +01:00
Athou
c8ff216ce5 README update 2025-02-17 21:23:38 +01:00
Jérémie Panzer
98c4150cfe Merge pull request #1683 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to ^7.17.0 (minor)
2025-02-17 21:11:53 +01:00
renovate[bot]
128332d710 fix(deps): update mantine monorepo to ^7.17.0 2025-02-17 19:31:07 +00:00
renovate[bot]
eabcb519a4 chore(deps): update react monorepo 2025-02-17 11:01:27 +00:00
renovate[bot]
5e14cead3d chore(deps): lock file maintenance 2025-02-17 01:44:54 +00:00
renovate[bot]
b601f938ff chore(deps): update ibm-semeru-runtimes docker tag to open-21.0.6_7-jre (#1682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-16 21:26:14 +00:00
renovate[bot]
4acfda32d0 chore(deps): update dependency @types/react to ^19.0.9 2025-02-16 13:16:31 +00:00
Athou
54da4e6839 release 5.6.0 2025-02-16 14:14:30 +01:00
Athou
3a6b4c588c PRs and renovate now build the docker images regardless of the branch/tag 2025-02-15 10:20:39 +01:00
Athou
48071b9fd1 PRs now build the docker images but don't push them 2025-02-15 10:18:16 +01:00
Athou
f519aa039f block local addresses to prevent SSRF attacks 2025-02-14 16:20:04 +01:00
Athou
dc3e5476a1 reload the tree when we receive a websocket notification about an unknown feed 2025-02-14 16:16:07 +01:00
Athou
903035ecfc formatting 2025-02-14 16:16:07 +01:00
Athou
13ad57da10 make sure the tree has been reloaded before navigating to the new feed subscription 2025-02-14 16:16:06 +01:00
Athou
44bc24c22a ubuntu-22.04-arm is supposed to be more stable 2025-02-14 16:16:06 +01:00
Athou
97f90405fc try to fix flaky IT test 2025-02-14 16:16:06 +01:00
renovate[bot]
0fc2a0b022 fix(deps): update dependency @monaco-editor/react to ^4.7.0 2025-02-13 19:39:46 +00:00
Jérémie Panzer
89eb641704 Merge pull request #1679 from Athou/renovate/graalvm-setup-graalvm-digest
chore(deps): update graalvm/setup-graalvm digest to b0cb26a
2025-02-13 06:22:29 +01:00
renovate[bot]
c53da9f631 chore(deps): update graalvm/setup-graalvm digest to b0cb26a 2025-02-12 22:32:09 +00:00
renovate[bot]
998868e63a fix(deps): update quarkus.version to v3.18.3 2025-02-12 18:26:21 +00:00
Athou
93f22d2351 reduce max interval to 4h 2025-02-12 18:17:39 +01:00
Athou
c3782bd7d2 also constrain to lower bound 2025-02-12 18:04:56 +01:00
Athou
f330349397 update documentation 2025-02-12 17:31:46 +01:00
Athou
99c973c8c2 change the default value of empirical interval calculation (#1677) 2025-02-12 17:26:38 +01:00
Athou
469420b5bf feed refresh engine previously hardcoded values are now configurable (#1677) 2025-02-12 17:08:20 +01:00
Athou
bde556d41f start to back off when we repeatedly receive a 429 2025-02-12 08:00:27 +01:00
Jérémie Panzer
bf6c2d7beb Merge pull request #1678 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.14.0
2025-02-11 16:03:32 +01:00
renovate[bot]
fa62ca21e0 chore(deps): update node.js to v22.14.0 2025-02-11 11:47:44 +00:00
renovate[bot]
7dcf76da84 fix(deps): update dependency interweave to ^13.1.1 2025-02-10 21:40:32 +01:00
renovate[bot]
3dc80fa762 chore(deps): lock file maintenance 2025-02-10 01:47:04 +00:00
Athou
dbce12492b release 5.5.0 2025-02-09 16:31:06 +01:00
renovate[bot]
85f5eaffec fix(deps): update mantine monorepo to ^7.16.3 2025-02-09 06:12:54 +00:00
Athou
106276351e use React 19 features to be able to remove unmaintained React Helmet 2025-02-07 20:13:13 +01:00
Athou
961fb6a464 redoc upgrade 2025-02-07 19:42:39 +01:00
Jérémie Panzer
ac3d9ef57f Merge pull request #1675 from Athou/renovate/docker-setup-qemu-action-digest
chore(deps): update docker/setup-qemu-action digest to 4574d27
2025-02-06 19:55:54 +01:00
Jérémie Panzer
3478ee4815 Merge pull request #1674 from Athou/renovate/docker-setup-buildx-action-digest
chore(deps): update docker/setup-buildx-action digest to f7ce87c
2025-02-06 19:55:49 +01:00
renovate[bot]
3dc02d7ba1 chore(deps): update docker/setup-qemu-action digest to 4574d27 2025-02-06 16:38:04 +00:00
renovate[bot]
c886f8b83c chore(deps): update docker/setup-buildx-action digest to f7ce87c 2025-02-06 16:38:00 +00:00
renovate[bot]
4a2154d0b3 fix(deps): update quarkus.version to v3.18.2 2025-02-05 19:35:32 +00:00
Jérémie Panzer
ba530d5019 Merge pull request #1673 from Athou/renovate/vite-6.x
chore(deps): update dependency vite to ^6.1.0
2025-02-05 20:34:57 +01:00
renovate[bot]
85b6209c52 chore(deps): update dependency vite to ^6.1.0 2025-02-05 16:58:47 +00:00
Athou
7ff86a5e31 make audio enclosures fill available width 2025-02-05 16:51:23 +01:00
Athou
8edd6a1e2d correctly handle 0 as a Retry-Header value (#1671) 2025-02-05 07:50:10 +01:00
Jérémie Panzer
6e65ed49e9 Merge pull request #1670 from Athou/renovate/com.microsoft.playwright-playwright-1.x
chore(deps): update dependency com.microsoft.playwright:playwright to v1.50.0
2025-02-04 23:29:26 +01:00
renovate[bot]
711b01abfa chore(deps): update dependency com.microsoft.playwright:playwright to v1.50.0 2025-02-04 22:01:19 +00:00
renovate[bot]
c7014ca2a1 chore(deps): update dependency vitest to ^3.0.5 2025-02-03 16:31:55 +00:00
renovate[bot]
a3984cd959 chore(deps): lock file maintenance 2025-02-03 08:00:36 +00:00
Athou
8d85b1bcba tweak tests to be more resilient 2025-02-03 08:55:26 +01:00
Athou
c451eee406 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.4.2
remove workaround that is no longer needed
2025-02-02 15:58:59 +01:00
Jérémie Panzer
8f42135996 Merge pull request #1669 from Athou/renovate/linguijs-monorepo
fix(deps): update linguijs monorepo to ^5.2.0 (minor)
2025-02-01 16:28:59 +01:00
renovate[bot]
2c26aeed17 fix(deps): update linguijs monorepo to ^5.2.0 2025-02-01 14:12:40 +00:00
renovate[bot]
e2c4aa998b fix(deps): update dependency react-router-dom to ^7.1.5 2025-02-01 13:20:46 +00:00
Athou
c9e3b7f349 renovate already builds on push, don't trigger twice when it opens a PR 2025-02-01 14:19:50 +01:00
Athou
ebb4e52ba7 don't use lingui before it's initialized 2025-02-01 12:32:44 +01:00
Jérémie Panzer
1ddfdfb12e Merge pull request #1666 from Athou/renovate/quarkus.version
fix(deps): update quarkus.version to v3.18.1 (minor)
2025-01-31 07:47:00 +01:00
Jérémie Panzer
81f16aea62 Merge pull request #1667 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11.1.0
2025-01-31 07:25:16 +01:00
renovate[bot]
429ec193c8 fix(deps): update dependency react-router-dom to ^7.1.4 2025-01-30 18:19:26 +00:00
renovate[bot]
732b714448 chore(deps): update dependency npm to v11.1.0 2025-01-30 01:05:55 +00:00
renovate[bot]
82e0405ad9 fix(deps): update quarkus.version to v3.18.1 2025-01-29 20:55:23 +00:00
Athou
9ef002fcd1 swagger-ui-react is no longer used 2025-01-29 15:06:00 +01:00
Athou
ec938e416c README clarification 2025-01-28 10:32:04 +01:00
Athou
37cf711cbc add support for the Retry-After header sent by OpenRSS 2025-01-27 07:48:19 +01:00
renovate[bot]
de441e4ff7 chore(deps): lock file maintenance 2025-01-27 01:07:29 +00:00
renovate[bot]
46251526b6 fix(deps): update dependency @reduxjs/toolkit to ^2.5.1 2025-01-26 22:09:50 +00:00
Jérémie Panzer
67eeea0b06 Merge pull request #1664 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.21.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.2
2025-01-26 23:09:03 +01:00
renovate[bot]
b49ccc4cd9 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.2 2025-01-26 16:48:25 +00:00
renovate[bot]
8586a8b57b fix(deps): update mantine monorepo to ^7.16.2 2025-01-26 13:53:50 +00:00
Jérémie Panzer
d9f63786a8 Merge pull request #1663 from Athou/renovate/swagger-ui-react-4.x
chore(deps): update dependency @types/swagger-ui-react to ^4.19.0
2025-01-26 14:53:04 +01:00
renovate[bot]
8f0c8b68b9 chore(deps): update dependency @types/swagger-ui-react to ^4.19.0 2025-01-26 12:40:20 +00:00
Jérémie Panzer
15e574c5c4 Merge pull request #1662 from Athou/renovate/docker-build-push-action-digest
chore(deps): update docker/build-push-action digest to ca877d9
2025-01-24 11:21:15 +01:00
renovate[bot]
fe532242b4 chore(deps): update docker/build-push-action digest to ca877d9 2025-01-24 09:35:09 +00:00
renovate[bot]
fb48ff0858 chore(deps): update dependency vitest to ^3.0.4 2025-01-23 21:13:02 +00:00
Athou
8d850639d7 remove branches-ignore because it applies to target branch 2025-01-23 22:11:53 +01:00
Athou
ee73195915 add github actions permissions 2025-01-23 21:50:27 +01:00
Athou
72d9dad61b fix "an artifact with this name already exists on the workflow run" 2025-01-23 21:50:12 +01:00
Athou
fde8dab8cd simplify youtube channels url detection 2025-01-23 21:49:52 +01:00
Athou
dae5efa787 allow next Java LTS version 2025-01-23 21:49:28 +01:00
Jérémie Panzer
3c067140fd Merge pull request #1661 from Athou/renovate/patch-react-monorepo
chore(deps): update dependency @types/react to ^19.0.8
2025-01-23 18:39:30 +01:00
renovate[bot]
4ccbe81e87 chore(deps): update dependency @types/react to ^19.0.8 2025-01-23 13:31:56 +00:00
Jérémie Panzer
3d5d93bb72 Merge pull request #1660 from Athou/renovate/patch-quarkus.version
fix(deps): update quarkus.version to v3.17.8 (patch)
2025-01-22 21:55:17 +01:00
renovate[bot]
4138b6eb9b fix(deps): update quarkus.version to v3.17.8 2025-01-22 18:33:36 +00:00
Jérémie Panzer
9c39c95a9b Merge pull request #1659 from Athou/renovate/pin-dependencies
chore(deps): pin dependencies
2025-01-22 10:53:56 +01:00
Jérémie Panzer
32b2bf99a4 Merge pull request #1658 from Athou/renovate/node-22.13.x
chore(deps): update node.js to v22.13.1
2025-01-22 08:19:38 +01:00
renovate[bot]
cf459876af chore(deps): update node.js to v22.13.1 2025-01-22 06:53:04 +00:00
renovate[bot]
6698bd74b5 chore(deps): pin dependencies 2025-01-22 06:52:59 +00:00
Athou
c81d06e5f3 pin github actions 2025-01-22 07:52:09 +01:00
renovate[bot]
b12a78dc84 fix(deps): update dependency tss-react to ^4.9.15 2025-01-21 21:34:41 +00:00
renovate[bot]
b076587e44 chore(deps): update dependency vitest to ^3.0.3 2025-01-21 17:42:28 +00:00
renovate[bot]
bb12f16bea chore(deps): update dependency vite to ^6.0.11 2025-01-21 12:35:00 +00:00
renovate[bot]
e80caadd12 chore(deps): update dependency vite to ^6.0.10 2025-01-20 21:35:21 +00:00
renovate[bot]
846d93f2b2 chore(deps): lock file maintenance 2025-01-20 19:18:35 +00:00
Steven Conaway
0ed6f6ef9c chore(deps): move to react@^19 (#1657)
* chore(deps): move to react@^19

* chore(deps): manually override old peer dependencies

* chore(deps): upgrade rollup-plugin-visualizer

* chore(deps): remove `package-lock.json` and `node_modules/` and regen lockfile

* chore(deps): remove randomly added dependencies

* chore(deps): change override for react@^19 peer dep
2025-01-20 19:59:42 +01:00
renovate[bot]
15992dcb80 chore(deps): update dependency vite to ^6.0.9 2025-01-20 14:11:24 +00:00
renovate[bot]
1a5c399b54 chore(deps): lock file maintenance 2025-01-20 01:15:47 +00:00
Athou
5e92f9ffb8 we can skip the docker step altogether for PRs 2025-01-19 21:40:30 +01:00
renovate[bot]
71164d1b69 fix(deps): update mantine monorepo to ^7.16.1 2025-01-19 13:51:46 +00:00
renovate[bot]
6947670fe6 fix(deps): update dependency react-router-dom to ^7.1.3 2025-01-17 22:16:53 +00:00
renovate[bot]
30810e37b9 chore(deps): update dependency vitest to ^3.0.2 2025-01-17 21:52:28 +00:00
Athou
b17b2767b0 run CI on pull requests 2025-01-17 22:40:47 +01:00
Athou
d37cf5bbcf release 5.4.0 2025-01-17 17:15:09 +01:00
Athou
045baba705 use github actions to build a native arm64 docker image 2025-01-17 16:12:05 +01:00
renovate[bot]
3623dc8e1d chore(deps): update dependency vitest to ^3.0.1 2025-01-16 20:17:53 +00:00
renovate[bot]
2610c37067 fix(deps): update swagger.version to v2.2.28 2025-01-16 18:17:44 +00:00
renovate[bot]
286b69a646 fix(deps): update dependency react-router-dom to ^7.1.2 2025-01-16 15:56:44 +00:00
Jérémie Panzer
9673f27090 Merge pull request #1656 from Athou/renovate/major-vitest-monorepo
chore(deps): update dependency vitest to v3
2025-01-16 16:55:55 +01:00
renovate[bot]
0722599f6d chore(deps): update dependency vitest to v3 2025-01-16 14:17:05 +00:00
Jérémie Panzer
1df40d8370 Merge pull request #1655 from Athou/renovate/redoc-2.x
fix(deps): update dependency redoc to ^2.3.0
2025-01-16 15:15:28 +01:00
renovate[bot]
457e4ec69e fix(deps): update dependency redoc to ^2.3.0 2025-01-16 13:56:26 +00:00
renovate[bot]
647310a45f fix(deps): update quarkus.version to v3.17.7 2025-01-15 17:22:28 +00:00
renovate[bot]
e85c92f216 chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v2.44.2 2025-01-15 02:04:18 +00:00
renovate[bot]
d93b0dbfd4 fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.30 2025-01-14 20:40:37 +00:00
Jérémie Panzer
b4e61ef547 Merge pull request #1654 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo to ^7.16.0 (minor)
2025-01-14 14:14:01 +01:00
Jérémie Panzer
71dffbba46 Merge pull request #1653 from Athou/renovate/debian-12.x
chore(deps): update debian docker tag to v12.9
2025-01-14 14:13:51 +01:00
renovate[bot]
2c0b0c4e3b fix(deps): update mantine monorepo to ^7.16.0 2025-01-14 12:49:52 +00:00
renovate[bot]
d868e58e1e chore(deps): update debian docker tag to v12.9 2025-01-14 12:49:31 +00:00
renovate[bot]
90eb2095bf chore(deps): lock file maintenance 2025-01-13 01:27:25 +00:00
Athou
62d3ed16e6 remove DOCTYPE declarations (#1260) 2025-01-10 16:18:49 +01:00
Jérémie Panzer
74f7c48818 Merge pull request #1652 from Athou/renovate/jsdom-26.x
chore(deps): update dependency jsdom to v26
2025-01-10 15:43:55 +01:00
renovate[bot]
23fe9c29ed chore(deps): update dependency jsdom to v26 2025-01-09 10:23:05 +00:00
renovate[bot]
8f7be8278a chore(deps): update dependency typescript to ^5.7.3 (#1651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 05:40:40 +00:00
renovate[bot]
49118b6ea0 fix(deps): update quarkus.version to v3.17.6 2025-01-08 17:50:38 +00:00
Jérémie Panzer
d97bd04ae2 Merge pull request #1649 from Athou/renovate/com.diffplug.spotless-spotless-maven-plugin-2.x
chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v2.44.1
2025-01-08 18:50:20 +01:00
Jérémie Panzer
8d11309b64 Merge pull request #1650 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.13.0
2025-01-08 18:50:07 +01:00
renovate[bot]
68c24e4cb8 chore(deps): update node.js to v22.13.0 2025-01-08 17:21:57 +00:00
renovate[bot]
4e43e0235f chore(deps): update dependency com.diffplug.spotless:spotless-maven-plugin to v2.44.1 2025-01-08 15:35:52 +00:00
renovate[bot]
62b79a9625 fix(deps): update mantine monorepo to ^7.15.3 2025-01-08 15:35:49 +00:00
renovate[bot]
cb0706808c chore(deps): lock file maintenance 2025-01-06 02:01:57 +00:00
renovate[bot]
ffd5704b1e chore(deps): update dependency vite to ^6.0.7 2025-01-02 23:21:46 +00:00
Jérémie Panzer
3987077e5a Merge pull request #1647 from Athou/renovate/io.github.hakky54-sslcontext-kickstart-for-apache5-9.x
fix(deps): update dependency io.github.hakky54:sslcontext-kickstart-for-apache5 to v9
2025-01-01 16:02:38 +01:00
renovate[bot]
2e01a76784 fix(deps): update dependency io.github.hakky54:sslcontext-kickstart-for-apache5 to v9 2025-01-01 13:58:06 +00:00
Athou
8254093f5f fix tests failing because pubDate is older than a year 2024-12-30 08:07:03 +01:00
Jérémie Panzer
0b06526756 Merge pull request #1646 from Athou/renovate/lock-file-maintenance
chore(deps): lock file maintenance
2024-12-30 07:20:00 +01:00
renovate[bot]
06731ae76d chore(deps): lock file maintenance 2024-12-30 00:18:52 +00:00
Jérémie Panzer
9a59453792 Merge pull request #1645 from Athou/renovate/patch-fontsource-monorepo
fix(deps): update dependency @fontsource/open-sans to ^5.1.1
2024-12-29 19:01:50 +01:00
renovate[bot]
c195a52c89 fix(deps): update dependency @fontsource/open-sans to ^5.1.1 2024-12-29 14:30:46 +00:00
Jérémie Panzer
3d7924f953 Merge pull request #1644 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.21.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.1
2024-12-29 10:20:33 +01:00
renovate[bot]
f29efd7fae chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.1 2024-12-28 15:55:17 +00:00
Jérémie Panzer
157bff3c83 Merge pull request #1643 from Athou/renovate/rollup-plugin-visualizer-5.13.x
chore(deps): update dependency rollup-plugin-visualizer to ^5.13.1
2024-12-28 13:41:58 +01:00
renovate[bot]
5c17bbc36d chore(deps): update dependency rollup-plugin-visualizer to ^5.13.1 2024-12-27 11:16:46 +00:00
Jérémie Panzer
c85e72e70c Merge pull request #1642 from Athou/renovate/rollup-plugin-visualizer-5.x
chore(deps): update dependency rollup-plugin-visualizer to ^5.13.0
2024-12-27 12:16:03 +01:00
renovate[bot]
01150f67e1 chore(deps): update dependency rollup-plugin-visualizer to ^5.13.0 2024-12-27 10:55:17 +00:00
Jérémie Panzer
75aca7aa6f Merge pull request #1638 from bestZwei/patch-1
Update zh/messages.po
2024-12-27 05:05:22 +01:00
zwei
affde7e43c Update messages.po
add a few Chinese Translations
2024-12-26 22:49:36 +08:00
renovate[bot]
b9b1b53235 chore(deps): update dependency vite to ^6.0.6 2024-12-26 05:23:50 +00:00
renovate[bot]
708ebb8abc fix(deps): update dependency react-router-dom to ^7.1.1 2024-12-23 18:42:33 +00:00
renovate[bot]
83e763df0a fix(deps): update mantine monorepo to ^7.15.2 2024-12-23 11:22:09 +00:00
Jérémie Panzer
0ff812c1ea Merge pull request #1637 from Athou/renovate/lock-file-maintenance
chore(deps): lock file maintenance
2024-12-23 12:21:17 +01:00
renovate[bot]
3e9dd6d8e2 chore(deps): lock file maintenance 2024-12-23 10:39:01 +00:00
Jérémie Panzer
23af73e847 Merge pull request #1626 from Athou/renovate/mantine-monorepo
fix(deps): update mantine monorepo (minor)
2024-12-23 11:37:18 +01:00
renovate[bot]
e79e4719fd fix(deps): update mantine monorepo 2024-12-23 10:17:49 +00:00
Jérémie Panzer
23fef98432 Merge pull request #1636 from Athou/renovate/react-router-monorepo
fix(deps): update dependency react-router-dom to ^7.1.0
2024-12-21 10:50:32 +01:00
renovate[bot]
22478252e7 fix(deps): update dependency react-router-dom to ^7.1.0 2024-12-21 02:23:37 +00:00
Jérémie Panzer
76b1f3cd35 Merge pull request #1635 from Athou/renovate/vite-6.0.x
chore(deps): update dependency vite to ^6.0.5
2024-12-20 22:47:21 +01:00
renovate[bot]
420d73ec6a chore(deps): update dependency vite to ^6.0.5 2024-12-20 11:53:07 +00:00
renovate[bot]
e0211cfa0c chore(deps): update dependency @types/react to ^18.3.18 2024-12-20 02:18:48 +00:00
renovate[bot]
25a92c651c fix(deps): update quarkus.version to v3.17.5 2024-12-19 20:26:08 +00:00
renovate[bot]
0781205c69 chore(deps): update dependency vite to ^6.0.4 2024-12-19 11:15:48 +00:00
Jérémie Panzer
5102dd5e30 Merge pull request #1613 from Athou/renovate/vite-6.x
chore(deps): update dependency vite to v6
2024-12-16 21:30:14 +01:00
renovate[bot]
6ccfc3fd67 chore(deps): update dependency vite to v6 2024-12-16 20:14:47 +00:00
Athou
2791ed91ab lingui update 2024-12-16 21:11:54 +01:00
Jérémie Panzer
f40c198233 Merge pull request #1634 from Athou/renovate/npm-11.x
chore(deps): update dependency npm to v11
2024-12-16 20:57:57 +01:00
renovate[bot]
003dc63121 chore(deps): update dependency npm to v11 2024-12-16 19:36:39 +00:00
renovate[bot]
f8ef1e2a99 chore(deps): update dependency @types/react to ^18.3.17 2024-12-16 15:42:17 +00:00
renovate[bot]
14c7078940 fix(deps): update querydsl.version to v6.10.1 2024-12-16 00:30:43 +00:00
Jérémie Panzer
074836d3e8 Merge pull request #1632 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v6.10 (minor)
2024-12-14 06:59:55 +01:00
renovate[bot]
0cdbc144b3 fix(deps): update querydsl.version to v6.10 2024-12-13 20:09:27 +00:00
Jérémie Panzer
dc63ec24c0 Merge pull request #1630 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.0
2024-12-12 22:42:41 +01:00
renovate[bot]
6d4c6c36a5 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.21.0 2024-12-12 20:31:27 +00:00
renovate[bot]
464af5f4d9 fix(deps): update swagger.version to v2.2.27 2024-12-11 18:13:04 +00:00
renovate[bot]
aa94a46a3d fix(deps): update quarkus.version to v3.17.4 2024-12-11 16:27:30 +00:00
renovate[bot]
8542197dc3 chore(deps): update react monorepo 2024-12-11 06:15:47 +00:00
Jérémie Panzer
64d77eaef4 Merge pull request #1628 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.5.0
2024-12-11 07:14:49 +01:00
Jérémie Panzer
675ef8794c Merge pull request #1627 from Athou/renovate/react-redux-9.x
fix(deps): update dependency react-redux to ^9.2.0
2024-12-11 07:14:17 +01:00
renovate[bot]
4bcdbeb516 fix(deps): update dependency @reduxjs/toolkit to ^2.5.0 2024-12-11 04:59:19 +00:00
renovate[bot]
a9f37739fb fix(deps): update dependency react-redux to ^9.2.0 2024-12-11 02:11:18 +00:00
renovate[bot]
5ab0fc19da chore(deps): update dependency @types/react-dom to ^18.3.3 2024-12-09 22:54:32 +00:00
renovate[bot]
7b232425f3 fix(deps): update dependency monaco-editor to ^0.52.2 2024-12-09 19:06:36 +00:00
Jérémie Panzer
c0e7668140 Merge pull request #1625 from Athou/renovate/emotion-monorepo
fix(deps): update dependency @emotion/react to ^11.14.0
2024-12-09 16:02:32 +01:00
renovate[bot]
ae3f059257 fix(deps): update dependency @emotion/react to ^11.14.0 2024-12-09 12:04:31 +00:00
renovate[bot]
d44c7c1e95 fix(deps): update dependency tss-react to ^4.9.14 2024-12-09 07:48:44 +00:00
renovate[bot]
6cd9d134cf chore(deps): update dependency vite-tsconfig-paths to ^5.1.4 2024-12-07 05:53:17 +00:00
renovate[bot]
6f21ba8afc chore(deps): update react monorepo 2024-12-05 19:55:23 +00:00
renovate[bot]
b2fe13c117 chore(deps): update dependency npm to v10.9.2 2024-12-05 01:06:03 +00:00
renovate[bot]
03ece7a262 chore(deps): update dependency @types/react to ^18.3.13 (#1622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 01:05:43 +00:00
renovate[bot]
697fde2d0e chore(deps): update quarkus.version to v3.17.3 2024-12-04 20:09:33 +00:00
renovate[bot]
7f0f85b356 fix(deps): update dependency axios to ^1.7.9 2024-12-04 09:43:27 +00:00
Jérémie Panzer
a7d41debfe Merge pull request #1621 from Athou/renovate/node-22.x
chore(deps): update node.js to v22.12.0
2024-12-04 07:21:31 +01:00
renovate[bot]
57bf758108 chore(deps): update node.js to v22.12.0 2024-12-03 21:03:12 +00:00
Jérémie Panzer
b37d933047 Merge pull request #1620 from Athou/renovate/react-icons-5.x
fix(deps): update dependency react-icons to ^5.4.0
2024-12-03 13:08:38 +01:00
renovate[bot]
80ffef4555 fix(deps): update dependency react-icons to ^5.4.0 2024-12-03 11:31:44 +00:00
renovate[bot]
af5a0002aa fix(deps): update dependency react-router-dom to ^7.0.2 2024-12-03 04:09:43 +00:00
Athou
cd24e412e3 release 5.3.6 2024-12-02 18:50:14 +01:00
Athou
a073d843ab ignore invalid cache control values (#1619) 2024-12-02 18:43:46 +01:00
renovate[bot]
8ccb59ed18 chore(deps): update dependency vitest to ^2.1.8 2024-12-02 14:56:45 +00:00
renovate[bot]
e6dc7d2d0d chore(deps): lock file maintenance 2024-12-02 03:59:25 +00:00
Athou
f7b21ca3f6 release 5.3.5 2024-12-02 04:57:26 +01:00
Athou
df3a1bcdb6 update changelog 2024-12-02 04:54:58 +01:00
renovate[bot]
5bec494a7c fix(deps): update dependency org.jsoup:jsoup to v1.18.3 2024-12-02 03:18:47 +00:00
renovate[bot]
d8eef4dd9f chore(deps): lock file maintenance 2024-12-02 02:00:17 +00:00
renovate[bot]
d80138caf3 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.20.2 2024-12-01 06:04:51 +00:00
Athou
d26c103aa5 migrate to markdown documentation 2024-12-01 06:04:08 +01:00
Athou
249231f57e add support for JDK 23 compilation (#1618) 2024-12-01 05:43:35 +01:00
Athou
7a838cddad honor Cache-Control response header (#1615) 2024-11-29 17:06:57 +01:00
renovate[bot]
477f2cd6db fix(deps): update dependency io.quarkus.platform:quarkus-bom to v3.17.2 2024-11-29 13:10:54 +00:00
Athou
9915f05f73 remove lingui warnings 2024-11-29 14:08:25 +01:00
Athou
0a16bb2fba if width is specified, keep images aspect ratio (#1595) 2024-11-29 13:30:48 +01:00
Jérémie Panzer
3d4faf2406 Merge pull request #1616 from Athou/renovate/major-linguijs-monorepo
chore(deps): update linguijs monorepo to v5 (major)
2024-11-29 07:42:28 +01:00
Jérémie Panzer
63de6fe833 Merge pull request #1617 from Athou/renovate/reduxjs-toolkit-2.x
fix(deps): update dependency @reduxjs/toolkit to ^2.4.0
2024-11-29 07:42:17 +01:00
renovate[bot]
9c6219a58a fix(deps): update dependency @reduxjs/toolkit to ^2.4.0 2024-11-28 22:00:49 +00:00
renovate[bot]
3e664d4287 chore(deps): update linguijs monorepo to v5 2024-11-28 19:15:26 +00:00
renovate[bot]
4c4ffd84f3 chore(deps): update linguijs monorepo to ^4.14.1 2024-11-28 15:13:09 +00:00
renovate[bot]
f555f0e392 fix(deps): update mantine monorepo to ^7.14.3 2024-11-28 14:43:41 +00:00
renovate[bot]
124166738b fix(deps): update dependency io.dropwizard.metrics:metrics-json to v4.2.29 2024-11-28 09:55:36 +00:00
Jérémie Panzer
8b32dcc576 Merge pull request #1614 from Athou/renovate/quarkus.version
fix(deps): update dependency io.quarkus.platform:quarkus-bom to v3.17.0
2024-11-27 16:13:19 +01:00
renovate[bot]
105651215a fix(deps): update dependency io.quarkus.platform:quarkus-bom to v3.17.0 2024-11-27 14:52:32 +00:00
renovate[bot]
d9c6cbd072 fix(deps): update dependency org.jsoup:jsoup to v1.18.2 2024-11-27 13:00:42 +00:00
renovate[bot]
b4c52e06fe chore(deps): update dependency vitest to ^2.1.6 2024-11-27 11:35:05 +00:00
Athou
2565dfe528 remove workaround because quarkus.http.auth.form.cookie-max-age is now available 2024-11-27 10:05:26 +01:00
Athou
b5036c9148 Merge branch 'renovate/quarkus.version' 2024-11-27 10:00:53 +01:00
renovate[bot]
e2c8ddb8f7 chore(deps): update quarkus.version to v3.16.4 2024-11-27 10:00:32 +01:00
renovate[bot]
85fbd284fa chore(deps): update dependency @vitejs/plugin-react to ^4.3.4 2024-11-26 11:15:33 +00:00
renovate[bot]
559fb69a64 fix(deps): update dependency axios to ^1.7.8 2024-11-25 23:25:26 +00:00
renovate[bot]
054c76716a chore(deps): lock file maintenance 2024-11-25 00:49:27 +00:00
renovate[bot]
ba17c9350f fix(deps): update mantine monorepo to ^7.14.2 2024-11-24 14:33:06 +00:00
Jérémie Panzer
781015eea4 Merge pull request #1608 from Athou/renovate/major-react-router-monorepo
fix(deps): update dependency react-router-dom to v7
2024-11-23 15:40:57 +01:00
Jérémie Panzer
13e5c0e8d2 Merge pull request #1607 from Athou/renovate/com.microsoft.playwright-playwright-1.x
chore(deps): update dependency com.microsoft.playwright:playwright to v1.49.0
2024-11-23 15:40:41 +01:00
Jérémie Panzer
4d88a30848 Merge pull request #1597 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.20.1
2024-11-23 15:40:05 +01:00
Jérémie Panzer
19c03de9e4 Merge pull request #1604 from Athou/renovate/debian-12.x
chore(deps): update debian docker tag to v12.8
2024-11-23 15:39:57 +01:00
Jérémie Panzer
e3169c9f2d Merge pull request #1609 from Athou/renovate/querydsl.version
fix(deps): update querydsl.version to v6.9 (minor)
2024-11-23 15:39:46 +01:00
Jérémie Panzer
e90fb0b56f Merge pull request #1611 from Athou/renovate/typescript-5.x
chore(deps): update dependency typescript to ^5.7.2
2024-11-23 15:39:31 +01:00
renovate[bot]
69607a5122 chore(deps): update dependency typescript to ^5.7.2 2024-11-22 19:13:41 +00:00
renovate[bot]
21eb8e6d9f fix(deps): update dependency react-router-dom to v7 2024-11-22 16:56:53 +00:00
renovate[bot]
a28a6b9dc4 fix(deps): update dependency io.github.openfeign.querydsl:querydsl-jpa to v6.9 2024-11-22 14:10:54 +00:00
renovate[bot]
a9cadbafeb chore(deps): update dependency com.microsoft.playwright:playwright to v1.49.0 2024-11-22 03:47:15 +00:00
renovate[bot]
d491af5a8d chore(deps): update dependency npm to v10.9.1 2024-11-22 00:38:41 +00:00
renovate[bot]
39c7934fb8 fix(deps): update dependency @emotion/react to ^11.13.5 2024-11-20 10:41:11 +00:00
renovate[bot]
76eba8cc63 chore(deps): update dependency vite-tsconfig-paths to ^5.1.3 2024-11-19 23:22:57 +00:00
renovate[bot]
7549ff2491 chore(deps): update dependency @types/tinycon to ^0.6.7 2024-11-19 18:55:08 +00:00
renovate[bot]
66cd18bc4b chore(deps): update dependency io.swagger.core.v3:swagger-maven-plugin-jakarta to v2.2.26 2024-11-19 06:34:58 +00:00
renovate[bot]
44d7a2c340 chore(deps): update dependency io.quarkus.platform:quarkus-maven-plugin to v3.15.2 2024-11-19 02:12:42 +00:00
renovate[bot]
d6ee63a01f chore(deps): update ibm-semeru-runtimes docker tag to open-21.0.5_11-jre 2024-11-18 22:02:31 +00:00
renovate[bot]
a495c9cacd fix(deps): update mantine monorepo to ^7.14.1 2024-11-18 04:24:54 +00:00
renovate[bot]
530185d15c chore(deps): lock file maintenance 2024-11-18 01:29:43 +00:00
renovate[bot]
8dd28c25a7 fix(deps): update dependency org.projectlombok:lombok to v1.18.36 2024-11-15 22:09:25 +00:00
renovate[bot]
50884b236c chore(deps): update dependency vitest to ^2.1.5 2024-11-13 16:06:06 +00:00
renovate[bot]
da9fe09e58 chore(deps): update dependency @types/tinycon to ^0.6.6 2024-11-12 09:54:28 +00:00
renovate[bot]
3c24c9aa7a chore(deps): update debian docker tag to v12.8 2024-11-12 02:04:08 +00:00
renovate[bot]
9d10a4b46f fix(deps): update dependency react-router-dom to ^6.28.0 2024-11-12 02:04:06 +00:00
renovate[bot]
d56ed3bd06 chore(deps): update linguijs monorepo to ^4.14.0 2024-11-11 21:19:20 +00:00
renovate[bot]
41c1c429d0 chore(deps): update dependency vite-tsconfig-paths to ^5.1.2 2024-11-11 19:43:20 +00:00
renovate[bot]
1a3d890b40 chore(deps): lock file maintenance (#1603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 19:42:44 +00:00
renovate[bot]
e3ec9b2ccd chore(deps): update dependency vite to ^5.4.11 2024-11-11 13:43:13 +00:00
renovate[bot]
f69878a242 fix(deps): update mantine monorepo to ^7.13.5 2024-11-09 02:31:03 +00:00
renovate[bot]
ea766706fb chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.20.1 2024-11-07 19:31:05 +00:00
renovate[bot]
306507af80 fix(deps): update dependency react-swipeable to ^7.0.2 2024-11-04 17:47:41 +00:00
renovate[bot]
67084783b2 chore(deps): lock file maintenance 2024-11-04 00:09:27 +00:00
renovate[bot]
7cbb75f717 chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.2 2024-11-02 21:48:13 +00:00
renovate[bot]
1c335492d5 chore(deps): update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.2 2024-11-02 20:25:15 +00:00
Jérémie Panzer
de92e74c8e Merge pull request #1594 from Athou/renovate/node-22.x
chore(deps): update dependency node to v22
2024-10-29 18:07:01 +01:00
renovate[bot]
9cbbd30618 chore(deps): update dependency node to v22 2024-10-29 16:43:49 +00:00
Jérémie Panzer
f14f1493c4 Merge pull request #1593 from Athou/renovate/patch-vitest-monorepo
chore(deps): update dependency vitest to ^2.1.4
2024-10-29 00:09:00 +01:00
renovate[bot]
e68c8fdbe1 chore(deps): update dependency vitest to ^2.1.4 2024-10-28 22:13:08 +00:00
renovate[bot]
e094972aa2 fix(deps): update dependency org.apache.httpcomponents.client5:httpclient5 to v5.4.1 2024-10-28 19:56:15 +00:00
renovate[bot]
ff831c6d2b chore(deps): lock file maintenance 2024-10-28 01:19:01 +00:00
Jérémie Panzer
9957cda11a Merge pull request #1592 from Athou/renovate/com.puppycrawl.tools-checkstyle-10.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.19.0
2024-10-26 16:33:49 +02:00
renovate[bot]
6809822000 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v10.19.0 2024-10-26 13:58:03 +00:00
Jérémie Panzer
8048b1a9aa Merge pull request #1591 from Athou/renovate/org.apache.maven.plugins-maven-checkstyle-plugin-3.x
chore(deps): update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.6.0
2024-10-26 05:57:45 +02:00
renovate[bot]
8557bd018a chore(deps): update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.6.0 2024-10-25 18:25:58 +00:00
Jérémie Panzer
183d5fd162 Merge pull request #1590 from Athou/renovate/com.ibm.icu-icu4j-76.x
fix(deps): update dependency com.ibm.icu:icu4j to v76
2024-10-25 17:22:54 +02:00
renovate[bot]
411f86fbeb fix(deps): update dependency com.ibm.icu:icu4j to v76 2024-10-25 06:17:19 +00:00
renovate[bot]
5493046f25 fix(deps): update mantine monorepo to ^7.13.4 2024-10-23 18:02:39 +00:00
331 changed files with 26144 additions and 24383 deletions

3
.gitattributes vendored Normal file
View File

@@ -0,0 +1,3 @@
* text eol=lf
*.cmd text eol=crlf
*.png binary

36
.github/stale.yml vendored
View File

@@ -1,19 +1,19 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- enhancement
- bug
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- enhancement
- bug
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

View File

@@ -1,183 +1,278 @@
name: ci
on: [ push ]
env:
JAVA_VERSION: 21
DOCKER_BUILD_SUMMARY: false
jobs:
build-linux:
runs-on: ubuntu-latest
strategy:
matrix:
database: [ "h2", "postgresql", "mysql", "mariadb" ]
steps:
# Checkout
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# Setup
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "graalvm"
cache: "maven"
# Build & Test
- name: Build with Maven
run: mvn --batch-mode --no-transfer-progress install -Pnative -P${{ matrix.database }}
# Upload artifacts
- name: Upload cross-platform app
uses: actions/upload-artifact@v4
with:
name: commafeed-${{ matrix.database }}-jvm
path: commafeed-server/target/commafeed-*.zip
- name: Upload native executable
uses: actions/upload-artifact@v4
with:
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
path: commafeed-server/target/commafeed-*-runner
# Docker
- name: Login to Container Registry
uses: docker/login-action@v3
if: ${{ github.ref_type == 'tag' || github.ref_name == 'master' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
## tags
- name: Docker build and push tag - native
uses: docker/build-push-action@v6
if: ${{ github.ref_type == 'tag' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.native
push: true
platforms: linux/amd64
tags: |
athou/commafeed:latest-${{ matrix.database }}
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}
- name: Docker build and push tag - jvm
uses: docker/build-push-action@v6
if: ${{ github.ref_type == 'tag' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.jvm
push: true
platforms: linux/amd64,linux/arm64/v8
tags: |
athou/commafeed:latest-${{ matrix.database }}-jvm
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}-jvm
## master
- name: Docker build and push master - native
uses: docker/build-push-action@v6
if: ${{ github.ref_name == 'master' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.native
push: true
platforms: linux/amd64
tags: athou/commafeed:master-${{ matrix.database }}
- name: Docker build and push master - jvm
uses: docker/build-push-action@v6
if: ${{ github.ref_name == 'master' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.jvm
push: true
platforms: linux/amd64,linux/arm64/v8
tags: athou/commafeed:master-${{ matrix.database }}-jvm
build-windows:
runs-on: windows-latest
strategy:
matrix:
database: [ "h2", "postgresql", "mysql", "mariadb" ]
steps:
# Checkout
- name: Configure git to checkout as-is
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# Setup
- name: Set up GraalVM
uses: graalvm/setup-graalvm@v1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "graalvm"
cache: "maven"
# Build & Test
- name: Build with Maven
run: mvn --batch-mode --no-transfer-progress install -Pnative -P${{ matrix.database }} -DskipTests=${{ matrix.database != 'h2' }}
# Upload artifacts
- name: Upload native executable
uses: actions/upload-artifact@v4
with:
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
path: commafeed-server/target/commafeed-*-runner.exe
release:
runs-on: ubuntu-latest
needs:
- build-linux
- build-windows
if: github.ref_type == 'tag'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: commafeed-*
path: ./artifacts
merge-multiple: true
- name: Extract Changelog Entry
uses: mindsers/changelog-reader-action@v2
id: changelog_reader
with:
version: ${{ github.ref_name }}
- name: Create GitHub release
uses: ncipollo/release-action@v1
with:
name: CommaFeed ${{ github.ref_name }}
body: ${{ steps.changelog_reader.outputs.changes }}
artifacts: ./artifacts/*
- name: Update Docker Hub Description
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: athou/commafeed
short-description: ${{ github.event.repository.description }}
readme-filepath: commafeed-server/src/main/docker/README.md
name: ci
permissions:
contents: read
on:
push:
pull_request:
env:
JAVA_VERSION: 21
DOCKER_BUILD_SUMMARY: false
jobs:
build:
if: github.event_name != 'pull_request' || github.actor != 'renovate[bot]' # renovate already triggers the build on pushes
strategy:
matrix:
os: [ "ubuntu-latest", "ubuntu-22.04-arm", "windows-latest" ]
database: [ "h2", "postgresql", "mysql", "mariadb" ]
runs-on: ${{ matrix.os }}
steps:
# Checkout
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0
# Setup
- name: Set up GraalVM
uses: graalvm/setup-graalvm@01ed653ac833fe80569f1ef9f25585ba2811baab # v1
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: "graalvm"
cache: "maven"
- name: Install Playwright dependencies
run: sudo apt-get install -y libgbm1
if: matrix.os != 'windows-latest'
# Build & Test
- name: Build with Maven
run: mvn --batch-mode --no-transfer-progress install -Pnative -P${{ matrix.database }} -DskipTests=${{ matrix.os == 'windows-latest' && matrix.database != 'h2' }}
# Build pages
- name: Create pages directory structure
run: mkdir -p target/pages/documentation/custom-css
- name: Convert readme file to html
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
with:
source: README.md
output: target/pages/index.html
- name: Convert config documentation to html
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
with:
source: commafeed-server/target/quarkus-generated-doc/config/commafeed-server.md
output: target/pages/documentation/index.html
- name: Convert custom css documentation to html
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
with:
source: documentation/CUSTOMCSS.md
output: target/pages/documentation/custom-css/index.html
# Upload artifacts
- name: Upload cross-platform app
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
if: matrix.os == 'ubuntu-latest' # we only need to upload the cross-platform artifact once per database
with:
name: commafeed-${{ matrix.database }}-jvm
path: commafeed-server/target/commafeed-*.zip
- name: Upload native executable
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
path: commafeed-server/target/commafeed-*-runner*
- name: Upload pages
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
if: matrix.os == 'ubuntu-latest' && matrix.database == 'h2' # we only need to upload the pages once
with:
path: target/pages
docker:
runs-on: ubuntu-latest
needs: build
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
strategy:
matrix:
database: [ "h2", "postgresql", "mysql", "mariadb" ]
steps:
# Checkout
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0
# Setup
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
- name: Install required packages
run: sudo apt-get install -y rename unzip
# Prepare artifacts
- name: Download artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
pattern: commafeed-${{ matrix.database }}-*
path: ./artifacts
merge-multiple: true
- name: Set the exec flag on the native executables
run: chmod +x artifacts/*-runner
- name: Rename native executables to match buildx TARGETARCH
run: |
rename 's/x86_64/amd64/g' artifacts/*
rename 's/aarch_64/arm64/g' artifacts/*
- name: Unzip jvm package
run: |
unzip artifacts/*-jvm.zip -d artifacts/extracted-jvm-package
rename 's/commafeed-.*/quarkus-app/g' artifacts/extracted-jvm-package/*
# Docker
- name: Login to Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
if: ${{ env.DOCKERHUB_USERNAME != '' }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
## build but don't push for PRs and renovate
- name: Docker build - native
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.native
push: false
platforms: linux/amd64,linux/arm64/v8
- name: Docker build - jvm
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.jvm
push: false
platforms: linux/amd64,linux/arm64/v8
## build and push tag
- name: Docker build and push tag - native
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
if: ${{ github.ref_type == 'tag' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.native
push: ${{ env.DOCKERHUB_USERNAME != '' }}
platforms: linux/amd64,linux/arm64/v8
tags: |
athou/commafeed:latest-${{ matrix.database }}
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}
- name: Docker build and push tag - jvm
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
if: ${{ github.ref_type == 'tag' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.jvm
push: ${{ env.DOCKERHUB_USERNAME != '' }}
platforms: linux/amd64,linux/arm64/v8
tags: |
athou/commafeed:latest-${{ matrix.database }}-jvm
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}-jvm
## build and push master
- name: Docker build and push master - native
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
if: ${{ github.ref_name == 'master' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.native
push: ${{ env.DOCKERHUB_USERNAME != '' }}
platforms: linux/amd64,linux/arm64/v8
tags: athou/commafeed:master-${{ matrix.database }}
- name: Docker build and push master - jvm
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
if: ${{ github.ref_name == 'master' }}
with:
context: .
file: commafeed-server/src/main/docker/Dockerfile.jvm
push: ${{ env.DOCKERHUB_USERNAME != '' }}
platforms: linux/amd64,linux/arm64/v8
tags: athou/commafeed:master-${{ matrix.database }}-jvm
release:
runs-on: ubuntu-latest
needs:
- build
- docker
permissions:
contents: write
if: github.ref_type == 'tag'
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0
- name: Download artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
pattern: commafeed-*
path: ./artifacts
merge-multiple: true
- name: Set the exec flag on the native executables
run: chmod +x artifacts/*-runner
- name: Extract Changelog Entry
uses: mindsers/changelog-reader-action@32aa5b4c155d76c94e4ec883a223c947b2f02656 # v2
id: changelog_reader
with:
version: ${{ github.ref_name }}
- name: Create GitHub release
uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 # v1
with:
name: CommaFeed ${{ github.ref_name }}
body: ${{ steps.changelog_reader.outputs.changes }}
artifacts: ./artifacts/*
update-dockerhub-description:
runs-on: ubuntu-latest
needs: release
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
fetch-depth: 0
- name: Update Docker Hub Description
uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: athou/commafeed
short-description: ${{ github.event.repository.description }}
readme-filepath: commafeed-server/src/main/docker/README.md
deploy-pages:
runs-on: ubuntu-latest
needs: release
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
id: deployment

View File

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

View File

@@ -1,432 +1,497 @@
# Changelog
## [5.3.4]
- Added support for Internationalized Domain Names (#1588)
## [5.3.3]
- Removed image bottom margins (#1587)
## [5.3.2]
- Fixed an issue that could cause some images from not being rendered correctly (#1587)
## [5.3.1]
- Fixed an issue that could cause some HTTP feeds to return a 400 error (#1572)
## [5.3.0]
- Added a setting to set a cooldown on the "fetch all my feeds" action, disabled by default (#1556)
- Fixed an issue that could cause entries to not correctly load when using the "next" header button (#1557)
## [5.2.0]
- Added an option to keep a number of entries above the selected entry when scrolling
- Added a cache to the HTTP client to reduce the number of requests made to feeds when subscribing (#1431)
- Feeds are no longer refreshed between the moment its last user unsubscribes and the moment the feed is cleaned up (every hour)
- Fixed an issue that could cause entries to not correctly load when using keyboard navigation (#1557)
## [5.1.1]
- Fixed database migration issue when upgrading from 5.0.0 to 5.1.0 on MariaDB (#1544)
- When feeds without unread entries are hidden from the tree, the feed is displayed in the tree until another one is selected (#1543)
## [5.1.0]
- Added a setting for showing/hiding unread count in the browser's tab title/favicon (#1518)
- Fixed an issue that could prevent the app from starting on some systems (#1532)
- Added a cache busting filter for the webapp index.html and openapi documentation to make sure they are always up to date
- Reduced database cleanup log verbosity
## [5.0.2]
- Fix favicon fetching for Youtube channels in native mode when Google auth key is set
- Fix an error that appears in the logs when fetching some favicons
## [5.0.1]
- Configure native compilation to support older CPU architectures (#1524)
## [5.0.0]
CommaFeed is now powered by Quarkus instead of Dropwizard. Read the rationale behind this change in
the [announcement](https://github.com/Athou/commafeed/discussions/1517).
The gist of it is that CommaFeed can now be compiled to a native binary, resulting in blazing fast startup times (around
0.3s) and very low memory footprint (< 50M).
- CommaFeed now has a different package for each supported database.
- If you are deploying CommaFeed with a precompiled package, please
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#download-a-precompiled-package).
- If you are building CommaFeed from sources, please
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#build-from-sources).
- If you are using the Docker image, please read the instructions on
the [Docker Hub page](https://hub.docker.com/r/athou/commafeed).
- Due to the switch to Quarkus, the way CommaFeed is configured is very different (the `config.yml` file is gone).
Please
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#configuration).
Note that a lot of configuration elements have been removed or renamed and are now nested/grouped by feature.
- Added a setting to prevent parsing large feeds to avoid out of memory errors. The default is 5MB.
- Use a different icon for filtering unread entries and marking an entry as read (#1506)
- Added various HTML attributes to ease custom JS/CSS customization (#1507)
- The Redis cache has been removed. There have been multiple enhancements to the feed refresh engine and it is no longer
needed, even for instances with a large number of feeds.
- The H2 migration tool that automatically upgrades H2 databases from format 2 to 3 has been removed. If you're using
the H2 embedded database, please upgrade to at least version 4.3.0 before upgrading to CommaFeed 5.0.0.
## [4.6.0]
- switched from Temurin to OpenJ9 as the JVM used in the Docker image, resulting in memory usage reduction by up to 50%
- fix an issue that could cause old entries to reappear if they were updated by their author (#1486)
- show all entries regardless of their read status when searching with keywords, even if the ui is configured to show
unread entries only
## [4.5.0]
- significantly reduce the time needed to retrieve entries or mark them as read, especially when there are a lot of
entries (#1452)
- fix a race condition where a feed could be refreshed before it was created in the database
- fix an issue that could cause the websocket notification to contain the wrong number of unread entries when using
mysql/mariadb
- fix an error when trying to mark all starred entries as read
- remove the `onlyIds` parameter from REST endpoints since retrieving all the entries is now just as fast
- remove support for microsoft sqlserver because it's not covered with integration tests (please open an issue if you'd
like it back)
## [4.4.1]
- fix vertical scrolling issues with Safari (#1168)
- the default value for new users for the "star entry" button and the "open in new tab" button in the entry headers is
now "on desktop" instead of "always"
- the "keyboard shortcuts" help page now shows "Cmd" instead of "Ctrl" on macOS (#1389)
- remove a superfluous feed fetch when subscribing to a feed (#1431)
- the Docker image now uses Java 21
## [4.4.0]
- add support for sharing using the browser native capabilities if available (#1255)
- add a button in the entry headers to star an entry (#1025)
- add a button in the entry headers to open links in a new tab (#1333)
- add two options in the settings to toggle those buttons
- accept .opml file extension when importing and export with the .opml extension
- the "mark as read" option is no longer shown in the context menu for entries that are too old to be marked as read (
older than `keepStatusDays`) (#1303)
## [4.3.3]
- fix OPML import (#1279)
## [4.3.2]
- added support for unix sockets (#1278)
## [4.3.1]
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database and the database
timezone is not UTC (#1239)
- videos in enclosures can no longer have a width larger than the page (#1240)
## [4.3.0]
- h2 (the embedded database) has been upgraded to 2.2.224
- this version uses a different file format than 2.1.x, the first time you start CommaFeed with this version, the
database will be automatically converted to the new format
- add a setting to completely disable scrolling to selected entry (#1157)
- add a css class reflecting the current view mode to ease custom css rules (#1232)
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database (#1239)
## [4.2.1]
- fix an issue that caused the tree to show an incorrect unread count after a websocket notification because entries
that were already marked as read by a filtering expression were not ignored (#1191)
## [4.2.0]
- add a setting to display the action buttons in the footer instead of in the header on mobile (#1121)
- the websocket notification now contains everything needed to update the UI, the client no longer needs to make an API
call to get the latest data when receiving the notification
- add a workaround to the Fever API for the Unread iOS app (#1188)
- fix an issue that caused dates to be saved incorrectly if the database server and the application server were in
different timezones (#1187)
## [4.1.0]
- it is now possible to open the sidebar on mobile by swiping to the right (#1098)
- swiping to mark entries as read/unread changed from swiping right to left because swiping right now opens the sidebar
- the full hierarchy of categories are now displayed in the category dropdown (#1045)
- added a setting `maxEntriesAgeDays` to delete old entries based on their age during database cleanup.
The setting is disabled by default for existing installations, except for the docker image where it is enabled and set
to 365 days
- if user registrations are disabled on your instance which is the default behavior, users are redirected on the login
page instead of the welcome page when not logged in (#1185)
- the sidebar resizer is no longer shown in the middle of the screen on mobile
- when using the system color scheme and the system is using a dark theme, feed entries no longer flicker on load
- the demo account (if enabled) cannot register custom javascript code anymore
- removed the usage of `toSorted` in the client because older browsers do not support it (#1183)
- the openapi documentation is no longer cached by the browser so you always have access to the latest version
- added a memory management section to the readme, reading it is recommended if you are running CommaFeed on a server
with limited memory
- fixed an issue that caused users without an email address set to be unable to edit their profile (#1184)
## [4.0.0]
- migrated from dropwizard 2 to dropwizard 4, Java 17+ is now required
- entries that were fetched and inserted in the database but not yet shown in the UI are no longer marked as read when
marking all entries as read
- your custom sidebar width is now persisted in the local storage of your browser
- there is now a third color scheme option in addition to light and dark: system (follows the system color scheme)
- added support for youtube playlist favicons
- custom JS code is now executed when the app is done loading instead of when the page is loaded
- the favicon is now correctly returned for feeds that return an invalid content type
- the feed refresh engine now uses httpclient5 with connection pooling and no longer creates a new client for each
request, reducing CPU usage
- updated UI library Mantine to 7.0, improving performance
- the h2 embedded database is now compacted on shutdown to reclaim unused space
- the admin connector on port 8084 is now disabled in config.yml.example. Disabling it in your config.yml is
recommended (see https://github.com/Athou/commafeed/commit/929df60f09cce56020b0962ab111cd8349b271b0)
- migrated documentation from swagger 2 to openapi 3
- added a GET method to the fever api to indicate that the endpoint is working correctly when accessed from a browser
- the websocket connection can now be disabled, the websocket ping interval and the tree reload interval can now be
configured (see config.yml.example)
- the websocket connection now works correctly when the context root of the application is not "/"
- unstable pubsubhubbub support was removed
## [3.10.1]
- swap next and previous buttons (#1159)
- unread count for subscriptions will now be shortened starting at 10k instead of 1k
- increased websocket ping interval to just under a minute to reduce data and battery usage on mobile
- only refresh subscription tree on a timer if websocket connection is unavailable
- the Docker image now uses less memory by returning unused memory to the OS
- add support for Java 21
## [3.10.0]
- added a Fever-compatible API that is usable with mobile clients that support the Fever API (see instructions in
Settings -> Profile)
- long entry titles are no longer shortened in the detailed view
- added the "s" keyboard shortcut to star/unstar entries
- http sessions are now stored in the database (they were stored on disk before)
- fixed an issue that made it impossible to override the database url in a config.yml mounted in the Docker image
## [3.9.0]
- improve performance by disabling the loader when nothing is loading (most noticeable on mobile)
- added a setting to disable the 'mark all as read' confirmation
- added a setting to disable the custom context menu
- if the custom context is enabled, it can still be disabled by pressing the shift key
- the announcement feature is now working again and supports html ('announcement' configuration element in config.yml)
- add support for MariaDB 11+
- fix entry header shortly rendered as mobile on desktop, causing a small visual glitch
- fix an issue that could cause a feed to not refresh correctly if the url was very long
- database cleanup batch size is now configurable
- css parsing errors are no longer logged to the standard output
- fix small errors in the api documentation
## [3.8.1]
- in expanded mode, don't scroll when clicking on the body of the current entry
- improve content cleanup task performance for instances with a very large number of feeds
## [3.8.0]
- add previous and next buttons in the toolbar
- add a setting to always scroll selected entry to the top of the page, even if it fits entirely on screen
- clicking on the body of an entry in expanded mode selects it and marks it as read
- add rich text editor with autocomplete for custom css and js code in settings (desktop only)
- dramatically improve performance while scrolling
- fix broken welcome page mobile layout
- format dates in user locale instead of GMT in relative date popups
## [3.7.0]
- the sidebar is now resizable
- added the "f" keyboard shortcut to hide the sidebar
- added tooltips to relative dates with the exact date
- add a setting to hide commafeed from search engines (exposes a robots.txt file, enabled by default)
- the browser extension unread count now updates when articles are marked as read/unread in the app
- The "b" keyboard shortcut now works as expected on Chrome but requires the browser extension to be installed
- dark mode has been disabled on the api documentation page as it was unreadable
- improvement to the feed refresh queuing logic when "heavy load" mode is enabled
- fix a bug that could prevent feeds and categories from being edited
## [3.6.0]
- add a button to open CommaFeed in a new tab and a button to open options when using the browser extension
- clicking on the entry title in expanded mode now opens the link instead of doing nothing
- add tooltips to buttons when the mobile layout is used on desktop
- redirect the user to the welcome page if the user was deleted from the database
- add link to api documentation on welcome page
- the unread count is now correctly updated when using the "/next" bookmarklet while redis cache is enabled
## [3.5.0]
- add compatibility with the new version of the CommaFeed browser extension
- disable pull-to-refresh on mobile as it messes with vertical scrolling
- add css classes to feed entries to help with custom css rules
- api documentation page no longer requires users to be authenticated
- add a setting to limit the number of feeds a user can subscribe to
- add a setting to disable strict password policy
- add feed refresh engine metrics
- fix redis timeouts
## [3.4.0]
- add support for arm64 docker images
- add divider to visually separate read-only information from form on the profile settings page
- reduce javascript bundle size by 30% by loading only the necessary translations
- add a standalone donate page with all ways to support CommaFeed
- fix an issue introduced in 3.1.0 that could make CommaFeed not refresh feeds as fast as before on instances with lots
of feeds
- fix alignment of icon with text for category tree nodes
- fix alignment of burger button with the rest of the header on mobile
## [3.3.2]
- restore entry selection indicator (left orange border) that was lost with the mantine 6.x upgrade (3.3.0)
- add dividers to visually separate read-only information from forms on feed and category details pages
- reduced javascript bundle size by 10%
## [3.3.1]
- fix long feed names not being shortened to respect tree max width
## [3.3.0]
- there are now database changes, rolling back to 2.x will no longer be possible
- restore support for user custom CSS rules
- add support for user custom JS code that will be executed on page load
## [3.2.0]
- restore the welcome page
- only apply hover effect for unread entries (same as commafeed v2)
- move notifications at the bottom of the screen
- always use https for sharing urls
- add support for redis ACLs
- transition to google analytics v4
## [3.1.0]
- add an even more compact layout
- restore hover effect from commafeed 2.x
- view mode (compact, expanded, ...) is now stored on the device so you can have a different view mode on desktop and
mobile
- fix for the "Illegal attempt to associate a collection with two open sessions." error
- feed fetching workflow is now orchestrated with rxjava, removing a lot of code
## [3.0.1]
- allow env variable substitution in config.yml
- e.g. having a custom config.yml file with `app.session.path=${SOME_ENV_VAR}` will substitute `SOME_ENV_VAR` with its
value
- allow env variable prefixed with `CF_` to override config.yml properties
- e.g. setting `CF_APP_ALLOWREGISTRATIONS=true` will set `app.allowRegistrations` to `true`
## [3.0.0]
- complete overhaul of the UI
- backend and frontend are now in separate maven modules
- no changes to the api or the database
- Docker images are now automatically built and available at https://hub.docker.com/r/athou/commafeed
## [2.6.0]
- add support for media content as a backup for missing content (useful for youtube feeds)
- correctly follow http error code 308 redirects
- fixed a bug that prevented users from deleting their account
- fixed a bug that made commafeed store entry contents multiple times
- fixed a bug that prevented the app to be used as an installed app on mobile devices if the context path of commafeed
was not "/"
- fixed a bug that prevented entries from being "marked as read older than xxx" for a feed that was just added
- removed support for google+ and readability as those services no longer exist
- removed support for deploying on openshift
- removed alphabetical sorting of entries because of really poor performance (title cannot be indexed)
- improve performance for instances with the heavy load setting enabled by preventing CommaFeed from fetching feeds from
users that did not log in for a long time
- various dependencies upgrades (notably dropwizard from 1.3 to 2.1)
- add support for mariadb
- add support for java17+ runtime
- various security improvements
## [2.5.0]
- unread count is now displayed in a favicon badge when supported
- the user agent string for the bot fetching feeds is now configurable
- feed parsing performance improvements
- support for java9+ runtime
- can now properly start from an empty postgresql database
## [2.4.0]
- users were not able to change password or delete account
- fix api key generation
- feed entries can now be sorted alphabetically
- fix facebook sharing
- fix layout on iOS
- postgresql driver update (fix for postgres 9.6)
- various internationalization fixes
- security fixes
## [2.3.0]
- dropwizard upgrade 0.9.1
- feed enclosures are hidden if they already displayed in the content
- fix youtube favicons
- various internationalization fixes
## [2.2.0]
- fix youtube and instagram favicon fetching
- mark as read filter was lost when a feed was rearranged with drag&drop
- feed entry categories are now displayed if available
- various performance and dependencies upgrades
- java8 is now required
## [2.1.0]
- dropwizard upgrade to 0.8.0
- you have to remove the "app.contextPath" setting from your yml file, you can optionally use
server.applicationContextPath instead
- new setting app.maxFeedCapacity for deleting old entries
- ability to set filtering expressions for subscriptions to automatically mark new entries as read based on title,
content, author or url.
- ability to use !keyword or -keyword to exclude a keyword from a search query
- facebook feeds now show user favicon instead of facebook favicon
- new dark theme 'nightsky'
## [2.0.3]
- internet explorer ajax cache workaround
- categories are now deletable again
- openshift support is back
- youtube feeds now show user favicon instead of youtube favicon
## [2.0.2]
- api using the api key is now working again
- context path is now configurable in config.yml (see app.contextPath in config.yml.example)
- fix login on firefox when fields are autofilled by the browser
- fix scrolling of subscriptions list on mobile
- user is now logged in after registration
- fix link to documentation on home page and about page
- fields autocomplete is disabled on the profile page
- users are able to delete their account again
- chinese and malaysian translation files are now correctly loaded
- software version in user-agent when fetching feeds is no longer hardcoded
- admin settings page is now read only, settings are configured in config.yml
- added link to metrics on the admin settings page
- Rome (rss library) upgrade to 1.5.0
## [2.0.1]
- the redis pool no longer throws an exception when it is unable to aquire a new connection
## [2.0.0]
- The backend has been completely rewritten using Dropwizard instead of TomEE, resulting in a lot less memory
consumption and better overall performances.
See the README on how to build CommaFeed from now on.
- CommaFeed should no longer fetch the same feed multiple times in a row
- Users can use their username or email to log in
# Changelog
## [5.10.0]
- Add an indicator next to each feed's unread count in the tree to show when new entries are discovered while the app is open (#1762)
- Feeds with uppercase HTTP:// or HTTPS:// URLs are now correctly handled again
- The aarch64 native executable now also works on the Raspberry Pi 5 (#1795)
- Improve general performance of the UI by reducing the number of re-renders, especially when a lot of entries are displayed (#1087)
## [5.9.0]
- A lot of CSS classes have been added to the elements of the application to ease custom CSS rules (#1757)
- Added a link in the README to the [documentation](https://athou.github.io/commafeed/documentation/custom-css/) of the new CSS classes
- Static resources are now cached for much longer (#1782)
## [5.8.0]
- A color picker is now available on the settings page to change the orange accent of the application (#1598)
- A font size slider is now available to change the size of the text of feed entries (#1462)
- The "mark all as read" confirmation setting now also applies to the "shift+a" keyboard shortcut (#1744)
- CommaFeed wil try to match the language of the browser before defaulting to english (#1767)
- The default value for the number of entries to keep above the selected entry when scrolling is now 1 instead of 0 to match what other feed readers do
## [5.7.0]
- Add Shift+J/Shift+K keyboard shortcuts to navigate to the next/previous feed or category with unread entries (#1558)
- Add the referrer "no-referrer" meta to index.html (#1724)
- Load custom JS code when the app is done loading (#1724)
- Correctly handle feeds that return an unmodified Last-Modified header but a different ETag header (#1746)
- Restore gzip compression of responses that was accidentaly disabled since 5.0.0
- Fix tooltips not showing up in mobile view
- Fix the bookmarklet generator on the About page
## [5.6.1]
- Restore support for iframes in feed entries (#1688)
- There is now a package available for Arch Linux thanks to @dcelasun (#1691)
## [5.6.0]
- To better respect the bandwidth of feed owners, the default value of `commafeed.feed-refresh.interval-empirical` is now true. This means feeds no longer refresh exactly every 5 minutes (the default value of `commafeed.feed-refresh.interval`) but between 5 minutes and 4 hours (the default value of the new `commafeed.feed-refresh.max-interval` setting). The interval is calculated based on feed activity, so highly active feeds refresh more often (#1677)
- Many previously hardcoded values used in feed refresh interval calculation are now exposed as settings (#1677)
- Access to local addresses is now blocked to mitigate server-side request forgery (SSRF) attacks, which could potentially expose internal resources. You might want to disable the new `commafeed.http-client.block-local-addresses` setting if you subscribe to feeds only available on your local network and you trust all your users
- If a feed responds with a "429 - Too many requests" response, a backoff mechanism is triggered when the response does not contain a "Retry-After" header
## [5.5.0]
- CommaFeed now honors the Retry-After response header and will not try to refresh a feed sooner than the value of this header
- Audio enclosures (e.g. podcasts) now fill available entry width
- Fix an issue with some labels not correctly internationalized
## [5.4.0]
- An arm64 native executable is now available for download on the releases page
- The native executable Docker image now supports arm64
- Fixed an issue with feeds that declared an invalid DOCTYPE (#1260)
## [5.3.6]
- Ignore invalid Cache-Control header values (#1619)
## [5.3.5]
- Fixed an issue with the aspect ratio of images of some feeds (#1595)
- CommaFeed now honors the Cache-Control response header and will not try to refresh a feed sooner than its max-age property (#1615)
- Added support for compilation with JDK 23+. If you're building CommaFeed from sources with a JDK 17 or 21, you may need to update it to the most recent patch version to support `-proc:full` (#1618)
## [5.3.4]
- Added support for Internationalized Domain Names (#1588)
## [5.3.3]
- Removed image bottom margins (#1587)
## [5.3.2]
- Fixed an issue that could cause some images from not being rendered correctly (#1587)
## [5.3.1]
- Fixed an issue that could cause some HTTP feeds to return a 400 error (#1572)
## [5.3.0]
- Added a setting to set a cooldown on the "fetch all my feeds" action, disabled by default (#1556)
- Fixed an issue that could cause entries to not correctly load when using the "next" header button (#1557)
## [5.2.0]
- Added an option to keep a number of entries above the selected entry when scrolling
- Added a cache to the HTTP client to reduce the number of requests made to feeds when subscribing (#1431)
- Feeds are no longer refreshed between the moment its last user unsubscribes and the moment the feed is cleaned up (every hour)
- Fixed an issue that could cause entries to not correctly load when using keyboard navigation (#1557)
## [5.1.1]
- Fixed database migration issue when upgrading from 5.0.0 to 5.1.0 on MariaDB (#1544)
- When feeds without unread entries are hidden from the tree, the feed is displayed in the tree until another one is selected (#1543)
## [5.1.0]
- Added a setting for showing/hiding unread count in the browser's tab title/favicon (#1518)
- Fixed an issue that could prevent the app from starting on some systems (#1532)
- Added a cache busting filter for the webapp index.html and openapi documentation to make sure they are always up to date
- Reduced database cleanup log verbosity
## [5.0.2]
- Fix favicon fetching for Youtube channels in native mode when Google auth key is set
- Fix an error that appears in the logs when fetching some favicons
## [5.0.1]
- Configure native compilation to support older CPU architectures (#1524)
## [5.0.0]
CommaFeed is now powered by Quarkus instead of Dropwizard. Read the rationale behind this change in
the [announcement](https://github.com/Athou/commafeed/discussions/1517).
The gist of it is that CommaFeed can now be compiled to a native binary, resulting in blazing fast startup times (around
0.3s) and very low memory footprint (< 50M).
- CommaFeed now has a different package for each supported database.
- If you are deploying CommaFeed with a precompiled package, please
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#download-a-precompiled-package).
- If you are building CommaFeed from sources, please
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#build-from-sources).
- If you are using the Docker image, please read the instructions on
the [Docker Hub page](https://hub.docker.com/r/athou/commafeed).
- Due to the switch to Quarkus, the way CommaFeed is configured is very different (the `config.yml` file is gone).
Please
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#configuration).
Note that a lot of configuration elements have been removed or renamed and are now nested/grouped by feature.
- Added a setting to prevent parsing large feeds to avoid out of memory errors. The default is 5MB.
- Use a different icon for filtering unread entries and marking an entry as read (#1506)
- Added various HTML attributes to ease custom JS/CSS customization (#1507)
- The Redis cache has been removed. There have been multiple enhancements to the feed refresh engine and it is no longer
needed, even for instances with a large number of feeds.
- The H2 migration tool that automatically upgrades H2 databases from format 2 to 3 has been removed. If you're using
the H2 embedded database, please upgrade to at least version 4.3.0 before upgrading to CommaFeed 5.0.0.
## [4.6.0]
- switched from Temurin to OpenJ9 as the JVM used in the Docker image, resulting in memory usage reduction by up to 50%
- fix an issue that could cause old entries to reappear if they were updated by their author (#1486)
- show all entries regardless of their read status when searching with keywords, even if the ui is configured to show
unread entries only
## [4.5.0]
- significantly reduce the time needed to retrieve entries or mark them as read, especially when there are a lot of
entries (#1452)
- fix a race condition where a feed could be refreshed before it was created in the database
- fix an issue that could cause the websocket notification to contain the wrong number of unread entries when using
mysql/mariadb
- fix an error when trying to mark all starred entries as read
- remove the `onlyIds` parameter from REST endpoints since retrieving all the entries is now just as fast
- remove support for microsoft sqlserver because it's not covered with integration tests (please open an issue if you'd
like it back)
## [4.4.1]
- fix vertical scrolling issues with Safari (#1168)
- the default value for new users for the "star entry" button and the "open in new tab" button in the entry headers is
now "on desktop" instead of "always"
- the "keyboard shortcuts" help page now shows "Cmd" instead of "Ctrl" on macOS (#1389)
- remove a superfluous feed fetch when subscribing to a feed (#1431)
- the Docker image now uses Java 21
## [4.4.0]
- add support for sharing using the browser native capabilities if available (#1255)
- add a button in the entry headers to star an entry (#1025)
- add a button in the entry headers to open links in a new tab (#1333)
- add two options in the settings to toggle those buttons
- accept .opml file extension when importing and export with the .opml extension
- the "mark as read" option is no longer shown in the context menu for entries that are too old to be marked as read (
older than `keepStatusDays`) (#1303)
## [4.3.3]
- fix OPML import (#1279)
## [4.3.2]
- added support for unix sockets (#1278)
## [4.3.1]
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database and the database
timezone is not UTC (#1239)
- videos in enclosures can no longer have a width larger than the page (#1240)
## [4.3.0]
- h2 (the embedded database) has been upgraded to 2.2.224
- this version uses a different file format than 2.1.x, the first time you start CommaFeed with this version, the
database will be automatically converted to the new format
- add a setting to completely disable scrolling to selected entry (#1157)
- add a css class reflecting the current view mode to ease custom css rules (#1232)
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database (#1239)
## [4.2.1]
- fix an issue that caused the tree to show an incorrect unread count after a websocket notification because entries
that were already marked as read by a filtering expression were not ignored (#1191)
## [4.2.0]
- add a setting to display the action buttons in the footer instead of in the header on mobile (#1121)
- the websocket notification now contains everything needed to update the UI, the client no longer needs to make an API
call to get the latest data when receiving the notification
- add a workaround to the Fever API for the Unread iOS app (#1188)
- fix an issue that caused dates to be saved incorrectly if the database server and the application server were in
different timezones (#1187)
## [4.1.0]
- it is now possible to open the sidebar on mobile by swiping to the right (#1098)
- swiping to mark entries as read/unread changed from swiping right to left because swiping right now opens the sidebar
- the full hierarchy of categories are now displayed in the category dropdown (#1045)
- added a setting `maxEntriesAgeDays` to delete old entries based on their age during database cleanup.
The setting is disabled by default for existing installations, except for the docker image where it is enabled and set
to 365 days
- if user registrations are disabled on your instance which is the default behavior, users are redirected on the login
page instead of the welcome page when not logged in (#1185)
- the sidebar resizer is no longer shown in the middle of the screen on mobile
- when using the system color scheme and the system is using a dark theme, feed entries no longer flicker on load
- the demo account (if enabled) cannot register custom javascript code anymore
- removed the usage of `toSorted` in the client because older browsers do not support it (#1183)
- the openapi documentation is no longer cached by the browser so you always have access to the latest version
- added a memory management section to the readme, reading it is recommended if you are running CommaFeed on a server
with limited memory
- fixed an issue that caused users without an email address set to be unable to edit their profile (#1184)
## [4.0.0]
- migrated from dropwizard 2 to dropwizard 4, Java 17+ is now required
- entries that were fetched and inserted in the database but not yet shown in the UI are no longer marked as read when
marking all entries as read
- your custom sidebar width is now persisted in the local storage of your browser
- there is now a third color scheme option in addition to light and dark: system (follows the system color scheme)
- added support for youtube playlist favicons
- custom JS code is now executed when the app is done loading instead of when the page is loaded
- the favicon is now correctly returned for feeds that return an invalid content type
- the feed refresh engine now uses httpclient5 with connection pooling and no longer creates a new client for each
request, reducing CPU usage
- updated UI library Mantine to 7.0, improving performance
- the h2 embedded database is now compacted on shutdown to reclaim unused space
- the admin connector on port 8084 is now disabled in config.yml.example. Disabling it in your config.yml is
recommended (see https://github.com/Athou/commafeed/commit/929df60f09cce56020b0962ab111cd8349b271b0)
- migrated documentation from swagger 2 to openapi 3
- added a GET method to the fever api to indicate that the endpoint is working correctly when accessed from a browser
- the websocket connection can now be disabled, the websocket ping interval and the tree reload interval can now be
configured (see config.yml.example)
- the websocket connection now works correctly when the context root of the application is not "/"
- unstable pubsubhubbub support was removed
## [3.10.1]
- swap next and previous buttons (#1159)
- unread count for subscriptions will now be shortened starting at 10k instead of 1k
- increased websocket ping interval to just under a minute to reduce data and battery usage on mobile
- only refresh subscription tree on a timer if websocket connection is unavailable
- the Docker image now uses less memory by returning unused memory to the OS
- add support for Java 21
## [3.10.0]
- added a Fever-compatible API that is usable with mobile clients that support the Fever API (see instructions in
Settings -> Profile)
- long entry titles are no longer shortened in the detailed view
- added the "s" keyboard shortcut to star/unstar entries
- http sessions are now stored in the database (they were stored on disk before)
- fixed an issue that made it impossible to override the database url in a config.yml mounted in the Docker image
## [3.9.0]
- improve performance by disabling the loader when nothing is loading (most noticeable on mobile)
- added a setting to disable the 'mark all as read' confirmation
- added a setting to disable the custom context menu
- if the custom context is enabled, it can still be disabled by pressing the shift key
- the announcement feature is now working again and supports html ('announcement' configuration element in config.yml)
- add support for MariaDB 11+
- fix entry header shortly rendered as mobile on desktop, causing a small visual glitch
- fix an issue that could cause a feed to not refresh correctly if the url was very long
- database cleanup batch size is now configurable
- css parsing errors are no longer logged to the standard output
- fix small errors in the api documentation
## [3.8.1]
- in expanded mode, don't scroll when clicking on the body of the current entry
- improve content cleanup task performance for instances with a very large number of feeds
## [3.8.0]
- add previous and next buttons in the toolbar
- add a setting to always scroll selected entry to the top of the page, even if it fits entirely on screen
- clicking on the body of an entry in expanded mode selects it and marks it as read
- add rich text editor with autocomplete for custom css and js code in settings (desktop only)
- dramatically improve performance while scrolling
- fix broken welcome page mobile layout
- format dates in user locale instead of GMT in relative date popups
## [3.7.0]
- the sidebar is now resizable
- added the "f" keyboard shortcut to hide the sidebar
- added tooltips to relative dates with the exact date
- add a setting to hide commafeed from search engines (exposes a robots.txt file, enabled by default)
- the browser extension unread count now updates when articles are marked as read/unread in the app
- The "b" keyboard shortcut now works as expected on Chrome but requires the browser extension to be installed
- dark mode has been disabled on the api documentation page as it was unreadable
- improvement to the feed refresh queuing logic when "heavy load" mode is enabled
- fix a bug that could prevent feeds and categories from being edited
## [3.6.0]
- add a button to open CommaFeed in a new tab and a button to open options when using the browser extension
- clicking on the entry title in expanded mode now opens the link instead of doing nothing
- add tooltips to buttons when the mobile layout is used on desktop
- redirect the user to the welcome page if the user was deleted from the database
- add link to api documentation on welcome page
- the unread count is now correctly updated when using the "/next" bookmarklet while redis cache is enabled
## [3.5.0]
- add compatibility with the new version of the CommaFeed browser extension
- disable pull-to-refresh on mobile as it messes with vertical scrolling
- add css classes to feed entries to help with custom css rules
- api documentation page no longer requires users to be authenticated
- add a setting to limit the number of feeds a user can subscribe to
- add a setting to disable strict password policy
- add feed refresh engine metrics
- fix redis timeouts
## [3.4.0]
- add support for arm64 docker images
- add divider to visually separate read-only information from form on the profile settings page
- reduce javascript bundle size by 30% by loading only the necessary translations
- add a standalone donate page with all ways to support CommaFeed
- fix an issue introduced in 3.1.0 that could make CommaFeed not refresh feeds as fast as before on instances with lots
of feeds
- fix alignment of icon with text for category tree nodes
- fix alignment of burger button with the rest of the header on mobile
## [3.3.2]
- restore entry selection indicator (left orange border) that was lost with the mantine 6.x upgrade (3.3.0)
- add dividers to visually separate read-only information from forms on feed and category details pages
- reduced javascript bundle size by 10%
## [3.3.1]
- fix long feed names not being shortened to respect tree max width
## [3.3.0]
- there are now database changes, rolling back to 2.x will no longer be possible
- restore support for user custom CSS rules
- add support for user custom JS code that will be executed on page load
## [3.2.0]
- restore the welcome page
- only apply hover effect for unread entries (same as commafeed v2)
- move notifications at the bottom of the screen
- always use https for sharing urls
- add support for redis ACLs
- transition to google analytics v4
## [3.1.0]
- add an even more compact layout
- restore hover effect from commafeed 2.x
- view mode (compact, expanded, ...) is now stored on the device so you can have a different view mode on desktop and
mobile
- fix for the "Illegal attempt to associate a collection with two open sessions." error
- feed fetching workflow is now orchestrated with rxjava, removing a lot of code
## [3.0.1]
- allow env variable substitution in config.yml
- e.g. having a custom config.yml file with `app.session.path=${SOME_ENV_VAR}` will substitute `SOME_ENV_VAR` with its
value
- allow env variable prefixed with `CF_` to override config.yml properties
- e.g. setting `CF_APP_ALLOWREGISTRATIONS=true` will set `app.allowRegistrations` to `true`
## [3.0.0]
- complete overhaul of the UI
- backend and frontend are now in separate maven modules
- no changes to the api or the database
- Docker images are now automatically built and available at https://hub.docker.com/r/athou/commafeed
## [2.6.0]
- add support for media content as a backup for missing content (useful for youtube feeds)
- correctly follow http error code 308 redirects
- fixed a bug that prevented users from deleting their account
- fixed a bug that made commafeed store entry contents multiple times
- fixed a bug that prevented the app to be used as an installed app on mobile devices if the context path of commafeed
was not "/"
- fixed a bug that prevented entries from being "marked as read older than xxx" for a feed that was just added
- removed support for google+ and readability as those services no longer exist
- removed support for deploying on openshift
- removed alphabetical sorting of entries because of really poor performance (title cannot be indexed)
- improve performance for instances with the heavy load setting enabled by preventing CommaFeed from fetching feeds from
users that did not log in for a long time
- various dependencies upgrades (notably dropwizard from 1.3 to 2.1)
- add support for mariadb
- add support for java17+ runtime
- various security improvements
## [2.5.0]
- unread count is now displayed in a favicon badge when supported
- the user agent string for the bot fetching feeds is now configurable
- feed parsing performance improvements
- support for java9+ runtime
- can now properly start from an empty postgresql database
## [2.4.0]
- users were not able to change password or delete account
- fix api key generation
- feed entries can now be sorted alphabetically
- fix facebook sharing
- fix layout on iOS
- postgresql driver update (fix for postgres 9.6)
- various internationalization fixes
- security fixes
## [2.3.0]
- dropwizard upgrade 0.9.1
- feed enclosures are hidden if they already displayed in the content
- fix youtube favicons
- various internationalization fixes
## [2.2.0]
- fix youtube and instagram favicon fetching
- mark as read filter was lost when a feed was rearranged with drag&drop
- feed entry categories are now displayed if available
- various performance and dependencies upgrades
- java8 is now required
## [2.1.0]
- dropwizard upgrade to 0.8.0
- you have to remove the "app.contextPath" setting from your yml file, you can optionally use
server.applicationContextPath instead
- new setting app.maxFeedCapacity for deleting old entries
- ability to set filtering expressions for subscriptions to automatically mark new entries as read based on title,
content, author or url.
- ability to use !keyword or -keyword to exclude a keyword from a search query
- facebook feeds now show user favicon instead of facebook favicon
- new dark theme 'nightsky'
## [2.0.3]
- internet explorer ajax cache workaround
- categories are now deletable again
- openshift support is back
- youtube feeds now show user favicon instead of youtube favicon
## [2.0.2]
- api using the api key is now working again
- context path is now configurable in config.yml (see app.contextPath in config.yml.example)
- fix login on firefox when fields are autofilled by the browser
- fix scrolling of subscriptions list on mobile
- user is now logged in after registration
- fix link to documentation on home page and about page
- fields autocomplete is disabled on the profile page
- users are able to delete their account again
- chinese and malaysian translation files are now correctly loaded
- software version in user-agent when fetching feeds is no longer hardcoded
- admin settings page is now read only, settings are configured in config.yml
- added link to metrics on the admin settings page
- Rome (rss library) upgrade to 1.5.0
## [2.0.1]
- the redis pool no longer throws an exception when it is unable to aquire a new connection
## [2.0.0]
- The backend has been completely rewritten using Dropwizard instead of TomEE, resulting in a lot less memory
consumption and better overall performances.
See the README on how to build CommaFeed from now on.
- CommaFeed should no longer fetch the same feed multiple times in a row
- Users can use their username or email to log in

60
LICENSE
View File

@@ -1,31 +1,31 @@
Apache License, Version 2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
Apache License, Version 2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License.
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License.
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty.
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability.
While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View File

@@ -17,6 +17,7 @@ Google Reader inspired self-hosted RSS reader, based on Quarkus and React/TypeSc
- REST API
- Fever-compatible API for native mobile apps
- Can automatically mark articles as read based on user-defined rules
- Highly customizable with [custom CSS](https://athou.github.io/commafeed/documentation/custom-css) and JavaScript
- [Browser extension](https://github.com/Athou/commafeed-browser-extension)
- Compiles to native code for blazing fast startup and low memory usage
- Supports 4 databases
@@ -48,17 +49,17 @@ system and database of choice.
There are two types of packages:
- The `linux-x86_64` and `windows-x86_64` packages are compiled natively and contain an executable that can be run
- The `linux-x86_64`, `linux-aarch_64` and `windows-x86_64` packages are compiled natively and contain an executable that can be run
directly.
- The `jvm` package is a zip file containing all `.jar` files required to run the application. This package works on all
platforms and is started with `java -jar quarkus-run.jar`.
platforms but requires a JRE and is started with `java -jar quarkus-run.jar`.
If available for your operating system, the native package is recommended because it has a faster startup time and lower
memory usage.
### Build from sources
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
./mvnw clean package [-P<database> [-Pnative]] [-DskipTests]
- `<database>` can be one of `h2`, `postgresql`, `mysql` or `mariadb`. The default is `h2`.
- `-Pnative` compiles the application to native code. This requires GraalVM to be installed (`GRAALVM_HOME` environment
@@ -73,6 +74,10 @@ When the build is complete:
- if you used the native profile, the executable is located at
`commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]`
### Distribution packages
- Arch Linux users can use [the CommaFeed package on AUR](https://aur.archlinux.org/pkgbase/commafeed), which builds native binaries with GraalVM for all supported databases.
## Configuration
CommaFeed doesn't require any configuration to run with its embedded database (H2). The database file will be stored in
@@ -94,13 +99,13 @@ There are multiple ways to configure CommaFeed:
- a `config/application.properties` [properties](https://en.wikipedia.org/wiki/.properties) file relative to the working
directory (keys in kebab-case)
- Command line arguments prefixed with `-D` (keys in kebab-case)
- Command line arguments each prefixed with `-D` (keys in kebab-case)
- Environment variables (keys in UPPER_CASE)
- a `.env` file in the working directory (keys in UPPER_CASE)
The properties file is recommended because CommaFeed will be able to warn about invalid properties and typos.
All [CommaFeed settings](commafeed-server/doc/commafeed.adoc) are optional and have sensible default values.
All [CommaFeed settings](https://athou.github.io/commafeed/documentation) are optional and have sensible default values.
When logging in, credentials are stored in an encrypted cookie. The encryption key is randomly generated at startup,
meaning that you will have to log back in after each restart of the application. To prevent this, you can set the

View File

@@ -13,6 +13,14 @@
"arrowParentheses": "asNeeded"
}
},
"linter": {
"rules": {
"correctness": {
"noUnusedImports": "error",
"noUnusedVariables": "error"
}
}
},
"files": {
"ignore": ["dist", "node_modules", "target", "target-ide"]
}

View File

@@ -1,11 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<link rel="manifest" href="manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>CommaFeed</title>
<meta charset="UTF-8" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<link rel="manifest" href="manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="referrer" content="no-referrer" />
<title>CommaFeed</title>
</head>
<body>
<div id="root"></div>

File diff suppressed because it is too large Load Diff

View File

@@ -4,77 +4,82 @@
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite --host",
"dev:typescript": "tsc --watch",
"dev": "vite",
"dev:host": "vite --host",
"build": "tsc && vite build",
"preview": "vite preview",
"test": "vitest",
"test:ci": "vitest run",
"lint": "biome check ./src",
"lint:fix": "biome check --write ./src",
"lint": "biome check",
"lint:fix": "biome check --write",
"i18n:extract": "lingui extract --clean"
},
"dependencies": {
"@emotion/react": "^11.13.3",
"@fontsource/open-sans": "^5.1.0",
"@lingui/core": "^4.13.0",
"@lingui/macro": "^4.13.0",
"@lingui/react": "^4.13.0",
"@mantine/core": "^7.13.3",
"@mantine/form": "^7.13.3",
"@mantine/hooks": "^7.13.3",
"@mantine/modals": "^7.13.3",
"@mantine/notifications": "^7.13.3",
"@mantine/spotlight": "^7.13.3",
"@monaco-editor/react": "^4.6.0",
"@reduxjs/toolkit": "^2.3.0",
"axios": "^1.7.7",
"@emotion/react": "^11.14.0",
"@fontsource/open-sans": "^5.2.5",
"@lingui/core": "^5.3.1",
"@lingui/react": "^5.3.1",
"@mantine/core": "^8.0.2",
"@mantine/form": "^8.0.2",
"@mantine/hooks": "^8.0.2",
"@mantine/modals": "^8.0.2",
"@mantine/notifications": "^8.0.2",
"@mantine/spotlight": "^8.0.2",
"@monaco-editor/react": "^4.7.0",
"@reduxjs/toolkit": "^2.8.2",
"axios": "^1.9.0",
"dayjs": "^1.11.13",
"escape-string-regexp": "^5.0.0",
"interweave": "^13.1.0",
"monaco-editor": "^0.52.0",
"interweave": "^13.1.1",
"monaco-editor": "^0.52.2",
"mousetrap": "^1.6.5",
"react": "^18.3.1",
"react": "^19.1.0",
"react-async-hook": "^4.0.0",
"react-contexify": "^6.0.0",
"react-device-detect": "^2.2.3",
"react-dom": "^18.3.1",
"react-dom": "^19.1.0",
"react-draggable": "^4.4.6",
"react-ga4": "^2.1.0",
"react-helmet": "^6.1.0",
"react-icons": "^5.3.0",
"react-icons": "^5.5.0",
"react-infinite-scroller": "^1.2.6",
"react-redux": "^9.1.2",
"react-router-dom": "^6.27.0",
"react-swipeable": "^7.0.1",
"redoc": "^2.2.0",
"react-redux": "^9.2.0",
"react-router-dom": "^7.6.1",
"react-swipeable": "^7.0.2",
"redoc": "^2.5.0",
"style-to-object": "^1.0.8",
"throttle-debounce": "^5.0.2",
"tinycon": "^0.6.8",
"tss-react": "^4.9.13",
"tss-react": "^4.9.18",
"websocket-heartbeat-js": "^1.1.3"
},
"devDependencies": {
"@biomejs/biome": "^1.9.4",
"@lingui/cli": "^4.13.0",
"@lingui/vite-plugin": "^4.13.0",
"@lingui/babel-plugin-lingui-macro": "^5.3.1",
"@lingui/cli": "^5.3.1",
"@lingui/vite-plugin": "^5.3.1",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/mousetrap": "^1.6.15",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@types/react-helmet": "^6.1.11",
"@types/react": "^19.1.6",
"@types/react-dom": "^19.1.5",
"@types/react-infinite-scroller": "^1.2.5",
"@types/swagger-ui-react": "^4.18.3",
"@types/throttle-debounce": "^5.0.2",
"@types/tinycon": "^0.6.5",
"@vitejs/plugin-react": "^4.3.3",
"@types/tinycon": "^0.6.7",
"@vitejs/plugin-react": "^4.5.0",
"babel-plugin-macros": "^3.1.0",
"jsdom": "^25.0.1",
"rollup-plugin-visualizer": "^5.12.0",
"typescript": "^5.6.3",
"vite": "^5.4.10",
"vite-plugin-checker": "^0.8.0",
"vite-tsconfig-paths": "^5.0.1",
"vitest": "^2.1.3",
"vitest-mock-extended": "^2.0.2"
"babel-plugin-react-compiler": "^19.1.0-rc.2",
"jsdom": "^26.1.0",
"rollup-plugin-visualizer": "^6.0.0",
"typescript": "^5.8.3",
"vite": "^6.3.5",
"vite-plugin-checker": "^0.9.3",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^3.1.4"
},
"overrides": {
"react-infinite-scroller": {
"react": "^19.1.0"
}
}
}

View File

@@ -1,96 +1,97 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId>
<version>5.3.4</version>
</parent>
<artifactId>commafeed-client</artifactId>
<name>CommaFeed Client</name>
<properties>
<!-- renovate: datasource=node-version depName=node -->
<node.version>v20.18.0</node.version>
<!-- renovate: datasource=npm depName=npm -->
<npm.version>10.9.0</npm.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.15.1</version>
<?m2e ignore?>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
<npmVersion>${npm.version}</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>ci</arguments>
</configuration>
</execution>
<execution>
<id>npm run test</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>run test:ci</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>copy web interface to resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/META-INF/resources</outputDirectory>
<resources>
<resource>
<directory>dist</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId>
<version>5.10.0</version>
</parent>
<artifactId>commafeed-client</artifactId>
<name>CommaFeed Client</name>
<properties>
<!-- renovate: datasource=node-version depName=node -->
<node.version>v22.16.0</node.version>
<!-- renovate: datasource=npm depName=npm -->
<npm.version>11.4.1</npm.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.15.1</version>
<?m2e ignore?>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
<npmVersion>${npm.version}</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>ci</arguments>
</configuration>
</execution>
<execution>
<id>npm run test</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>run test:ci</arguments>
<skip>${skipTests}</skip>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<phase>compile</phase>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>copy web interface to resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/META-INF/resources</outputDirectory>
<resources>
<resource>
<directory>dist</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -12,6 +12,7 @@ import { DisablePullToRefresh } from "components/DisablePullToRefresh"
import { ErrorBoundary } from "components/ErrorBoundary"
import { Header } from "components/header/Header"
import { Tree } from "components/sidebar/Tree"
import { useAppLoading } from "hooks/useAppLoading"
import { useBrowserExtension } from "hooks/useBrowserExtension"
import { useI18n } from "i18n"
import { WelcomePage } from "pages/WelcomePage"
@@ -29,20 +30,20 @@ import { TagDetailsPage } from "pages/app/TagDetailsPage"
import { LoginPage } from "pages/auth/LoginPage"
import { PasswordRecoveryPage } from "pages/auth/PasswordRecoveryPage"
import { RegistrationPage } from "pages/auth/RegistrationPage"
import React, { useEffect } from "react"
import React, { useEffect, useState } from "react"
import { isSafari } from "react-device-detect"
import ReactGA from "react-ga4"
import { Helmet } from "react-helmet"
import { HashRouter, Navigate, Route, Routes, useLocation, useNavigate } from "react-router-dom"
import Tinycon from "tinycon"
function Providers(props: { children: React.ReactNode }) {
const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor
return (
<I18nProvider i18n={i18n}>
<MantineProvider
defaultColorScheme="auto"
theme={{
primaryColor: "orange",
primaryColor: primaryColor,
fontFamily: "Open Sans",
colors: {
// keep using dark colors from mantine v6
@@ -142,11 +143,15 @@ function GoogleAnalyticsHandler() {
return null
}
function UnreadCountTitleHandler({ unreadCount, enabled }: { unreadCount: number; enabled?: boolean }) {
return <Helmet title={enabled && unreadCount > 0 ? `(${unreadCount}) CommaFeed` : "CommaFeed"} />
function UnreadCountTitleHandler({ enabled }: { enabled?: boolean }) {
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCount = categoryUnreadCount(root)
return <title>{enabled && unreadCount > 0 ? `(${unreadCount}) CommaFeed` : "CommaFeed"}</title>
}
function UnreadCountFaviconHandler({ unreadCount, enabled }: { unreadCount: number; enabled?: boolean }) {
function UnreadCountFaviconHandler({ enabled }: { enabled?: boolean }) {
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCount = categoryUnreadCount(root)
useEffect(() => {
if (enabled && unreadCount > 0) {
Tinycon.setBubble(unreadCount)
@@ -170,24 +175,44 @@ function BrowserExtensionBadgeUnreadCountHandler() {
return null
}
function CustomCode() {
return (
<Helmet>
<link rel="stylesheet" type="text/css" href="custom_css.css" />
<script type="text/javascript" src="custom_js.js" />
</Helmet>
)
function CustomJsHandler() {
const [scriptLoaded, setScriptLoaded] = useState(false)
const { loading } = useAppLoading()
useEffect(() => {
if (scriptLoaded || loading) {
return
}
const script = document.createElement("script")
script.src = "custom_js.js"
script.async = true
document.body.appendChild(script)
setScriptLoaded(true)
}, [scriptLoaded, loading])
return null
}
function CustomCssHandler() {
useEffect(() => {
const link = document.createElement("link")
link.rel = "stylesheet"
link.type = "text/css"
link.href = "custom_css.css"
document.head.appendChild(link)
}, [])
return null
}
export function App() {
useI18n()
const root = useAppSelector(state => state.tree.rootCategory)
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const dispatch = useAppDispatch()
const unreadCount = categoryUnreadCount(root)
useEffect(() => {
dispatch(reloadServerInfos())
}, [dispatch])
@@ -195,19 +220,22 @@ export function App() {
return (
<Providers>
<>
<UnreadCountTitleHandler unreadCount={unreadCount} enabled={unreadCountTitle} />
<UnreadCountFaviconHandler unreadCount={unreadCount} enabled={unreadCountFavicon} />
<UnreadCountTitleHandler enabled={unreadCountTitle} />
<UnreadCountFaviconHandler enabled={unreadCountFavicon} />
<BrowserExtensionBadgeUnreadCountHandler />
<CustomJsHandler />
<CustomCssHandler />
{/* disable pull-to-refresh as it messes with vertical scrolling
safari behaves weirdly when overscroll-behavior is set to none so we disable it only for other browsers
https://github.com/Athou/commafeed/issues/1168
*/}
{!isSafari && <DisablePullToRefresh />}
<HashRouter>
<GoogleAnalyticsHandler />
<RedirectHandler />
<AppRoutes />
<CustomCode />
{/* 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>
</>
</Providers>

View File

@@ -1,13 +1,11 @@
import { t } from "@lingui/macro"
import type { IconType } from "react-icons"
import { FaAt } from "react-icons/fa"
import { SiBuffer, SiFacebook, SiGmail, SiInstapaper, SiPocket, SiTumblr, SiX } from "react-icons/si"
import type { Category, Entry, SharingSettings } from "./types"
const categories: Record<string, Category> = {
const categories: Record<string, Omit<Category, "name">> = {
all: {
id: "all",
name: t`All`,
expanded: false,
children: [],
feeds: [],
@@ -15,7 +13,6 @@ const categories: Record<string, Category> = {
},
starred: {
id: "starred",
name: t`Starred`,
expanded: false,
children: [],
feeds: [],
@@ -104,9 +101,13 @@ export const Constants = {
entryId: (entry: Entry) => `entry-id-${entry.id}`,
entryContextMenuId: (entry: Entry) => entry.id,
},
theme: {
defaultPrimaryColor: "orange",
},
tooltip: {
delay: 500,
},
browserExtensionUrl: "https://github.com/Athou/commafeed-browser-extension",
customCssDocumentationUrl: "https://athou.github.io/commafeed/documentation/custom-css",
bitcoinWalletAddress: "1dymfUxqCWpyD7a6rQSqNy4rLVDBsAr5e",
}

View File

@@ -1,25 +1,20 @@
import { configureStore } from "@reduxjs/toolkit"
import type { client } from "app/client"
import { client } from "app/client"
import { loadEntries, loadMoreEntries, markAllEntries, markEntry } from "app/entries/thunks"
import { type RootState, reducers } from "app/store"
import type { Entries, Entry } from "app/types"
import type { AxiosResponse } from "axios"
import { beforeEach, describe, expect, it, vi } from "vitest"
import { any, mockReset } from "vitest-mock-extended"
const mockClient = await vi.hoisted(async () => {
const mockModule = await import("vitest-mock-extended")
return mockModule.mockDeep<typeof client>()
})
vi.mock("app/client", () => ({ client: mockClient }))
vi.mock(import("app/client"))
describe("entries", () => {
beforeEach(() => {
mockReset(mockClient)
vi.resetAllMocks()
})
it("loads entries", async () => {
mockClient.feed.getEntries.calledWith(any()).mockResolvedValue({
vi.mocked(client.feed.getEntries).mockResolvedValue({
data: {
entries: [{ id: "3" } as Entry],
hasMore: false,
@@ -53,7 +48,7 @@ describe("entries", () => {
})
it("loads more entries", async () => {
mockClient.category.getEntries.calledWith(any()).mockResolvedValue({
vi.mocked(client.category.getEntries).mockResolvedValue({
data: {
entries: [{ id: "4" } as Entry],
hasMore: false,
@@ -113,7 +108,7 @@ describe("entries", () => {
{ id: "3", read: true },
{ id: "4", read: false },
])
expect(mockClient.entry.mark).toHaveBeenCalledWith({ id: "3", read: true })
expect(client.entry.mark).toHaveBeenCalledWith({ id: "3", read: true })
})
it("marks all entries as read", () => {
@@ -140,6 +135,6 @@ describe("entries", () => {
{ id: "3", read: true },
{ id: "4", read: true },
])
expect(mockClient.category.markEntries).toHaveBeenCalledWith({ id: "all", read: true })
expect(client.category.markEntries).toHaveBeenCalledWith({ id: "all", read: true })
})
})

View File

@@ -28,6 +28,7 @@ interface EntriesState {
loading: boolean
search?: string
scrollingToEntry: boolean
markAllAsReadConfirmationDialogOpen: boolean
}
const initialState: EntriesState = {
@@ -41,6 +42,7 @@ const initialState: EntriesState = {
hasMore: true,
loading: false,
scrollingToEntry: false,
markAllAsReadConfirmationDialogOpen: false,
}
export const entriesSlice = createSlice({
@@ -61,6 +63,9 @@ export const entriesSlice = createSlice({
setSearch: (state, action: PayloadAction<string>) => {
state.search = action.payload
},
setMarkAllAsReadConfirmationDialogOpen: (state, action: PayloadAction<boolean>) => {
state.markAllAsReadConfirmationDialogOpen = action.payload
},
},
extraReducers: builder => {
builder.addCase(markEntry.pending, (state, action) => {
@@ -119,4 +124,4 @@ export const entriesSlice = createSlice({
},
})
export const { setSearch } = entriesSlice.actions
export const { setSearch, setMarkAllAsReadConfirmationDialogOpen } = entriesSlice.actions

View File

@@ -1,7 +1,7 @@
import { createAppAsyncThunk } from "app/async-thunk"
import { client } from "app/client"
import { Constants } from "app/constants"
import { type EntrySource, type EntrySourceType, entriesSlice, setSearch } from "app/entries/slice"
import { type EntrySource, type EntrySourceType, entriesSlice, setMarkAllAsReadConfirmationDialogOpen, setSearch } from "app/entries/slice"
import type { RootState } from "app/store"
import { reloadTree } from "app/tree/thunks"
import type { Entry, MarkRequest, TagRequest } from "app/types"
@@ -11,6 +11,7 @@ import { flushSync } from "react-dom"
const getEndpoint = (sourceType: EntrySourceType) =>
sourceType === "category" || sourceType === "tag" ? client.category.getEntries : client.feed.getEntries
export const loadEntries = createAppAsyncThunk(
"entries/load",
async (
@@ -28,6 +29,7 @@ export const loadEntries = createAppAsyncThunk(
return result.data
}
)
export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_, thunkApi) => {
const state = thunkApi.getState()
const { source } = state.entries
@@ -37,6 +39,7 @@ export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_,
const result = await endpoint(buildGetEntriesPaginatedRequest(state, source, offset))
return result.data
})
const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource, offset: number) => ({
id: source.type === "tag" ? Constants.categories.all.id : source.id,
order: state.user.settings?.readingOrder,
@@ -46,15 +49,18 @@ const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource,
tag: source.type === "tag" ? source.id : undefined,
keywords: state.entries.search,
})
export const reloadEntries = createAppAsyncThunk("entries/reload", (arg, thunkApi) => {
export const reloadEntries = createAppAsyncThunk("entries/reload", (_, thunkApi) => {
const state = thunkApi.getState()
thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false }))
})
export const search = createAppAsyncThunk("entries/search", (arg: string, thunkApi) => {
const state = thunkApi.getState()
thunkApi.dispatch(setSearch(arg))
thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false }))
})
export const markEntry = createAppAsyncThunk(
"entries/entry/mark",
(arg: { entry: Entry; read: boolean }) => {
@@ -67,6 +73,7 @@ export const markEntry = createAppAsyncThunk(
condition: arg => arg.entry.markable && arg.entry.read !== arg.read,
}
)
export const markMultipleEntries = createAppAsyncThunk(
"entries/entry/markMultiple",
async (
@@ -84,6 +91,7 @@ export const markMultipleEntries = createAppAsyncThunk(
thunkApi.dispatch(reloadTree())
}
)
export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry", (arg: Entry, thunkApi) => {
const state = thunkApi.getState()
const { entries } = state.entries
@@ -98,6 +106,7 @@ export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry
})
)
})
export const markAllEntries = createAppAsyncThunk(
"entries/entry/markAll",
async (
@@ -113,6 +122,33 @@ export const markAllEntries = createAppAsyncThunk(
thunkApi.dispatch(reloadTree())
}
)
export const markAllAsReadWithConfirmationIfRequired = createAppAsyncThunk(
"entries/entry/markAllAsReadWithConfirmationIfRequired",
async (_, thunkApi) => {
const state = thunkApi.getState()
const source = state.entries.source
const entriesTimestamp = state.entries.timestamp ?? Date.now()
const markAllAsReadConfirmation = state.user.settings?.markAllAsReadConfirmation
if (markAllAsReadConfirmation) {
thunkApi.dispatch(setMarkAllAsReadConfirmationDialogOpen(true))
} else {
thunkApi.dispatch(
markAllEntries({
sourceType: source.type,
req: {
id: source.id,
read: true,
olderThan: Date.now(),
insertedBefore: entriesTimestamp,
},
})
)
}
}
)
export const starEntry = createAppAsyncThunk(
"entries/entry/star",
(arg: { entry: Entry; starred: boolean }) => {
@@ -126,6 +162,7 @@ export const starEntry = createAppAsyncThunk(
condition: arg => arg.entry.markable && arg.entry.starred !== arg.starred,
}
)
export const selectEntry = createAppAsyncThunk(
"entries/entry/select",
(
@@ -191,6 +228,7 @@ export const selectEntry = createAppAsyncThunk(
}
}
)
const scrollToEntry = (entryElement: HTMLElement, margin: number, scrollSpeed: number | undefined, onScrollEnded: () => void) => {
const header = document.getElementById(Constants.dom.headerId)?.getBoundingClientRect()
const offset = (header?.bottom ?? 0) + margin
@@ -228,6 +266,7 @@ export const selectPreviousEntry = createAppAsyncThunk(
}
}
)
export const selectNextEntry = createAppAsyncThunk(
"entries/entry/selectNext",
async (
@@ -261,6 +300,7 @@ export const selectNextEntry = createAppAsyncThunk(
}
}
)
export const tagEntry = createAppAsyncThunk("entries/entry/tag", async (arg: TagRequest, thunkApi) => {
await client.entry.tag(arg)
thunkApi.dispatch(reloadTags())

View File

@@ -3,43 +3,55 @@ import { Constants } from "app/constants"
import { redirectTo } from "app/redirect/slice"
export const redirectToLogin = createAppAsyncThunk("redirect/login", (_, thunkApi) => thunkApi.dispatch(redirectTo("/login")))
export const redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register")))
export const redirectToPasswordRecovery = createAppAsyncThunk("redirect/passwordRecovery", (_, thunkApi) =>
thunkApi.dispatch(redirectTo("/passwordRecovery"))
)
export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", (_, thunkApi) => thunkApi.dispatch(redirectTo("/api")))
export const redirectToSelectedSource = createAppAsyncThunk("redirect/selectedSource", (_, thunkApi) => {
const { source } = thunkApi.getState().entries
thunkApi.dispatch(redirectTo(`/app/${source.type}/${source.id}`))
})
export const redirectToCategory = createAppAsyncThunk("redirect/category", (id: string, thunkApi) =>
thunkApi.dispatch(redirectTo(`/app/category/${id}`))
)
export const redirectToRootCategory = createAppAsyncThunk(
"redirect/category/root",
async (_, thunkApi) => await thunkApi.dispatch(redirectToCategory(Constants.categories.all.id))
)
export const redirectToCategoryDetails = createAppAsyncThunk("redirect/category/details", (id: string, thunkApi) =>
thunkApi.dispatch(redirectTo(`/app/category/${id}/details`))
)
export const redirectToFeed = createAppAsyncThunk("redirect/feed", (id: string | number, thunkApi) =>
thunkApi.dispatch(redirectTo(`/app/feed/${id}`))
)
export const redirectToFeedDetails = createAppAsyncThunk("redirect/feed/details", (id: string, thunkApi) =>
thunkApi.dispatch(redirectTo(`/app/feed/${id}/details`))
)
export const redirectToTag = createAppAsyncThunk("redirect/tag", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/tag/${id}`)))
export const redirectToTagDetails = createAppAsyncThunk("redirect/tag/details", (id: string, thunkApi) =>
thunkApi.dispatch(redirectTo(`/app/tag/${id}/details`))
)
export const redirectToAdd = createAppAsyncThunk("redirect/add", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/add")))
export const redirectToSettings = createAppAsyncThunk("redirect/settings", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/settings")))
export const redirectToAdminUsers = createAppAsyncThunk("redirect/admin/users", (_, thunkApi) =>
thunkApi.dispatch(redirectTo("/app/admin/users"))
)
export const redirectToMetrics = createAppAsyncThunk("redirect/admin/metrics", (_, thunkApi) =>
thunkApi.dispatch(redirectTo("/app/admin/metrics"))
)
export const redirectToDonate = createAppAsyncThunk("redirect/donate", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/donate")))
export const redirectToAbout = createAppAsyncThunk("redirect/about", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/about")))

View File

@@ -17,19 +17,9 @@ export const reducers = {
const loadLocalSettings = (): LocalSettings => {
const json = localStorage.getItem("commafeed-local-settings")
if (json) {
return JSON.parse(json)
}
// load old settings
const viewMode = localStorage.getItem("view-mode")
const sidebarWidth = localStorage.getItem("sidebar-width")
const announcementHash = localStorage.getItem("announcement-hash")
return {
...initialLocalSettings,
viewMode: viewMode ? JSON.parse(viewMode) : initialLocalSettings.viewMode,
sidebarWidth: sidebarWidth ? JSON.parse(sidebarWidth) : initialLocalSettings.sidebarWidth,
announcementHash: announcementHash ? JSON.parse(announcementHash) : initialLocalSettings.announcementHash,
...(json ? JSON.parse(json) : {}),
}
}

View File

@@ -1,12 +1,22 @@
import { type PayloadAction, createSlice } from "@reduxjs/toolkit"
import { markEntry } from "app/entries/thunks"
import { loadEntries, markEntry } from "app/entries/thunks"
import { redirectTo } from "app/redirect/slice"
import { collapseTreeCategory, reloadTree } from "app/tree/thunks"
import type { Category } from "app/types"
import { visitCategoryTree } from "app/utils"
import type { Category, Subscription } from "app/types"
import { flattenCategoryTree, visitCategoryTree } from "app/utils"
export interface TreeSubscription extends Subscription {
// client-side only flag
hasNewEntries?: boolean
}
export interface TreeCategory extends Category {
feeds: TreeSubscription[]
children: TreeCategory[]
}
interface TreeState {
rootCategory?: Category
rootCategory?: TreeCategory
mobileMenuOpen: boolean
sidebarVisible: boolean
}
@@ -37,12 +47,27 @@ export const treeSlice = createSlice({
visitCategoryTree(state.rootCategory, c => {
for (const f of c.feeds.filter(f => f.id === action.payload.feedId)) {
f.unread += action.payload.amount
f.hasNewEntries = true
}
})
},
},
extraReducers: builder => {
builder.addCase(reloadTree.fulfilled, (state, action) => {
// set hasNewEntries to true if new unread > previous unread
if (state.rootCategory) {
const oldFeeds = flattenCategoryTree(state.rootCategory).flatMap(c => c.feeds)
const oldFeedsById = new Map(oldFeeds.map(f => [f.id, f]))
const newFeeds = flattenCategoryTree(action.payload).flatMap(c => c.feeds)
for (const newFeed of newFeeds) {
const oldFeed = oldFeedsById.get(newFeed.id)
if (oldFeed && newFeed.unread > oldFeed.unread) {
newFeed.hasNewEntries = true
}
}
}
state.rootCategory = action.payload
})
builder.addCase(collapseTreeCategory.pending, (state, action) => {
@@ -59,6 +84,25 @@ export const treeSlice = createSlice({
}
})
})
builder.addCase(loadEntries.fulfilled, (state, action) => {
if (!state.rootCategory) return
const { source } = action.meta.arg
if (source.type === "category") {
visitCategoryTree(state.rootCategory, c => {
if (c.id === source.id) {
for (const f of flattenCategoryTree(c).flatMap(c => c.feeds)) {
f.hasNewEntries = false
}
}
})
} else if (source.type === "feed") {
const feeds = flattenCategoryTree(state.rootCategory).flatMap(c => c.feeds)
for (const f of feeds.filter(f => f.id === +source.id)) {
f.hasNewEntries = false
}
}
})
builder.addCase(redirectTo, state => {
state.mobileMenuOpen = false
})

View File

@@ -1,9 +1,80 @@
import { createAppAsyncThunk } from "app/async-thunk"
import { client } from "app/client"
import type { CollapseRequest } from "app/types"
import { redirectToCategory, redirectToFeed } from "app/redirect/thunks"
import { incrementUnreadCount } from "app/tree/slice"
import type { CollapseRequest, Subscription } from "app/types"
import { flattenCategoryTree, visitCategoryTree } from "app/utils"
export const reloadTree = createAppAsyncThunk("tree/reload", async () => await client.category.getRoot().then(r => r.data))
export const collapseTreeCategory = createAppAsyncThunk(
"tree/category/collapse",
async (req: CollapseRequest) => await client.category.collapse(req)
async (req: CollapseRequest) => await client.category.collapse(req).then(r => r.data)
)
export const selectNextUnreadTreeItem = createAppAsyncThunk(
"tree/selectNextUnreadItem",
(
arg: {
direction: "forward" | "backward"
},
thunkApi
) => {
const state = thunkApi.getState()
const root = state.tree.rootCategory
if (!root) return
const { source } = state.entries
if (source.type === "category") {
const categories = flattenCategoryTree(root)
if (arg.direction === "backward") categories.reverse()
const index = categories.findIndex(c => c.id === source.id)
if (index === -1) return
for (let i = index + 1; i < categories.length; i++) {
const c = categories[i]
if (c.feeds.some(f => f.unread > 0)) {
return thunkApi.dispatch(redirectToCategory(String(c.id)))
}
}
} else if (source.type === "feed") {
const feeds: Subscription[] = []
visitCategoryTree(root, c => feeds.push(...c.feeds), { childrenFirst: true })
if (arg.direction === "backward") feeds.reverse()
const index = feeds.findIndex(f => f.id === +source.id)
if (index === -1) return
for (let i = index + 1; i < feeds.length; i++) {
const f = feeds[i]
if (f.unread > 0) {
return thunkApi.dispatch(redirectToFeed(String(f.id)))
}
}
}
}
)
export const newFeedEntriesDiscovered = createAppAsyncThunk(
"tree/new-feed-entries-discovered",
async ({ feedId, amount }: { feedId: number; amount: number }, thunkApi) => {
const root = thunkApi.getState().tree.rootCategory
if (!root) return
const feed = flattenCategoryTree(root)
.flatMap(c => c.feeds)
.some(f => f.id === feedId)
if (!feed) {
// feed not found in the tree, reload the tree completely
thunkApi.dispatch(reloadTree())
} else {
thunkApi.dispatch(
incrementUnreadCount({
feedId,
amount,
})
)
}
}
)

View File

@@ -0,0 +1,172 @@
import { configureStore } from "@reduxjs/toolkit"
import { client } from "app/client"
import { loadEntries } from "app/entries/thunks"
import { type RootState, reducers } from "app/store"
import { newFeedEntriesDiscovered, selectNextUnreadTreeItem } from "app/tree/thunks"
import type { Category, Entries, Entry, Subscription } from "app/types"
import type { AxiosResponse } from "axios"
import { beforeEach, describe, expect, it, vi } from "vitest"
vi.mock(import("app/client"))
const createCategory = (id: string): Category => ({
id,
name: id,
children: [],
feeds: [],
expanded: true,
position: 0,
})
const createFeed = (id: number, unread: number): Subscription => ({
id,
name: String(id),
unread,
errorCount: 0,
position: 0,
feedUrl: "",
feedLink: "",
iconUrl: "",
})
const root = createCategory("root")
const catA = createCategory("catA")
catA.feeds.push(createFeed(1, 0), createFeed(2, 0), createFeed(3, 1))
const catB = createCategory("catB")
const catC = createCategory("catC")
catC.feeds.push(createFeed(4, 1))
root.children.push(catA, catB, catC)
describe("selectNextUnreadTreeItem", () => {
it("selects the next unread category", async () => {
const store = configureStore({
reducer: reducers,
preloadedState: {
tree: {
rootCategory: root,
},
entries: {
source: {
type: "category",
id: "catA",
},
},
} as RootState,
})
await store.dispatch(selectNextUnreadTreeItem({ direction: "forward" }))
expect(store.getState().redirect.to).toBe("/app/category/catC")
})
it("selects the previous unread category", async () => {
const store = configureStore({
reducer: reducers,
preloadedState: {
tree: {
rootCategory: root,
},
entries: {
source: {
type: "category",
id: "catC",
},
},
} as RootState,
})
await store.dispatch(selectNextUnreadTreeItem({ direction: "backward" }))
expect(store.getState().redirect.to).toBe("/app/category/catA")
})
it("selects the next unread feed", async () => {
const store = configureStore({
reducer: reducers,
preloadedState: {
tree: {
rootCategory: root,
},
entries: {
source: {
type: "feed",
id: "1",
},
},
} as RootState,
})
await store.dispatch(selectNextUnreadTreeItem({ direction: "forward" }))
expect(store.getState().redirect.to).toBe("/app/feed/3")
})
it("selects the previous unread feed", async () => {
const store = configureStore({
reducer: reducers,
preloadedState: {
tree: {
rootCategory: root,
},
entries: {
source: {
type: "feed",
id: "4",
},
},
} as RootState,
})
await store.dispatch(selectNextUnreadTreeItem({ direction: "backward" }))
expect(store.getState().redirect.to).toBe("/app/feed/3")
})
})
describe("hasNewEntries", () => {
beforeEach(() => {
vi.resetAllMocks()
})
it("sets and clear flag for a feed", async () => {
vi.mocked(client.feed.getEntries).mockResolvedValue({
data: {
entries: [{ id: "3" } as Entry],
hasMore: false,
name: "my-feed",
errorCount: 3,
feedLink: "https://mysite.com/feed",
timestamp: 123,
ignoredReadStatus: false,
},
} as AxiosResponse<Entries>)
const store = configureStore({
reducer: reducers,
preloadedState: {
tree: {
rootCategory: root,
},
entries: {
source: {
type: "feed",
id: "1",
},
},
} as RootState,
})
// initial state
expect(store.getState().tree.rootCategory?.children[0].feeds[0].unread).toBe(0)
expect(store.getState().tree.rootCategory?.children[0].feeds[0].hasNewEntries).toBeFalsy()
// increments unread count and sets hasNewEntries to true
await store.dispatch(newFeedEntriesDiscovered({ feedId: 1, amount: 3 }))
expect(store.getState().tree.rootCategory?.children[0].feeds[0].unread).toBe(3)
expect(store.getState().tree.rootCategory?.children[0].feeds[0].hasNewEntries).toBe(true)
// reload entries and sets hasNewEntries to false
await store.dispatch(loadEntries({ source: { type: "feed", id: "1" }, clearSearch: true }))
expect(store.getState().tree.rootCategory?.children[0].feeds[0].hasNewEntries).toBe(false)
})
})

View File

@@ -252,6 +252,7 @@ export interface Settings {
mobileFooter: boolean
unreadCountTitle: boolean
unreadCountFavicon: boolean
primaryColor?: string
sharingSettings: SharingSettings
}
@@ -259,6 +260,7 @@ export interface LocalSettings {
viewMode: ViewMode
sidebarWidth: number
announcementHash: string
fontSizePercentage: number
}
export interface StarRequest {

View File

@@ -1,4 +1,4 @@
import { t } from "@lingui/macro"
import { t } from "@lingui/core/macro"
import { showNotification } from "@mantine/notifications"
import { type PayloadAction, createSlice, isAnyOf } from "@reduxjs/toolkit"
import type { LocalSettings, Settings, UserModel, ViewMode } from "app/types"
@@ -9,6 +9,7 @@ import {
changeLanguage,
changeMarkAllAsReadConfirmation,
changeMobileFooter,
changePrimaryColor,
changeReadingMode,
changeReadingOrder,
changeScrollMarks,
@@ -35,6 +36,7 @@ export const initialLocalSettings: LocalSettings = {
viewMode: "detailed",
sidebarWidth: 360,
announcementHash: "no-hash",
fontSizePercentage: 100,
}
const initialState: UserState = {
@@ -48,6 +50,9 @@ export const userSlice = createSlice({
setViewMode: (state, action: PayloadAction<ViewMode>) => {
state.localSettings.viewMode = action.payload
},
setFontSizePercentage: (state, action: PayloadAction<number>) => {
state.localSettings.fontSizePercentage = action.payload
},
setSidebarWidth: (state, action: PayloadAction<number>) => {
state.localSettings.sidebarWidth = action.payload
},
@@ -125,6 +130,10 @@ export const userSlice = createSlice({
if (!state.settings) return
state.settings.unreadCountFavicon = action.meta.arg
})
builder.addCase(changePrimaryColor.pending, (state, action) => {
if (!state.settings) return
state.settings.primaryColor = action.meta.arg
})
builder.addCase(changeSharingSetting.pending, (state, action) => {
if (!state.settings) return
state.settings.sharingSettings[action.meta.arg.site] = action.meta.arg.value
@@ -144,6 +153,7 @@ export const userSlice = createSlice({
changeMobileFooter.fulfilled,
changeUnreadCountTitle.fulfilled,
changeUnreadCountFavicon.fulfilled,
changePrimaryColor.fulfilled,
changeSharingSetting.fulfilled
),
() => {
@@ -156,4 +166,4 @@ export const userSlice = createSlice({
},
})
export const { setViewMode, setSidebarWidth, setAnnouncementHash } = userSlice.actions
export const { setViewMode, setSidebarWidth, setAnnouncementHash, setFontSizePercentage } = userSlice.actions

View File

@@ -4,45 +4,55 @@ import { reloadEntries } from "app/entries/thunks"
import type { IconDisplayMode, ReadingMode, ReadingOrder, ScrollMode, SharingSettings } from "app/types"
export const reloadSettings = createAppAsyncThunk("settings/reload", async () => await client.user.getSettings().then(r => r.data))
export const reloadProfile = createAppAsyncThunk("profile/reload", async () => await client.user.getProfile().then(r => r.data))
export const reloadTags = createAppAsyncThunk("entries/tags", async () => await client.entry.getTags().then(r => r.data))
export const changeReadingMode = createAppAsyncThunk("settings/readingMode", (readingMode: ReadingMode, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, readingMode })
thunkApi.dispatch(reloadEntries())
})
export const changeReadingOrder = createAppAsyncThunk("settings/readingOrder", (readingOrder: ReadingOrder, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, readingOrder })
thunkApi.dispatch(reloadEntries())
})
export const changeLanguage = createAppAsyncThunk("settings/language", (language: string, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, language })
})
export const changeScrollSpeed = createAppAsyncThunk("settings/scrollSpeed", (speed: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, scrollSpeed: speed ? 400 : 0 })
})
export const changeShowRead = createAppAsyncThunk("settings/showRead", (showRead: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, showRead })
})
export const changeScrollMarks = createAppAsyncThunk("settings/scrollMarks", (scrollMarks: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, scrollMarks })
})
export const changeScrollMode = createAppAsyncThunk("settings/scrollMode", (scrollMode: ScrollMode, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, scrollMode })
})
export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk(
"settings/entriesToKeepOnTopWhenScrolling",
(entriesToKeepOnTopWhenScrolling: number, thunkApi) => {
@@ -51,6 +61,7 @@ export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk(
client.user.saveSettings({ ...settings, entriesToKeepOnTopWhenScrolling })
}
)
export const changeStarIconDisplayMode = createAppAsyncThunk(
"settings/starIconDisplayMode",
(starIconDisplayMode: IconDisplayMode, thunkApi) => {
@@ -59,6 +70,7 @@ export const changeStarIconDisplayMode = createAppAsyncThunk(
client.user.saveSettings({ ...settings, starIconDisplayMode })
}
)
export const changeExternalLinkIconDisplayMode = createAppAsyncThunk(
"settings/externalLinkIconDisplayMode",
(externalLinkIconDisplayMode: IconDisplayMode, thunkApi) => {
@@ -67,6 +79,7 @@ export const changeExternalLinkIconDisplayMode = createAppAsyncThunk(
client.user.saveSettings({ ...settings, externalLinkIconDisplayMode })
}
)
export const changeMarkAllAsReadConfirmation = createAppAsyncThunk(
"settings/markAllAsReadConfirmation",
(markAllAsReadConfirmation: boolean, thunkApi) => {
@@ -75,26 +88,37 @@ export const changeMarkAllAsReadConfirmation = createAppAsyncThunk(
client.user.saveSettings({ ...settings, markAllAsReadConfirmation })
}
)
export const changeCustomContextMenu = createAppAsyncThunk("settings/customContextMenu", (customContextMenu: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, customContextMenu })
})
export const changeMobileFooter = createAppAsyncThunk("settings/mobileFooter", (mobileFooter: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, mobileFooter })
})
export const changeUnreadCountTitle = createAppAsyncThunk("settings/unreadCountTitle", (unreadCountTitle: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, unreadCountTitle })
})
export const changeUnreadCountFavicon = createAppAsyncThunk("settings/unreadCountFavicon", (unreadCountFavicon: boolean, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, unreadCountFavicon })
})
export const changePrimaryColor = createAppAsyncThunk("settings/primaryColor", (primaryColor: string, thunkApi) => {
const { settings } = thunkApi.getState().user
if (!settings) return
client.user.saveSettings({ ...settings, primaryColor })
})
export const changeSharingSetting = createAppAsyncThunk(
"settings/sharingSetting",
(

View File

@@ -1,20 +1,32 @@
import type { TreeCategory } from "app/tree/slice"
import { throttle } from "throttle-debounce"
import type { Category } from "./types"
export function visitCategoryTree(category: Category, visitor: (category: Category) => void): void {
visitor(category)
for (const child of category.children) {
visitCategoryTree(child, visitor)
export function visitCategoryTree(
category: TreeCategory,
visitor: (category: TreeCategory) => void,
options?: {
childrenFirst?: boolean
}
): void {
const childrenFirst = options?.childrenFirst
if (!childrenFirst) visitor(category)
for (const child of category.children) {
visitCategoryTree(child, visitor, options)
}
if (childrenFirst) visitor(category)
}
export function flattenCategoryTree(category: Category): Category[] {
export function flattenCategoryTree(category: TreeCategory): TreeCategory[] {
const categories: Category[] = []
visitCategoryTree(category, c => categories.push(c))
return categories
}
export function categoryUnreadCount(category?: Category): number {
export function categoryUnreadCount(category?: TreeCategory): number {
if (!category) return 0
return flattenCategoryTree(category)
@@ -23,6 +35,14 @@ export function categoryUnreadCount(category?: Category): number {
.reduce((total, current) => total + current, 0)
}
export function categoryHasNewEntries(category?: TreeCategory): boolean {
if (!category) return false
return flattenCategoryTree(category)
.flatMap(c => c.feeds)
.some(f => f.hasNewEntries)
}
export const calculatePlaceholderSize = ({ width, height, maxWidth }: { width?: number; height?: number; maxWidth: number }) => {
const placeholderWidth = width && Math.min(width, maxWidth)
const placeholderHeight = height && width && width > maxWidth ? height * (maxWidth / width) : height

View File

@@ -0,0 +1,47 @@
import type { I18nContext } from "@lingui/react"
import { MantineProvider } from "@mantine/core"
import { fireEvent, render, screen, waitFor } from "@testing-library/react"
import { useActionButton } from "hooks/useActionButton"
import { describe, expect, it, vi } from "vitest"
import { ActionButton } from "./ActionButton"
vi.mock(import("@lingui/react"), () => ({
useLingui: vi.fn().mockReturnValue({
_: msg => msg,
} as I18nContext),
}))
vi.mock(import("hooks/useActionButton"))
const label = "Test Label"
const icon = "Test Icon"
describe("ActionButton", () => {
it("renders Button with label on desktop", () => {
vi.mocked(useActionButton).mockReturnValue({ mobile: false, spacing: 0 })
render(<ActionButton label={label} icon={icon} />, { wrapper: MantineProvider })
expect(screen.getByText(label)).toBeInTheDocument()
expect(screen.getByText(icon)).toBeInTheDocument()
})
it("renders ActionIcon with tooltip on mobile", async () => {
vi.mocked(useActionButton).mockReturnValue({ mobile: true, spacing: 0 })
render(<ActionButton label={label} icon={icon} />, { wrapper: MantineProvider })
expect(screen.queryByText(label)).not.toBeInTheDocument()
expect(screen.getByText(icon)).toBeInTheDocument()
fireEvent.mouseEnter(screen.getByRole("button"))
const tooltip = await waitFor(() => screen.getByRole("tooltip"))
expect(tooltip).toContainHTML(label)
})
it("calls onClick handler when clicked", () => {
vi.mocked(useActionButton).mockReturnValue({ mobile: false, spacing: 0 })
const clickListener = vi.fn()
render(<ActionButton label={label} icon={icon} onClick={clickListener} />, { wrapper: MantineProvider })
fireEvent.click(screen.getByRole("button"))
expect(clickListener).toHaveBeenCalled()
})
})

View File

@@ -1,14 +1,14 @@
import type { MessageDescriptor } from "@lingui/core"
import { useLingui } from "@lingui/react"
import { ActionIcon, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
import { ActionIcon, Box, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
import type { ActionIconVariant } from "@mantine/core/lib/components/ActionIcon/ActionIcon"
import { Constants } from "app/constants"
import { useActionButton } from "hooks/useActionButton"
import { type MouseEventHandler, type ReactNode, forwardRef } from "react"
interface ActionButtonProps {
icon: ReactNode
className?: string
icon?: ReactNode
label?: string | MessageDescriptor
onClick?: MouseEventHandler
variant?: ActionIconVariant & ButtonVariant
@@ -19,7 +19,7 @@ interface ActionButtonProps {
/**
* Switches between Button with label (desktop) and ActionIcon (mobile)
*/
export const ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>((props: ActionButtonProps, ref) => {
export const ActionButton = forwardRef<HTMLDivElement, ActionButtonProps>((props: ActionButtonProps, ref) => {
const { mobile } = useActionButton()
const theme = useMantineTheme()
const { _ } = useLingui()
@@ -27,31 +27,36 @@ export const ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>((pr
const label = typeof props.label === "string" ? props.label : props.label && _(props.label)
const variant = props.variant ?? "subtle"
const iconOnly = (mobile && !props.showLabelOnMobile) || (!mobile && props.hideLabelOnDesktop)
return iconOnly ? (
<Tooltip label={label} openDelay={Constants.tooltip.delay}>
<ActionIcon
ref={ref}
color={theme.primaryColor}
variant={variant}
className={props.className}
onClick={props.onClick}
aria-label={label}
>
{props.icon}
</ActionIcon>
</Tooltip>
) : (
<Button
ref={ref}
variant={variant}
size="xs"
className={props.className}
leftSection={props.icon}
onClick={props.onClick}
aria-label={label}
>
{label}
</Button>
return (
<Box ref={ref} className="cf-action-button">
{iconOnly && (
<Tooltip label={label} openDelay={Constants.tooltip.delay}>
<ActionIcon
color={theme.primaryColor}
variant={variant}
className={props.className}
onClick={props.onClick}
aria-label={label}
>
{props.icon}
</ActionIcon>
</Tooltip>
)}
{!iconOnly && (
<Button
variant={variant}
size="xs"
className={props.className}
leftSection={props.icon}
onClick={props.onClick}
aria-label={label}
>
{label}
</Button>
)}
</Box>
)
})
ActionButton.displayName = "HeaderButton"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box, Alert as MantineAlert } from "@mantine/core"
import { Fragment } from "react"
import { TbAlertCircle, TbAlertTriangle, TbCircleCheck } from "react-icons/tb"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box, Dialog, Text } from "@mantine/core"
import { useAppDispatch, useAppSelector } from "app/store"
import { setAnnouncementHash } from "app/user/slice"

View File

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

View File

@@ -1,15 +1,4 @@
import { Helmet } from "react-helmet"
export const DisablePullToRefresh = () => {
return (
<Helmet>
<style type="text/css">
{`
html, body {
overscroll-behavior: none;
}
`}
</style>
</Helmet>
)
import("./DisablePullToRefresh.css")
return <></>
}

View File

@@ -70,7 +70,11 @@ export function ImageWithPlaceholderWhileLoading({
width={width}
height={height}
onLoad={() => setLoading(false)}
style={{ ...style, display: loading ? "none" : (style?.display ?? "initial") }}
style={{
...style,
display: loading ? "none" : (style?.display ?? "initial"),
height: style?.width ? "auto" : style?.height,
}}
/>
</>
)

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Kbd, Stack, Table } from "@mantine/core"
import { useOs } from "@mantine/hooks"
import { Constants } from "app/constants"
@@ -33,6 +33,26 @@ export function KeyboardShortcutsHelp() {
<Kbd>K</Kbd>
</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Td>
<Trans>Select next unread feed/category</Trans>
</Table.Td>
<Table.Td>
<Kbd>Shift</Kbd>
<span> + </span>
<Kbd>J</Kbd>
</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Td>
<Trans>Select previous unread feed/category</Trans>
</Table.Td>
<Table.Td>
<Kbd>Shift</Kbd>
<span> + </span>
<Kbd>K</Kbd>
</Table.Td>
</Table.Tr>
<Table.Tr>
<Table.Td>
<Trans>Set focus on next entry without opening it</Trans>

View File

@@ -0,0 +1,77 @@
import { Trans } from "@lingui/react/macro"
import { Button, Code, Group, Modal, Slider, Stack, Text } from "@mantine/core"
import { setMarkAllAsReadConfirmationDialogOpen } from "app/entries/slice"
import { markAllEntries } from "app/entries/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import { useState } from "react"
export function MarkAllAsReadConfirmationDialog() {
const [threshold, setThreshold] = useState(0)
const open = useAppSelector(state => state.entries.markAllAsReadConfirmationDialogOpen)
const source = useAppSelector(state => state.entries.source)
const sourceLabel = useAppSelector(state => state.entries.sourceLabel)
const entriesTimestamp = useAppSelector(state => state.entries.timestamp) ?? Date.now()
const dispatch = useAppDispatch()
const onConfirm = () => {
dispatch(
markAllEntries({
sourceType: source.type,
req: {
id: source.id,
read: true,
olderThan: Date.now() - threshold * 24 * 60 * 60 * 1000,
insertedBefore: entriesTimestamp,
},
})
)
dispatch(setMarkAllAsReadConfirmationDialogOpen(false))
}
return (
<Modal
opened={open}
onClose={() => dispatch(setMarkAllAsReadConfirmationDialogOpen(false))}
title={<Trans>Mark all entries as read</Trans>}
>
<Stack>
<Text size="sm">
{threshold === 0 && (
<Trans>
Are you sure you want to mark all entries of <Code>{sourceLabel}</Code> as read?
</Trans>
)}
{threshold > 0 && (
<Trans>
Are you sure you want to mark entries older than {threshold} days of <Code>{sourceLabel}</Code> as read?
</Trans>
)}
</Text>
<Slider
py="xl"
min={0}
max={28}
marks={[
{ value: 0, label: "0" },
{ value: 7, label: "7" },
{ value: 14, label: "14" },
{ value: 21, label: "21" },
{ value: 28, label: "28" },
]}
value={threshold}
onChange={setThreshold}
data-autofocus
onKeyDown={e => e.key === "Enter" && onConfirm()}
/>
<Group justify="flex-end">
<Button variant="default" onClick={() => dispatch(setMarkAllAsReadConfirmationDialogOpen(false))}>
<Trans>Cancel</Trans>
</Button>
<Button color="red" onClick={onConfirm}>
<Trans>Confirm</Trans>
</Button>
</Group>
</Stack>
</Modal>
)
}

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import dayjs from "dayjs"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box, Button, Checkbox, Group, PasswordInput, Stack, TextInput } from "@mantine/core"
import { useForm } from "@mantine/form"
import { client, errorToStrings } from "app/client"

View File

@@ -4,6 +4,7 @@ import { useMobile } from "hooks/useMobile"
import type { ReactNode } from "react"
interface CodeEditorProps {
label?: ReactNode
description?: ReactNode
language: "css" | "javascript"
value?: string
@@ -19,6 +20,7 @@ export function CodeEditor(props: CodeEditorProps) {
autosize
minRows={4}
maxRows={15}
label={props.label}
description={props.description}
styles={{
input: {
@@ -29,7 +31,7 @@ export function CodeEditor(props: CodeEditorProps) {
onChange={e => props.onChange(e.currentTarget.value)}
/>
) : (
<Input.Wrapper description={props.description}>
<Input.Wrapper label={props.label} description={props.description}>
<RichCodeEditor height="30vh" language={props.language} value={props.value} onChange={props.onChange} />
</Input.Wrapper>
)

View File

@@ -0,0 +1,26 @@
import { MantineProvider } from "@mantine/core"
import { render } from "@testing-library/react"
import { Content } from "components/content/Content"
import { describe, expect, it } from "vitest"
describe("Content component", () => {
it("renders basic content", () => {
const { container } = render(<Content content="<p>Hello World</p>" />, { wrapper: MantineProvider })
expect(container.querySelector("p")).toHaveTextContent("Hello World")
})
it("renders highlighted text when highlight prop is provided", () => {
const { container } = render(<Content content="Hello World" highlight="World" />, { wrapper: MantineProvider })
expect(container.querySelector("mark")).toHaveTextContent("World")
})
it("renders iframe tag when included in content", () => {
const { container } = render(<Content content='<iframe src="https://example.com"></iframe>' />, { wrapper: MantineProvider })
expect(container.querySelector("iframe")).toHaveAttribute("src", "https://example.com")
})
it("does not render unsupported tags", () => {
const { container } = render(<Content content='<script>alert("test")</script>' />, { wrapper: MantineProvider })
expect(container.querySelector("script")).toBeNull()
})
})

View File

@@ -4,7 +4,7 @@ import { calculatePlaceholderSize } from "app/utils"
import { ImageWithPlaceholderWhileLoading } from "components/ImageWithPlaceholderWhileLoading"
import { BasicHtmlStyles } from "components/content/BasicHtmlStyles"
import escapeStringRegexp from "escape-string-regexp"
import { type ChildrenNode, Interweave, type MatchResponse, Matcher, type Node, type TransformCallback } from "interweave"
import { ALLOWED_TAG_LIST, type ChildrenNode, Interweave, type MatchResponse, Matcher, type Node, type TransformCallback } from "interweave"
import React from "react"
import styleToObject from "style-to-object"
import { tss } from "tss"
@@ -67,20 +67,19 @@ const transform: TransformCallback = node => {
}
class HighlightMatcher extends Matcher {
private readonly search: string
private readonly regexp: RegExp
constructor(search: string) {
super("highlight")
this.search = escapeStringRegexp(search)
this.regexp = new RegExp(escapeStringRegexp(search).split(" ").join("|"), "i")
}
match(string: string): MatchResponse<unknown> | null {
const pattern = this.search.split(" ").join("|")
return this.doMatch(string, new RegExp(pattern, "i"), () => ({}))
return this.doMatch(string, this.regexp, () => ({}))
}
replaceWith(children: ChildrenNode): Node {
return <Mark>{children}</Mark>
return <Mark key={0}>{children}</Mark>
}
asTag(): string {
@@ -88,6 +87,9 @@ class HighlightMatcher extends Matcher {
}
}
// allow iframe tag
const allowList = [...ALLOWED_TAG_LIST, "iframe"]
// memoize component because Interweave is costly
const Content = React.memo((props: ContentProps) => {
const { classes } = useStyles()
@@ -96,7 +98,7 @@ const Content = React.memo((props: ContentProps) => {
return (
<BasicHtmlStyles>
<Box className={classes.content}>
<Interweave content={props.content} transform={transform} matchers={matchers} />
<Interweave content={props.content} transform={transform} matchers={matchers} allowList={allowList} />
</Box>
</BasicHtmlStyles>
)

View File

@@ -19,7 +19,7 @@ export function Enclosure(props: {
)}
{hasAudio && (
// biome-ignore lint/a11y/useMediaCaption: we don't have any captions for audio
<audio controls>
<audio controls style={{ width: "100%" }}>
<source src={props.enclosureUrl} type={props.enclosureType} />
</audio>
)}

View File

@@ -1,11 +1,11 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box } from "@mantine/core"
import { openModal } from "@mantine/modals"
import { Constants } from "app/constants"
import type { ExpendableEntry } from "app/entries/slice"
import {
loadMoreEntries,
markAllEntries,
markAllAsReadWithConfirmationIfRequired,
markEntry,
reloadEntries,
selectEntry,
@@ -16,6 +16,7 @@ import {
import { redirectToRootCategory } from "app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import { toggleSidebar } from "app/tree/slice"
import { selectNextUnreadTreeItem } from "app/tree/thunks"
import { KeyboardShortcutsHelp } from "components/KeyboardShortcutsHelp"
import { Loader } from "components/Loader"
import { useBrowserExtension } from "hooks/useBrowserExtension"
@@ -27,9 +28,7 @@ import { throttle } from "throttle-debounce"
import { FeedEntry } from "./FeedEntry"
export function FeedEntries() {
const source = useAppSelector(state => state.entries.source)
const entries = useAppSelector(state => state.entries.entries)
const entriesTimestamp = useAppSelector(state => state.entries.timestamp)
const selectedEntryId = useAppSelector(state => state.entries.selectedEntryId)
const hasMore = useAppSelector(state => state.entries.hasMore)
const loading = useAppSelector(state => state.entries.loading)
@@ -172,6 +171,8 @@ export function FeedEntries() {
})
)
)
useMousetrap("shift+j", async () => await dispatch(selectNextUnreadTreeItem({ direction: "forward" })))
useMousetrap("shift+k", async () => await dispatch(selectNextUnreadTreeItem({ direction: "backward" })))
useMousetrap("space", () => {
if (selectedEntry) {
if (selectedEntry.expanded) {
@@ -272,17 +273,7 @@ export function FeedEntries() {
})
useMousetrap("shift+a", () => {
// mark all entries as read
dispatch(
markAllEntries({
sourceType: source.type,
req: {
id: source.id,
read: true,
olderThan: Date.now(),
insertedBefore: entriesTimestamp,
},
})
)
dispatch(markAllAsReadWithConfirmationIfRequired())
})
useMousetrap("g a", async () => await dispatch(redirectToRootCategory()))
useMousetrap("f", () => dispatch(toggleSidebar()))
@@ -297,32 +288,25 @@ export function FeedEntries() {
return (
<InfiniteScroll
id="entries"
className={`view-mode-${viewMode}`}
className={`cf-entries cf-view-mode-${viewMode}`}
initialLoad={false}
loadMore={async () => await (!loading && dispatch(loadMoreEntries()))}
hasMore={hasMore}
loader={<Box key={0}>{loading && <Loader />}</Box>}
>
{entries.map(entry => (
<article
<FeedEntry
key={entry.id}
ref={el => {
if (el) el.id = Constants.dom.entryId(entry)
}}
data-id={entry.id}
>
<FeedEntry
entry={entry}
expanded={!!entry.expanded || viewMode === "expanded"}
selected={entry.id === selectedEntryId}
showSelectionIndicator={entry.id === selectedEntryId && (!entry.expanded || viewMode === "expanded")}
maxWidth={sidebarVisible ? Constants.layout.entryMaxWidth : undefined}
onHeaderClick={event => headerClicked(entry, event)}
onHeaderRightClick={event => headerRightClicked(entry, event)}
onBodyClick={() => bodyClicked(entry)}
onSwipedLeft={async () => await swipedLeft(entry)}
/>
</article>
entry={entry}
expanded={!!entry.expanded || viewMode === "expanded"}
selected={entry.id === selectedEntryId}
showSelectionIndicator={entry.id === selectedEntryId && (!entry.expanded || viewMode === "expanded")}
maxWidth={sidebarVisible ? Constants.layout.entryMaxWidth : undefined}
onHeaderClick={event => headerClicked(entry, event)}
onHeaderRightClick={event => headerRightClicked(entry, event)}
onBodyClick={() => bodyClicked(entry)}
onSwipedLeft={async () => await swipedLeft(entry)}
/>
))}
</InfiniteScroll>
)

View File

@@ -32,8 +32,9 @@ const useStyles = tss
rtl: boolean
showSelectionIndicator: boolean
maxWidth?: number
fontSizePercentage: number
}>()
.create(({ theme, colorScheme, read, expanded, viewMode, rtl, showSelectionIndicator, maxWidth }) => {
.create(({ theme, colorScheme, read, expanded, viewMode, rtl, showSelectionIndicator, maxWidth, fontSizePercentage }) => {
let backgroundColor: string
if (colorScheme === "dark") {
backgroundColor = read ? "inherit" : theme.colors.dark[5]
@@ -83,10 +84,12 @@ const useStyles = tss
},
},
headerLink: {
fontSize: `${fontSizePercentage}%`,
color: "inherit",
textDecoration: "none",
},
body: {
fontSize: `${fontSizePercentage}%`,
direction: rtl ? "rtl" : "ltr",
maxWidth: maxWidth ?? "100%",
},
@@ -95,6 +98,7 @@ const useStyles = tss
export function FeedEntry(props: FeedEntryProps) {
const viewMode = useAppSelector(state => state.user.localSettings.viewMode)
const fontSizePercentage = useAppSelector(state => state.user.localSettings.fontSizePercentage)
const { classes, cx } = useStyles({
read: props.entry.read,
expanded: props.expanded,
@@ -102,6 +106,7 @@ export function FeedEntry(props: FeedEntryProps) {
rtl: props.entry.rtl,
showSelectionIndicator: props.showSelectionIndicator,
maxWidth: props.maxWidth,
fontSizePercentage,
})
const externalLinkDisplayMode = useAppSelector(state => state.user.settings?.externalLinkIconDisplayMode)
@@ -137,6 +142,9 @@ export function FeedEntry(props: FeedEntryProps) {
const compactHeader = !props.expanded && (viewMode === "title" || viewMode === "cozy")
return (
<Paper
component="article"
id={Constants.dom.entryId(props.entry)}
data-id={props.entry.id}
withBorder
radius={borderRadius}
className={cx(classes.paper, {
@@ -176,10 +184,10 @@ export function FeedEntry(props: FeedEntryProps) {
</a>
{props.expanded && (
<Box px={paddingX} pb={paddingY} onClick={props.onBodyClick}>
<Box className={classes.body}>
<Box className={`${classes.body} cf-content`}>
<FeedEntryBody entry={props.entry} />
</Box>
<Divider variant="dashed" my={paddingY} />
<Divider variant="dashed" my={paddingY} className="cf-footer-divider" />
<FeedEntryFooter entry={props.entry} />
</Box>
)}

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Group } from "@mantine/core"
import { Constants } from "app/constants"
import { markEntriesUpToEntry, markEntry, starEntry } from "app/entries/thunks"

View File

@@ -1,4 +1,4 @@
import { msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Group, Indicator, Popover, TagsInput } from "@mantine/core"
import { markEntriesUpToEntry, markEntry, starEntry, tagEntry } from "app/entries/thunks"
@@ -37,7 +37,7 @@ export function FeedEntryFooter(props: FeedEntryFooterProps) {
)
return (
<Group justify="space-between">
<Group justify="space-between" className="cf-footer">
<Group gap={spacing}>
{props.entry.markable && (
<ActionButton

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { ActionIcon, Box, CopyButton, Divider, SimpleGrid } from "@mantine/core"
import { Constants } from "app/constants"
import { useAppSelector } from "app/store"

View File

@@ -1,5 +1,6 @@
import { Trans, msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Box, Button, Group, Stack, TextInput } from "@mantine/core"
import { useForm } from "@mantine/form"
import { client, errorToStrings } from "app/client"

View File

@@ -1,4 +1,4 @@
import { msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Select, type SelectProps } from "@mantine/core"
import type { ComboboxItem } from "@mantine/core/lib/components/Combobox/Combobox.types"

View File

@@ -1,5 +1,6 @@
import { Trans, msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Box, Button, FileInput, Group, Stack } from "@mantine/core"
import { isNotEmpty, useForm } from "@mantine/form"
import { client, errorToStrings } from "app/client"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box, Button, Group, Stack, Stepper, TextInput } from "@mantine/core"
import { useForm } from "@mantine/form"
import { client, errorToStrings } from "app/client"
@@ -39,8 +39,8 @@ export function Subscribe() {
},
})
const subscribe = useAsyncCallback(client.feed.subscribe, {
onSuccess: sub => {
dispatch(reloadTree())
onSuccess: async sub => {
await dispatch(reloadTree())
dispatch(redirectToFeed(sub.data))
},
})

View File

@@ -1,4 +1,4 @@
import { Box, Text } from "@mantine/core"
import { Box } from "@mantine/core"
import type { Entry } from "app/types"
import { RelativeDate } from "components/RelativeDate"
import { FeedFavicon } from "components/content/FeedFavicon"
@@ -54,17 +54,17 @@ export function FeedEntryCompactHeader(props: FeedEntryHeaderProps) {
<FeedFavicon url={props.entry.iconUrl} />
</Box>
<OnDesktop>
<Text c="dimmed" className={classes.feedName}>
<Box c="dimmed" className={classes.feedName}>
{props.entry.feedName}
</Text>
</Box>
</OnDesktop>
<Box className={classes.title}>
<FeedEntryTitle entry={props.entry} />
</Box>
<OnDesktop>
<Text c="dimmed" className={classes.date}>
<Box c="dimmed" className={classes.date}>
<RelativeDate date={props.entry.date} />
</Text>
</Box>
</OnDesktop>
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
</Box>

View File

@@ -1,4 +1,4 @@
import { Box, Flex, Space, Text } from "@mantine/core"
import { Box, Flex, Space } from "@mantine/core"
import type { Entry } from "app/types"
import { RelativeDate } from "components/RelativeDate"
import { FeedFavicon } from "components/content/FeedFavicon"
@@ -22,9 +22,6 @@ const useStyles = tss
main: {
fontWeight: colorScheme === "light" && !read ? "bold" : "inherit",
},
details: {
fontSize: "90%",
},
}))
export function FeedEntryHeader(props: FeedEntryHeaderProps) {
@@ -32,8 +29,8 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
read: props.entry.read,
})
return (
<Box>
<Flex align="flex-start" justify="space-between">
<Box className="cf-header">
<Flex align="flex-start" justify="space-between" className="cf-header-title">
<Flex align="flex-start" className={classes.main}>
{props.showStarIcon && (
<Box ml={-5}>
@@ -44,22 +41,20 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
</Flex>
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
</Flex>
<Flex align="center" className={classes.details}>
<Flex align="center" className="cf-header-subtitle">
<FeedFavicon url={props.entry.iconUrl} />
<Space w={6} />
<Text c="dimmed">
<Box c="dimmed">
{props.entry.feedName}
<span> · </span>
<RelativeDate date={props.entry.date} />
</Text>
</Box>
</Flex>
{props.expanded && (
<Box className={classes.details}>
<Text c="dimmed">
{props.entry.author && <span>by {props.entry.author}</span>}
{props.entry.author && props.entry.categories && <span>&nbsp;·&nbsp;</span>}
{props.entry.categories && <span>{props.entry.categories}</span>}
</Text>
<Box className="cf-header-details">
{props.entry.author && <span>by {props.entry.author}</span>}
{props.entry.author && props.entry.categories && <span>&nbsp;·&nbsp;</span>}
{props.entry.categories && <span>{props.entry.categories}</span>}
</Box>
)}
</Box>

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { ActionIcon, Anchor, Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import { markEntry } from "app/entries/thunks"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { ActionIcon, Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import { starEntry } from "app/entries/thunks"

View File

@@ -1,8 +1,8 @@
import { msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Box, Center, CloseButton, Divider, Group, Indicator, Popover, TextInput } from "@mantine/core"
import { useForm } from "@mantine/form"
import { reloadEntries, search, selectNextEntry, selectPreviousEntry } from "app/entries/thunks"
import { markAllAsReadWithConfirmationIfRequired, reloadEntries, search, selectNextEntry, selectPreviousEntry } from "app/entries/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import { changeReadingMode, changeReadingOrder } from "app/user/thunks"
import { ActionButton } from "components/ActionButton"
@@ -14,6 +14,7 @@ import { useEffect } from "react"
import {
TbArrowDown,
TbArrowUp,
TbChecks,
TbExternalLink,
TbEye,
TbEyeOff,
@@ -24,7 +25,6 @@ import {
TbSortDescending,
TbUser,
} from "react-icons/tb"
import { MarkAllAsReadButton } from "./MarkAllAsReadButton"
import { ProfileMenu } from "./ProfileMenu"
function HeaderDivider() {
@@ -42,11 +42,14 @@ function HeaderToolbar(props: { children: React.ReactNode }) {
display: "flex",
justifyContent: "space-between",
}}
className="cf-toolbar"
>
{props.children}
</Box>
) : (
<Group gap={spacing}>{props.children}</Group>
<Group gap={spacing} className="cf-toolbar">
{props.children}
</Group>
)
}
@@ -75,7 +78,7 @@ export function Header() {
if (!settings) return <Loader />
return (
<Center>
<Center className="cf-toolbar-wrapper">
<HeaderToolbar>
<ActionButton
icon={<TbArrowUp size={iconSize} />}
@@ -111,7 +114,11 @@ export function Header() {
label={msg`Refresh`}
onClick={async () => await dispatch(reloadEntries())}
/>
<MarkAllAsReadButton iconSize={iconSize} />
<ActionButton
icon={<TbChecks size={iconSize} />}
label={msg`Mark all as read`}
onClick={() => dispatch(markAllAsReadWithConfirmationIfRequired())}
/>
<HeaderDivider />

View File

@@ -1,97 +0,0 @@
import { Trans, msg } from "@lingui/macro"
import { Button, Code, Group, Modal, Slider, Stack, Text } from "@mantine/core"
import { markAllEntries } from "app/entries/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import { ActionButton } from "components/ActionButton"
import { useState } from "react"
import { TbChecks } from "react-icons/tb"
export function MarkAllAsReadButton(props: { iconSize: number }) {
const [opened, setOpened] = useState(false)
const [threshold, setThreshold] = useState(0)
const source = useAppSelector(state => state.entries.source)
const sourceLabel = useAppSelector(state => state.entries.sourceLabel)
const entriesTimestamp = useAppSelector(state => state.entries.timestamp) ?? Date.now()
const markAllAsReadConfirmation = useAppSelector(state => state.user.settings?.markAllAsReadConfirmation)
const dispatch = useAppDispatch()
const buttonClicked = () => {
if (markAllAsReadConfirmation) {
setThreshold(0)
setOpened(true)
} else {
dispatch(
markAllEntries({
sourceType: source.type,
req: {
id: source.id,
read: true,
olderThan: Date.now(),
insertedBefore: entriesTimestamp,
},
})
)
}
}
return (
<>
<Modal opened={opened} onClose={() => setOpened(false)} title={<Trans>Mark all entries as read</Trans>}>
<Stack>
<Text size="sm">
{threshold === 0 && (
<Trans>
Are you sure you want to mark all entries of <Code>{sourceLabel}</Code> as read?
</Trans>
)}
{threshold > 0 && (
<Trans>
Are you sure you want to mark entries older than {threshold} days of <Code>{sourceLabel}</Code> as read?
</Trans>
)}
</Text>
<Slider
py="xl"
min={0}
max={28}
marks={[
{ value: 0, label: "0" },
{ value: 7, label: "7" },
{ value: 14, label: "14" },
{ value: 21, label: "21" },
{ value: 28, label: "28" },
]}
value={threshold}
onChange={setThreshold}
/>
<Group justify="flex-end">
<Button variant="default" onClick={() => setOpened(false)}>
<Trans>Cancel</Trans>
</Button>
<Button
color="red"
onClick={() => {
setOpened(false)
dispatch(
markAllEntries({
sourceType: source.type,
req: {
id: source.id,
read: true,
olderThan: Date.now() - threshold * 24 * 60 * 60 * 1000,
insertedBefore: entriesTimestamp,
},
})
)
}}
>
<Trans>Confirm</Trans>
</Button>
</Group>
</Stack>
</Modal>
<ActionButton icon={<TbChecks size={props.iconSize} />} label={msg`Mark all as read`} onClick={buttonClicked} />
</>
)
}

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import {
Box,
Divider,
@@ -7,6 +7,7 @@ import {
Menu,
SegmentedControl,
type SegmentedControlItem,
Slider,
useMantineColorScheme,
} from "@mantine/core"
import { showNotification } from "@mantine/notifications"
@@ -14,7 +15,7 @@ import { client } from "app/client"
import { redirectToAbout, redirectToAdminUsers, redirectToDonate, redirectToMetrics, redirectToSettings } from "app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import type { ViewMode } from "app/types"
import { setViewMode } from "app/user/slice"
import { setFontSizePercentage, setViewMode } from "app/user/slice"
import { reloadProfile } from "app/user/thunks"
import dayjs from "dayjs"
import { useNow } from "hooks/useNow"
@@ -100,6 +101,7 @@ export function ProfileMenu(props: ProfileMenuProps) {
const admin = useAppSelector(state => state.user.profile?.admin)
const viewMode = useAppSelector(state => state.user.localSettings.viewMode)
const forceRefreshCooldownDuration = useAppSelector(state => state.server.serverInfos?.forceRefreshCooldownDuration)
const fontSizePercentage = useAppSelector(state => state.user.localSettings.fontSizePercentage)
const dispatch = useAppDispatch()
const { colorScheme, setColorScheme } = useMantineColorScheme()
@@ -143,7 +145,7 @@ export function ProfileMenu(props: ProfileMenuProps) {
color: "green",
autoClose: 1000,
})
} catch (error) {
} catch (_) {
showNotification({
message: <Trans>Force fetching feeds is not yet available.</Trans>,
color: "red",
@@ -184,6 +186,22 @@ export function ProfileMenu(props: ProfileMenuProps) {
mb="xs"
/>
<Divider />
<Menu.Label>
<Trans>Font size</Trans>
</Menu.Label>
<Slider
min={50}
max={150}
step={5}
marks={[{ value: 100 }]}
label={v => `${v}%`}
mb="xs"
value={fontSizePercentage}
onChange={value => dispatch(setFontSizePercentage(value))}
/>
{admin && (
<>
<Divider />

View File

@@ -1,7 +1,8 @@
import { Trans } from "@lingui/macro"
import { Box, Button, Group, Stack } from "@mantine/core"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Button, Group, Stack } from "@mantine/core"
import { useForm } from "@mantine/form"
import { client, errorToStrings } from "app/client"
import { Constants } from "app/constants"
import { redirectToSelectedSource } from "app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import { Alert } from "components/Alert"
@@ -57,13 +58,27 @@ export function CustomCodeSettings() {
<form onSubmit={form.onSubmit(saveCustomCode.execute)}>
<Stack>
<CodeEditor
description={<Trans>Custom CSS rules that will be applied</Trans>}
label={<Trans>Custom CSS rules that will be applied</Trans>}
description={
<Trans>
<span>See </span>
<Anchor
href={Constants.customCssDocumentationUrl}
target="_blank"
rel="noreferrer"
style={{ fontSize: "inherit" }}
>
here
</Anchor>
<span> for more information.</span>
</Trans>
}
language="css"
{...form.getInputProps("customCss")}
/>
<CodeEditor
description={<Trans>Custom JS code that will be executed on page load</Trans>}
label={<Trans>Custom JS code that will be executed on page load</Trans>}
language="javascript"
{...form.getInputProps("customJs")}
/>

View File

@@ -1,6 +1,7 @@
import { Trans, msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Divider, Group, NumberInput, Radio, Select, SimpleGrid, Stack, Switch } from "@mantine/core"
import { Trans } from "@lingui/react/macro"
import { Box, Divider, Group, NumberInput, Radio, Select, type SelectProps, SimpleGrid, Stack, Switch } from "@mantine/core"
import type { ComboboxData } from "@mantine/core/lib/components/Combobox/Combobox.types"
import { Constants } from "app/constants"
import { useAppDispatch, useAppSelector } from "app/store"
@@ -12,6 +13,7 @@ import {
changeLanguage,
changeMarkAllAsReadConfirmation,
changeMobileFooter,
changePrimaryColor,
changeScrollMarks,
changeScrollMode,
changeScrollSpeed,
@@ -39,8 +41,9 @@ export function DisplaySettings() {
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
const dispatch = useAppDispatch()
const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor
const { _ } = useLingui()
const dispatch = useAppDispatch()
const scrollModeOptions: Record<ScrollMode, ReactNode> = {
always: <Trans>Always</Trans>,
@@ -67,10 +70,35 @@ export function DisplaySettings() {
},
]
const colorData: ComboboxData = [
{ value: "dark", label: _(msg`Dark`) },
{ value: "gray", label: _(msg`Gray`) },
{ value: "red", label: _(msg`Red`) },
{ value: "pink", label: _(msg`Pink`) },
{ value: "grape", label: _(msg`Grape`) },
{ value: "violet", label: _(msg`Violet`) },
{ value: "indigo", label: _(msg`Indigo`) },
{ value: "blue", label: _(msg`Blue`) },
{ value: "cyan", label: _(msg`Cyan`) },
{ value: "green", label: _(msg`Green`) },
{ value: "lime", label: _(msg`Lime`) },
{ value: "yellow", label: _(msg`Yellow`) },
{ value: "orange", label: _(msg`Orange`) },
{ value: "teal", label: _(msg`Teal`) },
].sort((a, b) => a.label.localeCompare(b.label))
const colorRenderer: SelectProps["renderOption"] = ({ option }) => (
<Group>
<Box h={18} w={18} bg={option.value} />
<Box>{option.label}</Box>
</Group>
)
return (
<Stack>
<Divider label={<Trans>Display</Trans>} labelPosition="center" />
<Select
description={<Trans>Language</Trans>}
label={<Trans>Language</Trans>}
value={language}
data={locales.map(l => ({
value: l.key,
@@ -79,6 +107,14 @@ export function DisplaySettings() {
onChange={async s => await (s && dispatch(changeLanguage(s)))}
/>
<Select
label={<Trans>Primary color</Trans>}
data={colorData}
value={primaryColor}
onChange={async value => value && (await dispatch(changePrimaryColor(value)))}
renderOption={colorRenderer}
/>
<Switch
label={<Trans>Show feeds and categories with no unread entries</Trans>}
checked={showRead}
@@ -114,14 +150,14 @@ export function DisplaySettings() {
<Divider label={<Trans>Entry headers</Trans>} labelPosition="center" />
<Select
description={<Trans>Show star icon</Trans>}
label={<Trans>Show star icon</Trans>}
value={starIconDisplayMode}
data={displayModeData}
onChange={async s => await dispatch(changeStarIconDisplayMode(s as IconDisplayMode))}
/>
<Select
description={<Trans>Show external link icon</Trans>}
label={<Trans>Show external link icon</Trans>}
value={externalLinkIconDisplayMode}
data={displayModeData}
onChange={async s => await dispatch(changeExternalLinkIconDisplayMode(s as IconDisplayMode))}

View File

@@ -1,5 +1,6 @@
import { Trans, msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Button, Checkbox, Divider, Group, Input, PasswordInput, Stack, Text, TextInput } from "@mantine/core"
import { useForm } from "@mantine/form"
import { openConfirmModal } from "@mantine/modals"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box, Stack } from "@mantine/core"
import { Constants } from "app/constants"
import {
@@ -10,9 +10,10 @@ import {
redirectToTagDetails,
} from "app/redirect/thunks"
import { useAppDispatch, useAppSelector } from "app/store"
import type { TreeSubscription } from "app/tree/slice"
import { collapseTreeCategory } from "app/tree/thunks"
import type { Category, Subscription } from "app/types"
import { categoryUnreadCount, flattenCategoryTree } from "app/utils"
import { categoryHasNewEntries, categoryUnreadCount, flattenCategoryTree } from "app/utils"
import { Loader } from "components/Loader"
import { OnDesktop } from "components/responsive/OnDesktop"
import React from "react"
@@ -89,6 +90,7 @@ export function Tree() {
name={<Trans>All</Trans>}
icon={allIcon}
unread={categoryUnreadCount(root)}
hasNewEntries={categoryHasNewEntries(root)}
selected={source.type === "category" && source.id === Constants.categories.all.id}
expanded={false}
level={0}
@@ -103,6 +105,7 @@ export function Tree() {
name={<Trans>Starred</Trans>}
icon={starredIcon}
unread={0}
hasNewEntries={false}
selected={source.type === "category" && source.id === Constants.categories.starred.id}
expanded={false}
level={0}
@@ -122,6 +125,7 @@ export function Tree() {
name={category.name}
icon={category.expanded ? expandedIcon : collapsedIcon}
unread={categoryUnreadCount(category)}
hasNewEntries={categoryHasNewEntries(category)}
selected={source.type === "category" && source.id === category.id}
expanded={category.expanded}
level={level}
@@ -133,7 +137,7 @@ export function Tree() {
)
}
const feedNode = (feed: Subscription, level = 0) => {
const feedNode = (feed: TreeSubscription, level = 0) => {
if (!isFeedDisplayed(feed)) return null
return (
@@ -143,6 +147,7 @@ export function Tree() {
name={feed.name}
icon={feed.iconUrl}
unread={feed.unread}
hasNewEntries={!!feed.hasNewEntries}
selected={source.type === "feed" && source.id === String(feed.id)}
level={level}
hasError={feed.errorCount > errorThreshold}
@@ -159,6 +164,7 @@ export function Tree() {
name={tag}
icon={tagIcon}
unread={0}
hasNewEntries={false}
selected={source.type === "tag" && source.id === tag}
level={0}
hasError={false}
@@ -182,7 +188,7 @@ export function Tree() {
<OnDesktop>
<TreeSearch feeds={feeds} />
</OnDesktop>
<Box>
<Box className="cf-tree">
{allCategoryNode()}
{starredCategoryNode()}
{root.children.map(c => recursiveCategoryNode(c))}

View File

@@ -15,6 +15,7 @@ interface TreeNodeProps {
expanded?: boolean
level: number
hasError: boolean
hasNewEntries: boolean
onClick: (e: React.MouseEvent, id: string) => void
onIconClick?: (e: React.MouseEvent, id: string) => void
}
@@ -68,19 +69,19 @@ export function TreeNode(props: TreeNodeProps) {
<Box
py={1}
pl={props.level * 20}
className={classes.node}
className={`${classes.node} cf-treenode cf-treenode-${props.type}`}
onClick={(e: React.MouseEvent) => props.onClick(e, props.id)}
data-id={props.id}
data-type={props.type}
data-unread-count={props.unread}
>
<Box mr={6} onClick={(e: React.MouseEvent) => props.onIconClick?.(e, props.id)}>
<Box mr={6} onClick={(e: React.MouseEvent) => props.onIconClick?.(e, props.id)} className="cf-treenode-icon">
<Center>{typeof props.icon === "string" ? <FeedFavicon url={props.icon} /> : props.icon}</Center>
</Box>
<Box className={classes.nodeText}>{props.name}</Box>
{!props.expanded && (
<Box>
<UnreadCount unreadCount={props.unread} />
<Box className="cf-treenode-unread-count">
<UnreadCount unreadCount={props.unread} showIndicator={props.hasNewEntries} />
</Box>
)}
</Box>

View File

@@ -1,6 +1,7 @@
import { Trans, msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { TextInput } from "@mantine/core"
import { Trans } from "@lingui/react/macro"
import { Box, TextInput } from "@mantine/core"
import { Spotlight, type SpotlightActionData, spotlight } from "@mantine/spotlight"
import { redirectToFeed } from "app/redirect/thunks"
import { useAppDispatch } from "app/store"
@@ -32,7 +33,7 @@ export function TreeSearch(props: TreeSearchProps) {
useMousetrap("g u", () => spotlight.open())
return (
<>
<Box className="cf-treesearch">
<TextInput
placeholder={_(msg`Search`)}
leftSection={searchIcon}
@@ -57,6 +58,6 @@ export function TreeSearch(props: TreeSearchProps) {
}}
nothingFound={<Trans>Nothing found</Trans>}
/>
</>
</Box>
)
}

View File

@@ -1,4 +1,4 @@
import { Badge, Tooltip } from "@mantine/core"
import { Badge, Indicator, Tooltip } from "@mantine/core"
import { Constants } from "app/constants"
import { tss } from "tss"
@@ -10,7 +10,7 @@ const useStyles = tss.create(() => ({
},
}))
export function UnreadCount(props: { unreadCount: number }) {
export function UnreadCount(props: { unreadCount: number; showIndicator: boolean }) {
const { classes } = useStyles()
if (props.unreadCount <= 0) return null
@@ -18,9 +18,11 @@ export function UnreadCount(props: { unreadCount: number }) {
const count = props.unreadCount >= 10000 ? "10k+" : props.unreadCount
return (
<Tooltip label={props.unreadCount} disabled={props.unreadCount === count} openDelay={Constants.tooltip.delay}>
<Badge className={classes.badge} variant="light" fullWidth>
{count}
</Badge>
<Indicator disabled={!props.showIndicator} size={4} offset={10} position="middle-start">
<Badge className={`${classes.badge} cf-badge`} variant="light" fullWidth>
{count}
</Badge>
</Indicator>
</Tooltip>
)
}

View File

@@ -1,4 +1,4 @@
import { msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { useAppSelector } from "app/store"
@@ -8,28 +8,28 @@ interface Step {
}
export const useAppLoading = () => {
const profile = useAppSelector(state => state.user.profile)
const settings = useAppSelector(state => state.user.settings)
const rootCategory = useAppSelector(state => state.tree.rootCategory)
const tags = useAppSelector(state => state.user.tags)
const profileLoaded = useAppSelector(state => !!state.user.profile)
const settingsLoaded = useAppSelector(state => !!state.user.settings)
const rootCategoryLoaded = useAppSelector(state => !!state.tree.rootCategory)
const tagsLoaded = useAppSelector(state => !!state.user.tags)
const { _ } = useLingui()
const steps: Step[] = [
{
label: _(msg`Loading settings...`),
done: !!settings,
done: settingsLoaded,
},
{
label: _(msg`Loading profile...`),
done: !!profile,
done: profileLoaded,
},
{
label: _(msg`Loading subscriptions...`),
done: !!rootCategory,
done: rootCategoryLoaded,
},
{
label: _(msg`Loading tags...`),
done: !!tags,
done: tagsLoaded,
},
]

View File

@@ -1,6 +1,6 @@
import { setWebSocketConnected } from "app/server/slice"
import { type AppDispatch, useAppDispatch, useAppSelector } from "app/store"
import { incrementUnreadCount } from "app/tree/slice"
import { newFeedEntriesDiscovered } from "app/tree/thunks"
import { useEffect } from "react"
import WebsocketHeartbeatJs from "websocket-heartbeat-js"
@@ -9,7 +9,7 @@ const handleMessage = (dispatch: AppDispatch, message: string) => {
const type = parts[0]
if (type === "new-feed-entries") {
dispatch(
incrementUnreadCount({
newFeedEntriesDiscovered({
feedId: +parts[1],
amount: +parts[2],
})

View File

@@ -57,8 +57,12 @@ function activateLocale(locale: string) {
}
export const useI18n = () => {
const locale = useAppSelector(state => state.user.settings?.language)
const locale =
useAppSelector(state => state.user.settings?.language) ??
navigator.languages.map(l => l.split("-")[0]).find(l => locales.some(locale => locale.key === l)) ??
"en"
useEffect(() => {
activateLocale(locale ?? "en")
activateLocale(locale)
}, [locale])
}

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0> هل تحتاج إلى حساب؟ </0> <1> اشترك! </ 1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "حول"
@@ -54,16 +58,17 @@ msgstr "إضافة فئة"
msgid "Add user"
msgstr "إضافة مستخدم"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "إداري"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "الكل"
@@ -104,11 +109,11 @@ msgstr "هل أنت متأكد أنك تريد حذف المستخدم <0> {user
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "هل أنت متأكد أنك تريد حذف حسابك؟ "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "هل أنت متأكد أنك تريد تعليم كافة إدخالات <0> {sourceLabel} </0> كمقروءة؟"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "هل أنت متأكد أنك تريد وضع علامة على الإدخالات الأقدم من {عتبة} يوم من <0> {sourceLabel} </0> كمقروءة؟"
@@ -132,6 +137,10 @@ msgstr "العودة"
msgid "Back to log in"
msgstr "العودة لتسجيل الدخول"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "إلغاء"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "الفئة"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "مضغوط"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "تأكيد"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "تنازلي"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "عرض"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "تنزيل"
msgid "Drag link to bookmark bar"
msgstr "اسحب الرابط إلى شريط الإشارات"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "البريد الإلكتروني"
@@ -308,8 +323,8 @@ msgstr "عنوان البريد الإلكتروني"
msgid "Edit user"
msgstr "تحرير المستخدم"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "ممكن"
@@ -345,8 +360,8 @@ msgstr "موسع"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "قم بتصدير اشتراكاتك وفئاتك كملف OPML يمكن استيراده في خدمات قراءة الأعلاف الأخرى"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "اسم الخلاصة"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "موجز URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "تصفية التعبير"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "هل نسيت كلمة المرور؟"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص بك أولاً."
@@ -394,12 +413,13 @@ msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص
msgid "Generate new API key"
msgstr "إنشاء مفتاح API جديد"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "رابط الخلاصة المولدة"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "انتقل إلى وثائق API."
msgid "Goodies"
msgstr "الأشياء الجيدة"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "المرجع نفسه"
@@ -440,13 +472,17 @@ msgstr "استيراد"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "في العرض الموسع ، التمرير عبر الإدخالات وضع علامة عليها كمقروءة"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "إبقاء غير مقروءة"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "اختصارات لوحة المفاتيح"
@@ -470,9 +506,13 @@ msgstr "آخر رسالة تحديث"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "رابط"
@@ -492,9 +532,9 @@ msgstr "تحميل الاشتراكات ..."
msgid "Loading tags..."
msgstr "تحميل العلامات ..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "تسجيل الدخول"
@@ -506,27 +546,27 @@ msgstr "تسجيل الخروج"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "إدارة المستخدمين"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "تعليم الكل كمقروء"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "تعليم كافة الإدخالات كمقروءة"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "وضع علامة كمقروء"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "وضع علامة كمقروءة حتى هنا"
@@ -546,15 +586,15 @@ msgstr "تحريك الصفحة لأسفل"
msgid "Move the page up"
msgstr "تحريك الصفحة لأعلى"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "لا"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "الاسم"
@@ -575,8 +615,8 @@ msgstr "كلمة مرور جديدة"
msgid "Newest first"
msgstr "الأحدث أولاً"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "التالي"
@@ -682,6 +722,10 @@ msgstr "ملف OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "طلب"
@@ -694,11 +738,11 @@ msgstr "والد"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "كلمة المرور"
@@ -710,8 +754,12 @@ msgstr "استعادة كلمة المرور"
msgid "Passwords do not match"
msgstr "كلمات المرور غير متطابقة"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "المنـصب"
@@ -719,6 +767,10 @@ msgstr "المنـصب"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "الملف الشخصي"
@@ -727,8 +779,12 @@ msgstr "الملف الشخصي"
msgid "Recover password"
msgstr "استعادة كلمة السر"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "تحديث"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "حفظ"
@@ -765,10 +821,10 @@ msgstr "قم بالتمرير بسلاسة عند التنقل بين الإدخ
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "بحث"
@@ -776,6 +832,14 @@ msgstr "بحث"
msgid "Search requires at least 3 characters"
msgstr "يتطلب البحث 3 أحرف على الأقل"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "ضع التركيز على الإدخال التالي دون فتحه"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "قم بالتسجيل"
@@ -865,20 +929,21 @@ msgstr "شيء سيء حدث للتو ..."
msgid "Space"
msgstr "فضاء"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "النجم"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "مميز بنجمة"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "اشتراك"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "الكلمات"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "عنوان URL للتغذية التي تريد الاشتراك فيها. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "غير مقروءة"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "إلغاء النجم"
@@ -971,6 +1040,10 @@ msgstr "اسم المستخدم"
msgid "User Name or E-mail"
msgstr "اسم المستخدم أو البريد الإلكتروني"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "تحذير"
@@ -979,6 +1052,10 @@ msgstr "تحذير"
msgid "Website"
msgstr "موقع الكتروني"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "ليس لديك أي اشتراكات حتى الآن. "

View File

@@ -33,8 +33,12 @@ 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>"
msgstr "<0>Necessites un compte?</0><1>Registreu-vos!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Sobre"
@@ -54,16 +58,17 @@ msgstr "Afegeix categoria"
msgid "Add user"
msgstr "Afegeix usuari"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Administrador"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Tot"
@@ -104,11 +109,11 @@ msgstr "Esteu segur que voleu suprimir l'usuari <0>{userName}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Esteu segur que voleu suprimir el vostre compte? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Esteu segur que voleu marcar totes les entrades de <0>{sourceLabel}</0> com a llegides?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Esteu segur que voleu marcar les entrades més antigues de {threshold} dies de <0>{sourceLabel}</0> com a llegides?"
@@ -132,6 +137,10 @@ msgstr "Enrere"
msgid "Back to log in"
msgstr "Tornar a iniciar sessió"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Extensió del navegador necessària per a Chrome"
@@ -144,27 +153,27 @@ msgstr "Extensió del navegador"
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Cancel·la"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Categoria"
@@ -204,11 +213,11 @@ msgstr "CommaFeed versió {version} ({version})."
msgid "Compact"
msgstr "Compacte"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Confirma"
@@ -240,6 +249,11 @@ msgstr "Regles CSS personalitzades que s'aplicaran"
msgid "Custom JS code that will be executed on page load"
msgstr "Codi JS personalitzat que s'executarà en carregar la pàgina"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "Fosc"
@@ -273,13 +287,14 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detallat"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Mostra"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "Donar"
@@ -291,11 +306,11 @@ msgstr "Descarrega"
msgid "Drag link to bookmark bar"
msgstr "Arrossegueu l'enllaç a la barra d'adreces d'interès"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "Correu electrònic"
@@ -308,8 +323,8 @@ msgstr "Adreça de correu electrònic"
msgid "Edit user"
msgstr "Edita l'usuari"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "activat"
@@ -345,8 +360,8 @@ msgstr "Ampliat"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Opcions de l'extensió"
@@ -354,9 +369,9 @@ msgstr "Opcions de l'extensió"
msgid "Feed name"
msgstr "Nom del canal"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL del canal"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Expressió de filtratge"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Heu oblidat la contrasenya?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "primer genereu una clau API al vostre perfil."
@@ -394,12 +413,13 @@ msgstr "primer genereu una clau API al vostre perfil."
msgid "Generate new API key"
msgstr "Genera una nova clau d'API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "URL del feed generat"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "Vés a {0}"
@@ -416,6 +436,18 @@ msgstr "Vés a la documentació de l'API."
msgid "Goodies"
msgstr "Bones"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Id"
@@ -440,13 +472,17 @@ msgstr "Importació"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "a la vista ampliada, desplaçant-se per les entrades les marqueu com a llegides"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Mantenir sense llegir"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Dreceres de teclat"
@@ -470,9 +506,13 @@ msgstr "últim missatge d'actualització"
msgid "Light"
msgstr "Clar"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Enllaç"
@@ -492,9 +532,9 @@ msgstr "S'estan carregant les subscripcions..."
msgid "Loading tags..."
msgstr "Carregant les etiquetes..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Inicia sessió"
@@ -506,27 +546,27 @@ msgstr "Tanca sessió"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Gestionar usuaris"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Marca-ho tot com a llegit"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marqueu totes les entrades com a llegides"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Marca com a llegit"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Marca com a llegit fins aquí"
@@ -546,15 +586,15 @@ msgstr "Mou la pàgina cap avall"
msgid "Move the page up"
msgstr "Mou la pàgina cap amunt"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nom"
@@ -575,8 +615,8 @@ msgstr "Contrasenya nova"
msgid "Newest first"
msgstr "El més nou primer"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Següent"
@@ -682,6 +722,10 @@ msgstr "Fitxer OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordre"
@@ -694,11 +738,11 @@ msgstr "pares"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Contrasenya"
@@ -710,8 +754,12 @@ msgstr "Recuperació de contrasenya"
msgid "Passwords do not match"
msgstr "Les contrasenyes no coincideixen"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posició"
@@ -719,6 +767,10 @@ msgstr "Posició"
msgid "Previous"
msgstr "Anterior"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Perfil"
@@ -727,8 +779,12 @@ msgstr "Perfil"
msgid "Recover password"
msgstr "Recuperar la contrasenya"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Actualitzar"
@@ -745,11 +801,11 @@ msgstr "API REST"
msgid "Right click"
msgstr "Clic dret"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Desa"
@@ -765,10 +821,10 @@ msgstr "Desplaceu-vos suaument quan navegueu entre entrades"
msgid "Scrolling"
msgstr "Desplaçament"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Cerca"
@@ -776,6 +832,14 @@ msgstr "Cerca"
msgid "Search requires at least 3 characters"
msgstr "la cerca requereix almenys 3 caràcters"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "posa el focus a la següent entrada sense obrir-la"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Registra't"
@@ -865,20 +929,21 @@ msgstr "Acaba de passar una cosa dolenta..."
msgid "Space"
msgstr "Espai"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Estrella"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Estrellat"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Subscriu-te"
@@ -915,6 +980,10 @@ msgstr "Sistema"
msgid "Tags"
msgstr "Etiquetes"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "l'URL del canal al qual us voleu subscriure. "
@@ -951,8 +1020,8 @@ msgstr "Prova la demostració!"
msgid "Unread"
msgstr "Sense llegir"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desestrellar"
@@ -971,6 +1040,10 @@ msgstr "Nom d'usuari"
msgid "User Name or E-mail"
msgstr "Nom d'usuari o correu electrònic"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Avís"
@@ -979,6 +1052,10 @@ msgstr "Avís"
msgid "Website"
msgstr "Lloc web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Encara no teniu cap subscripció. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Potřebujete účet?</0><1>Zaregistrujte se!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Asi"
@@ -54,16 +58,17 @@ msgstr "Přidat kategorii"
msgid "Add user"
msgstr "Přidat uživatele"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Správce"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Všechny"
@@ -104,11 +109,11 @@ msgstr "Opravdu chcete smazat uživatele <0>{userName}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Opravdu chcete smazat svůj účet? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Opravdu chcete označit všechny položky <0>{sourceLabel}</0> jako přečtené?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Opravdu chcete označit záznamy starší než {threshold} dnů <0>{sourceLabel}</0> jako přečtené?"
@@ -132,6 +137,10 @@ msgstr "Zpět"
msgid "Back to log in"
msgstr "Zpět k přihlášení"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Zrušit"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategorie"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompaktní"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Potvrdit"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Displej"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Stáhnout"
msgid "Drag link to bookmark bar"
msgstr "Přetáhněte odkaz na lištu záložek"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "E-mailová adresa"
msgid "Edit user"
msgstr "Upravit uživatele"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Povoleno"
@@ -345,8 +360,8 @@ msgstr "Rozbaleno"
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ů"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Název zdroje"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL zdroje"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrování výrazu"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Zapomněli jste heslo?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Nejprve ve svém profilu vygenerujte klíč API."
@@ -394,12 +413,13 @@ msgstr "Nejprve ve svém profilu vygenerujte klíč API."
msgid "Generate new API key"
msgstr "Vygenerujte nový klíč API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Generovaná adresa URL zdroje"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Přejděte na dokumentaci API."
msgid "Goodies"
msgstr "Dobroty"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "V rozšířeném zobrazení je procházením označíte jako přečtené"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Ponechat nepřečtené"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Klávesové zkratky"
@@ -470,9 +506,13 @@ msgstr "Poslední obnovovací zpráva"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Odkaz"
@@ -492,9 +532,9 @@ msgstr "Načítání odběrů..."
msgid "Loading tags..."
msgstr "Načítání značek..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Přihlaste se"
@@ -506,27 +546,27 @@ msgstr "Odhlášení"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Spravujte uživatele"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Označit vše jako přečtené"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Označte všechny položky jako přečtené"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Označit jako přečtené"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Označit jako přečtené až sem"
@@ -546,15 +586,15 @@ msgstr "Přesuňte stránku dolů"
msgid "Move the page up"
msgstr "Přesuňte stránku nahoru"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Jméno"
@@ -575,8 +615,8 @@ msgstr "Nové heslo"
msgid "Newest first"
msgstr "Nejnovější jako první"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Další"
@@ -682,6 +722,10 @@ msgstr "soubor OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Objednávka"
@@ -694,11 +738,11 @@ msgstr "Rodič"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Heslo"
@@ -710,8 +754,12 @@ msgstr "Obnovení hesla"
msgid "Passwords do not match"
msgstr "Hesla se neshodují"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Pozice"
@@ -719,6 +767,10 @@ msgstr "Pozice"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Obnovte heslo"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Obnovit"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Uložit"
@@ -765,10 +821,10 @@ msgstr "Posouvejte plynule při navigaci mezi položkami"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Hledej"
@@ -776,6 +832,14 @@ msgstr "Hledej"
msgid "Search requires at least 3 characters"
msgstr "Hledání vyžaduje alespoň 3 znaky"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Zaměřte se na další položku, aniž byste ji otevřeli"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Zaregistrujte se"
@@ -865,20 +929,21 @@ msgstr "Právě se stalo něco špatného..."
msgid "Space"
msgstr "Vesmír"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Hvězda"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "S hvězdičkou"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Přihlaste se"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Značky"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "Adresa URL kanálu, k jehož odběru se chcete přihlásit. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Nepřečteno"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Odstranit hvězdu"
@@ -971,6 +1040,10 @@ msgstr "Uživatelské jméno"
msgid "User Name or E-mail"
msgstr "Uživatelské jméno nebo e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Varování"
@@ -979,6 +1052,10 @@ msgstr "Varování"
msgid "Website"
msgstr "Webové stránky"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Zatím nemáte žádné předplatné. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Angen cyfrif?</0><1>Ymunwch!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Ynghylch"
@@ -54,16 +58,17 @@ msgstr "Ychwanegu categori"
msgid "Add user"
msgstr "Ychwanegu defnyddiwr"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Gweinyddol"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Pawb"
@@ -104,11 +109,11 @@ msgstr "Ydych chi'n siŵr eich bod am ddileu defnyddiwr <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Ydych chi'n siŵr eich bod am ddileu eich cyfrif? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Ydych chi'n siŵr eich bod am farcio bod pob cofnod o <0>{sourceLabel}</0> wedi'i ddarllen?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Ydych chi'n siŵr eich bod am farcio cofnodion sy'n hŷn na {trothwy} diwrnod o <0>{sourceLabel}</0> fel rhai sydd wedi'u darllen?"
@@ -132,6 +137,10 @@ msgstr "Yn ôl"
msgid "Back to log in"
msgstr "Yn ôl i fewngofnodi"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Diddymu"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "categori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "cryno"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Cadarnhau"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "Rhag"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Arddangos"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Lawrlwytho"
msgid "Drag link to bookmark bar"
msgstr "Llusgwch y ddolen i'r bar nod tudalen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-bost"
@@ -308,8 +323,8 @@ msgstr "cyfeiriad e-bost"
msgid "Edit user"
msgstr "Golygu defnyddiwr"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Wedi'i alluogi"
@@ -345,8 +360,8 @@ msgstr "Ehangu"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Enw porthiant"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL porthiant"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Hidlo mynegiant"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Wedi anghofio cyfrinair?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf."
@@ -394,12 +413,13 @@ msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf."
msgid "Generate new API key"
msgstr "Cynhyrchu allwedd API newydd"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "url porthiant a gynhyrchir"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Ewch i'r ddogfennaeth API."
msgid "Goodies"
msgstr "nwyddau"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Mewnforio"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Mewn gwedd estynedig, mae sgrolio trwy gofnodion yn nodi eu bod wedi'u darllen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Cadwch heb ei ddarllen"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "llwybrau byr bysellfwrdd"
@@ -470,9 +506,13 @@ msgstr "Neges adnewyddu ddiwethaf"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Cyswllt"
@@ -492,9 +532,9 @@ msgstr "Yn llwytho tanysgrifiadau..."
msgid "Loading tags..."
msgstr "Wrthi'n llwytho tagiau..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Mewngofnodi"
@@ -506,27 +546,27 @@ msgstr "Allgofnodi"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Rheoli defnyddwyr"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Marciwch y cyfan wedi'i ddarllen"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marciwch bob cofnod wedi'i ddarllen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Marciwch ei fod wedi'i ddarllen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Marciwch fel y darllenwyd hyd yma"
@@ -546,15 +586,15 @@ msgstr "Symudwch y dudalen i lawr"
msgid "Move the page up"
msgstr "Symudwch y dudalen i fyny"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "Amh"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Enw"
@@ -575,8 +615,8 @@ msgstr "Cyfrinair newydd"
msgid "Newest first"
msgstr "Y diweddaraf yn gyntaf"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Nesaf"
@@ -682,6 +722,10 @@ msgstr "ffeil OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "gorchymyn"
@@ -694,11 +738,11 @@ msgstr "rhiant"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "cyfrinair"
@@ -710,8 +754,12 @@ msgstr "Adfer Cyfrinair"
msgid "Passwords do not match"
msgstr "Nid yw cyfrineiriau yn cyfateb"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Swydd"
@@ -719,6 +767,10 @@ msgstr "Swydd"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Proffil"
@@ -727,8 +779,12 @@ msgstr "Proffil"
msgid "Recover password"
msgstr "Adfer cyfrinair"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Adnewyddu"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Arbed"
@@ -765,10 +821,10 @@ msgstr "Sgroliwch yn esmwyth wrth lywio rhwng cofnodion"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Chwilio"
@@ -776,6 +832,14 @@ msgstr "Chwilio"
msgid "Search requires at least 3 characters"
msgstr "Mae angen o leiaf 3 nod ar gyfer chwilio"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Gosodwch ffocws ar y cofnod nesaf heb ei agor"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Cofrestrwch"
@@ -865,20 +929,21 @@ msgstr "Mae rhywbeth drwg newydd ddigwydd ..."
msgid "Space"
msgstr "Gofod"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "seren"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "serennog"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Tanysgrifio"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Tagiau"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "Y URL ar gyfer y porthwr rydych chi am danysgrifio iddo. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Heb ei ddarllen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "dad-seren"
@@ -971,6 +1040,10 @@ msgstr "Enw defnyddiwr"
msgid "User Name or E-mail"
msgstr "Enw Defnyddiwr neu E-bost"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Rhybudd"
@@ -979,6 +1052,10 @@ msgstr "Rhybudd"
msgid "Website"
msgstr "Gwefan"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Nid oes gennych unrhyw danysgrifiadau eto. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Har du brug for en konto?</0><1>Tilmeld dig!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Omkring"
@@ -54,16 +58,17 @@ msgstr "Tilføj kategori"
msgid "Add user"
msgstr "Tilføj bruger"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr ""
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Alle"
@@ -104,11 +109,11 @@ msgstr "Er du sikker på, at du vil slette bruger <0>{brugernavn}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Er du sikker på, at du vil slette din konto? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Er du sikker på, at du vil markere alle poster i <0>{sourceLabel}</0> som læst?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Er du sikker på, at du vil markere poster, der er ældre end {threshold} dage af <0>{sourceLabel}</0> som læst?"
@@ -132,6 +137,10 @@ msgstr "Tilbage"
msgid "Back to log in"
msgstr "Tilbage for at logge ind"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Annuller"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Bekræft"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Skærm"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr ""
msgid "Drag link to bookmark bar"
msgstr "Træk linket til bogmærkelinjen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "E-mailadresse"
msgid "Edit user"
msgstr "Rediger bruger"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Aktiveret"
@@ -345,8 +360,8 @@ msgstr "Udvidet"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr ""
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrerende udtryk"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Glemt adgangskode?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Generer først en API-nøgle i din profil."
@@ -394,12 +413,13 @@ msgstr "Generer først en API-nøgle i din profil."
msgid "Generate new API key"
msgstr "Generer ny API-nøgle"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Genereret feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Gå til API-dokumentationen."
msgid "Goodies"
msgstr "Godbidder"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "I udvidet visning markerer du dem som læst, når du ruller gennem poster"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Forbehold ulæst"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Tastaturgenveje"
@@ -470,9 +506,13 @@ msgstr "Sidste opdateringsmeddelelse"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Indlæser abonnementer..."
msgid "Loading tags..."
msgstr "Indlæser tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Log ind"
@@ -506,27 +546,27 @@ msgstr "Log ud"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Administrer brugere"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Marker alle som læst"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marker alle poster som læst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Markér som læst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Markér som læst indtil her"
@@ -546,15 +586,15 @@ msgstr "Flyt siden ned"
msgid "Move the page up"
msgstr "Flyt siden op"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Navn"
@@ -575,8 +615,8 @@ msgstr "Ny adgangskode"
msgid "Newest first"
msgstr "Nyeste først"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Næste"
@@ -682,6 +722,10 @@ msgstr "OPML fil"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestilling"
@@ -694,11 +738,11 @@ msgstr "Forælder"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Adgangskode"
@@ -710,8 +754,12 @@ msgstr "Gendannelse af adgangskode"
msgid "Passwords do not match"
msgstr "Adgangskoder stemmer ikke overens"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr ""
@@ -719,6 +767,10 @@ msgstr ""
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Gendan adgangskode"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Opdater"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Gem"
@@ -765,10 +821,10 @@ msgstr "Rul jævnt, når du navigerer mellem poster"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Søg"
@@ -776,6 +832,14 @@ msgstr "Søg"
msgid "Search requires at least 3 characters"
msgstr "Søgning kræver mindst 3 tegn"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Sæt fokus på næste post uden at åbne den"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Tilmeld dig"
@@ -865,20 +929,21 @@ msgstr "Der er lige sket noget slemt..."
msgid "Space"
msgstr "Rum"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjerne"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Medvirkende"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Tilmeld"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL'en til det feed, du vil abonnere på. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Ulæst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
@@ -971,6 +1040,10 @@ msgstr "Brugernavn"
msgid "User Name or E-mail"
msgstr "Brugernavn eller e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Advarsel"
@@ -979,6 +1052,10 @@ msgstr "Advarsel"
msgid "Website"
msgstr "Hjemmeside"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Du har ingen abonnementer endnu. "

View File

@@ -33,8 +33,12 @@ 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>"
msgstr "<0>Benötigen Sie ein Konto?</0><1>Hier geht's zur Registrierung!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Über"
@@ -54,16 +58,17 @@ msgstr "Kategorie hinzufügen"
msgid "Add user"
msgstr "Benutzer hinzufügen"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Verwaltung"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Alle"
@@ -104,11 +109,11 @@ msgstr "Sind Sie sicher, dass Sie Benutzer <0>{userName}</0> löschen möchten?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Sind Sie sicher, dass Sie Ihr Konto löschen möchten?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Sind Sie sicher, dass Sie alle Einträge von <0>{sourceLabel}</0> als gelesen markieren möchten?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Sind Sie sicher, dass Sie Einträge, die älter als {threshold} Tage von <0>{sourceLabel}</0> sind, als gelesen markieren möchten?"
@@ -132,6 +137,10 @@ msgstr "Zurück"
msgid "Back to log in"
msgstr "Zurück zum Login"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Browser-Erweiterung für Chrome benötigt"
@@ -144,27 +153,27 @@ msgstr "Browser-Erweiterung"
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Abbrechen"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategorie"
@@ -204,11 +213,11 @@ msgstr "CommaFeed version {version} ({revision})."
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Bestätigen"
@@ -240,6 +249,11 @@ msgstr "Eigene CSS Regeln die angewandt werden"
msgid "Custom JS code that will be executed on page load"
msgstr "Einer JS Code der beim Laden der Seite ausgeführt wird"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "Dunkel"
@@ -273,13 +287,14 @@ msgstr "Beschr"
msgid "Detailed"
msgstr "Detailliert"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Anzeige"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "Spenden"
@@ -291,11 +306,11 @@ msgstr "Herunterladen"
msgid "Drag link to bookmark bar"
msgstr "Link in Lesezeichenleiste ziehen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-Mail"
@@ -308,8 +323,8 @@ msgstr "E-Mail-Adresse"
msgid "Edit user"
msgstr "Benutzer bearbeiten"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Aktiviert"
@@ -345,8 +360,8 @@ msgstr "Erweitert"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Erweiterungsoptionen"
@@ -354,9 +369,9 @@ msgstr "Erweiterungsoptionen"
msgid "Feed name"
msgstr "Feedname"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Feed-URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filterausdruck"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Passwort vergessen?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil."
@@ -394,12 +413,13 @@ msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil."
msgid "Generate new API key"
msgstr "Neuen API-Schlüssel generieren"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Generierte Feed-URL"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "Gehe zu {0}"
@@ -416,6 +436,18 @@ msgstr "Gehen Sie zur API-Dokumentation."
msgid "Goodies"
msgstr "Goodies"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Importieren"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "In der erweiterten Ansicht werden Einträge beim Scrollen als gelesen markiert"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Ungelesen lassen"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Tastaturkürzel"
@@ -470,9 +506,13 @@ msgstr "Letzte Aktualisierungsmeldung"
msgid "Light"
msgstr "Hell"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Verbindung"
@@ -492,9 +532,9 @@ msgstr "Abonnements werden geladen..."
msgid "Loading tags..."
msgstr "Tags werden geladen..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Einloggen"
@@ -506,27 +546,27 @@ msgstr "Abmelden"
msgid "Long press"
msgstr "Langer Tastendruck"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Benutzer verwalten"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Alle als gelesen markieren"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Alle Einträge als gelesen markieren"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Als gelesen markieren"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Bis hierhin als gelesen markieren"
@@ -546,15 +586,15 @@ msgstr "Seite nach unten verschieben"
msgid "Move the page up"
msgstr "Bewege die Seite nach oben"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "n.v."
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr ""
@@ -575,8 +615,8 @@ msgstr "Neues Passwort"
msgid "Newest first"
msgstr "Neueste zuerst"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Weiter"
@@ -682,6 +722,10 @@ msgstr "OPML-Datei"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestellung"
@@ -694,11 +738,11 @@ msgstr "Übergeordnet"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Passwort"
@@ -710,8 +754,12 @@ msgstr "Passwortwiederherstellung"
msgid "Passwords do not match"
msgstr "Passwörter stimmen nicht überein"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Position"
@@ -719,6 +767,10 @@ msgstr "Position"
msgid "Previous"
msgstr "Vorheriges"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Kennwort wiederherstellen"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Aktualisieren"
@@ -745,11 +801,11 @@ msgstr "REST-API"
msgid "Right click"
msgstr "Rechtsklick"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Speichern"
@@ -765,10 +821,10 @@ msgstr "Schnelles Scrollen beim Navigieren zwischen Einträgen"
msgid "Scrolling"
msgstr "Scrollen"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Suche"
@@ -776,6 +832,14 @@ msgstr "Suche"
msgid "Search requires at least 3 characters"
msgstr "Suche erfordert mindestens 3 Zeichen"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Fokus auf den nächsten Eintrag setzen, ohne ihn zu öffnen"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Melden Sie sich an"
@@ -865,20 +929,21 @@ msgstr "Etwas Schlimmes ist gerade passiert..."
msgid "Space"
msgstr "Raum"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stern"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Markiert"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Abonnieren"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "Die URL für den Feed, den Sie abonnieren möchten. "
@@ -951,8 +1020,8 @@ msgstr "Testen Sie die Demo!"
msgid "Unread"
msgstr "Ungelesen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Stern entfernen"
@@ -971,6 +1040,10 @@ msgstr "Benutzername"
msgid "User Name or E-mail"
msgstr "Benutzername oder E-Mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Warnung"
@@ -979,6 +1052,10 @@ msgstr "Warnung"
msgid "Website"
msgstr "Webseite"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Sie haben noch keine Abonnements."

View File

@@ -33,8 +33,12 @@ 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>"
msgstr "<0>Need an account?</0><1>Sign up!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr "<0>See </0><1>here</1><2> for more information.</2>"
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "About"
@@ -54,16 +58,17 @@ msgstr "Add category"
msgid "Add user"
msgstr "Add user"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Admin"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "All"
@@ -104,11 +109,11 @@ msgstr "Are you sure you want to delete user <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Are you sure you want to delete your account? There's no turning back!"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
@@ -132,6 +137,10 @@ msgstr "Back"
msgid "Back to log in"
msgstr "Back to log in"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr "Blue"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Browser extension required for Chrome"
@@ -144,27 +153,27 @@ msgstr "Browser extention"
msgid "Browser tab"
msgstr "Browser tab"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Cancel"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Category"
@@ -204,11 +213,11 @@ msgstr "CommaFeed version {version} ({revision})."
msgid "Compact"
msgstr "Compact"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Confirm"
@@ -240,6 +249,11 @@ msgstr "Custom CSS rules that will be applied"
msgid "Custom JS code that will be executed on page load"
msgstr "Custom JS code that will be executed on page load"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr "Cyan"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "Dark"
@@ -273,13 +287,14 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detailed"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Display"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "Donate"
@@ -291,11 +306,11 @@ msgstr "Download"
msgid "Drag link to bookmark bar"
msgstr "Drag link to bookmark bar"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-mail"
@@ -308,8 +323,8 @@ msgstr "E-mail address"
msgid "Edit user"
msgstr "Edit user"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Enabled"
@@ -345,8 +360,8 @@ msgstr "Expanded"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Extension options"
@@ -354,9 +369,9 @@ msgstr "Extension options"
msgid "Feed name"
msgstr "Feed name"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Feed URL"
@@ -376,6 +391,10 @@ msgstr "Fever API URL"
msgid "Filtering expression"
msgstr "Filtering expression"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr "Font size"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr "Force fetching feeds is not yet available."
@@ -384,9 +403,9 @@ msgstr "Force fetching feeds is not yet available."
msgid "Forgot password?"
msgstr "Forgot password?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Generate an API key in your profile first."
@@ -394,12 +413,13 @@ msgstr "Generate an API key in your profile first."
msgid "Generate new API key"
msgstr "Generate new API key"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Generated feed url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "Go to {0}"
@@ -416,6 +436,18 @@ msgstr "Go to the API documentation."
msgid "Goodies"
msgstr "Goodies"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr "Grape"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr "Gray"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr "Green"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Id"
@@ -440,13 +472,17 @@ msgstr "Import"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "In expanded view, scrolling through entries mark them as read"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr "Indigo"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Keep unread"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Keyboard shortcuts"
@@ -470,9 +506,13 @@ msgstr "Last refresh message"
msgid "Light"
msgstr "Light"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr "Lime"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Link"
@@ -492,9 +532,9 @@ msgstr "Loading subscriptions..."
msgid "Loading tags..."
msgstr "Loading tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Log in"
@@ -506,27 +546,27 @@ msgstr "Logout"
msgid "Long press"
msgstr "Long press"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Manage users"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Mark all as read"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Mark all entries as read"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Mark as read"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Mark as read up to here"
@@ -546,15 +586,15 @@ msgstr "Move the page down"
msgid "Move the page up"
msgstr "Move the page up"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Name"
@@ -575,8 +615,8 @@ msgstr "New password"
msgid "Newest first"
msgstr "Newest first"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Next"
@@ -682,6 +722,10 @@ msgstr "OPML file"
msgid "OPML file is required"
msgstr "OPML file is required"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr "Orange"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Order"
@@ -694,11 +738,11 @@ msgstr "Parent"
msgid "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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Password"
@@ -710,8 +754,12 @@ msgstr "Password Recovery"
msgid "Passwords do not match"
msgstr "Passwords do not match"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr "Pink"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Position"
@@ -719,6 +767,10 @@ msgstr "Position"
msgid "Previous"
msgstr "Previous"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr "Primary color"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profile"
@@ -727,8 +779,12 @@ msgstr "Profile"
msgid "Recover password"
msgstr "Recover password"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr "Red"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Refresh"
@@ -745,11 +801,11 @@ msgstr "REST API"
msgid "Right click"
msgstr "Right click"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Save"
@@ -765,10 +821,10 @@ msgstr "Scroll smoothly when navigating between entries"
msgid "Scrolling"
msgstr "Scrolling"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Search"
@@ -776,6 +832,14 @@ msgstr "Search"
msgid "Search requires at least 3 characters"
msgstr "Search requires at least 3 characters"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr "Select next unread feed/category"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr "Select previous unread feed/category"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Set focus on next entry without opening it"
@@ -850,9 +914,9 @@ msgstr "Show unread count in tab favicon"
msgid "Show unread count in tab title"
msgstr "Show unread count in tab title"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Sign up"
@@ -865,20 +929,21 @@ msgstr "Something bad just happened..."
msgid "Space"
msgstr "Space"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Star"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Starred"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Subscribe"
@@ -915,6 +980,10 @@ msgstr "System"
msgid "Tags"
msgstr "Tags"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr "Teal"
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
@@ -951,8 +1020,8 @@ msgstr "Try the demo!"
msgid "Unread"
msgstr "Unread"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Unstar"
@@ -971,6 +1040,10 @@ msgstr "User name"
msgid "User Name or E-mail"
msgstr "User Name or E-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr "Violet"
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Warning"
@@ -979,6 +1052,10 @@ msgstr "Warning"
msgid "Website"
msgstr "Website"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "Yellow"
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"

View File

@@ -34,8 +34,12 @@ 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>"
msgstr "<0>¿Necesitas una cuenta?</0><1>¡Regístrate!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Acerca de"
@@ -55,16 +59,17 @@ msgstr "Añadir categoría"
msgid "Add user"
msgstr "Añadir usuario"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Administrador"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Todo"
@@ -105,11 +110,11 @@ msgstr "¿Estás seguro de que deseas eliminar el usuario <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "¿Estás seguro de que quieres eliminar tu cuenta? ¡No hay vuelta atrás!"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "¿Estás seguro de que deseas marcar todas las entradas de <0>{sourceLabel}</0> como leídas?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "¿Estás seguro de que deseas marcar las entradas anteriores a {threshold} días de <0>{sourceLabel}</0> como leídas?"
@@ -133,6 +138,10 @@ msgstr "Atrás"
msgid "Back to log in"
msgstr "Volver a iniciar sesión"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Se requiere extensión de navegador para Chrome"
@@ -145,27 +154,27 @@ msgstr "Extensión del navegador"
msgid "Browser tab"
msgstr "Pestaña del navegador"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Cancelar"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Categoría"
@@ -205,11 +214,11 @@ msgstr "Versión de CommaFeed {version} ({revision})."
msgid "Compact"
msgstr "Compacto"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Confirmar"
@@ -241,6 +250,11 @@ msgstr "Reglas CSS personalizadas que se aplicarán"
msgid "Custom JS code that will be executed on page load"
msgstr "Código JS personalizado que se ejecutará al cargar la página"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "Oscuro"
@@ -274,13 +288,14 @@ msgstr "Desc"
msgid "Detailed"
msgstr "Detallado"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Mostrar"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "Donar"
@@ -292,11 +307,11 @@ msgstr "Descargar"
msgid "Drag link to bookmark bar"
msgstr "Arrastra el enlace a la barra de marcadores"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "Correo electrónico"
@@ -309,8 +324,8 @@ msgstr "Dirección de correo electrónico"
msgid "Edit user"
msgstr "Editar usuario"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Habilitado"
@@ -346,8 +361,8 @@ msgstr "Expandido"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Opciones de la extensión"
@@ -355,9 +370,9 @@ msgstr "Opciones de la extensión"
msgid "Feed name"
msgstr "Nombre del feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL del feed"
@@ -377,6 +392,10 @@ msgstr "URL de la API de Fever"
msgid "Filtering expression"
msgstr "Expresión de filtrado"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -385,9 +404,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "¿Olvidaste la contraseña?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Primero genere una clave API en su perfil."
@@ -395,12 +414,13 @@ msgstr "Primero genere una clave API en su perfil."
msgid "Generate new API key"
msgstr "Generar nueva clave API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "URL del feed generado"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "Ir a {0}"
@@ -417,6 +437,18 @@ msgstr "Ir a la documentación de la API."
msgid "Goodies"
msgstr "Golosinas"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Identificación"
@@ -441,13 +473,17 @@ msgstr "Importar"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "En la vista ampliada, al desplazarse por las entradas marcarlas como leídas"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Mantener sin leer"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Atajos de teclado"
@@ -471,9 +507,13 @@ msgstr "Último mensaje de actualización"
msgid "Light"
msgstr "Claro"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Enlace"
@@ -493,9 +533,9 @@ msgstr "Cargando suscripciones..."
msgid "Loading tags..."
msgstr "Cargando etiquetas..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Iniciar sesión"
@@ -507,27 +547,27 @@ msgstr "Cerrar sesión"
msgid "Long press"
msgstr "Pulsación larga"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Administrar usuarios"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Marcar todo como leído"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marcar todas las entradas como leídas"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Marcar como leído"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Marcar como leído hasta aquí"
@@ -547,15 +587,15 @@ msgstr "Mover la página hacia abajo"
msgid "Move the page up"
msgstr "Mover la página hacia arriba"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "N/D"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nombre"
@@ -576,8 +616,8 @@ msgstr "Nueva contraseña"
msgid "Newest first"
msgstr "Las más recientes primero"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Siguiente"
@@ -683,6 +723,10 @@ msgstr "Archivo OPML"
msgid "OPML file is required"
msgstr "Es necesario un archivo OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Orden"
@@ -695,11 +739,11 @@ msgstr "Padre"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Contraseña"
@@ -711,8 +755,12 @@ msgstr "Recuperación de contraseña"
msgid "Passwords do not match"
msgstr "Las contraseñas no coinciden"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posición"
@@ -720,6 +768,10 @@ msgstr "Posición"
msgid "Previous"
msgstr "Previo"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Perfil"
@@ -728,8 +780,12 @@ msgstr "Perfil"
msgid "Recover password"
msgstr "Recuperar contraseña"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Actualizar"
@@ -746,11 +802,11 @@ msgstr "API REST"
msgid "Right click"
msgstr "Clic derecho"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Guardar"
@@ -766,10 +822,10 @@ msgstr "Desplazarse suavemente al navegar entre entradas"
msgid "Scrolling"
msgstr "Desplazarse"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Buscar"
@@ -777,6 +833,14 @@ msgstr "Buscar"
msgid "Search requires at least 3 characters"
msgstr "La búsqueda requiere al menos 3 caracteres"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Establecer el foco en la siguiente entrada sin abrirla"
@@ -851,9 +915,9 @@ msgstr "Mostrar recuento de no leídos en la pestaña favicon"
msgid "Show unread count in tab title"
msgstr "Mostrar recuento de no leídos en el título de la pestaña"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Registrarse"
@@ -866,20 +930,21 @@ msgstr "Algo malo acaba de pasar..."
msgid "Space"
msgstr "Espacio"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Estrella"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Destacado"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Suscribirse"
@@ -916,6 +981,10 @@ msgstr "Sistema"
msgid "Tags"
msgstr "Etiquetas"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "La URL del feed al que desea suscribirse. También puede utilizar la URL del sitio web directamente y CommaFeed intentará encontrar el feed en la página."
@@ -952,8 +1021,8 @@ msgstr "¡Prueba la demostración!"
msgid "Unread"
msgstr "No leído"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desmarcar"
@@ -972,6 +1041,10 @@ msgstr "Nombre de usuario"
msgid "User Name or E-mail"
msgstr "Nombre de usuario o correo electrónico"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Advertencia"
@@ -980,6 +1053,10 @@ msgstr "Advertencia"
msgid "Website"
msgstr "Sitio web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Aún no tienes ninguna suscripción. ¿Por qué no intentas agregar una haciendo clic en el signo + en la parte superior de la página?"

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>به یک حساب نیاز دارید؟</0><1>ثبت نام کنید!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "در مورد"
@@ -54,16 +58,17 @@ msgstr "اضافه کردن دسته"
msgid "Add user"
msgstr "افزودن کاربر"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "مدیر"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "همه"
@@ -104,11 +109,11 @@ msgstr "آیا مطمئن هستید که می خواهید کاربر <0>{userN
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "آیا مطمئن هستید که می خواهید حساب خود را حذف کنید؟ "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "آیا مطمئن هستید که می خواهید همه ورودی های <0>{sourceLabel}</0> را به عنوان خوانده شده علامت گذاری کنید؟"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "آیا مطمئن هستید که می خواهید ورودی های قدیمی تر از {threshold} روز <0>{sourceLabel}</0> را به عنوان خوانده شده علامت گذاری کنید؟"
@@ -132,6 +137,10 @@ msgstr "برگشت"
msgid "Back to log in"
msgstr "بازگشت برای ورود به سیستم"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "لغو"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "مقوله"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "فشرده"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "تأیید کنید"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "توصیف"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "نمایش"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "دانلود"
msgid "Drag link to bookmark bar"
msgstr "پیوند را به نوار نشانک بکشید"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "ایمیل"
@@ -308,8 +323,8 @@ msgstr "آدرس ایمیل"
msgid "Edit user"
msgstr "ویرایش کاربر"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "فعال"
@@ -345,8 +360,8 @@ msgstr "گسترش یافت"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "اشتراک ها و دسته های خود را به عنوان یک فایل OPML صادر کنید که می تواند در سایر خدمات خواندن فید وارد شود"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "نام فید"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL فید"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "بیان فیلتر"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "رمز عبور را فراموش کرده اید؟"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید."
@@ -394,12 +413,13 @@ msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید.
msgid "Generate new API key"
msgstr "کلید API جدید ایجاد کنید"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "آدرس اینترنتی فید تولید شده"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "به مستندات API بروید."
msgid "Goodies"
msgstr "خوبی ها"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "شناسه"
@@ -440,13 +472,17 @@ msgstr "واردات"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "در نمای بازشده، پیمایش در ورودی‌ها، آنها را به عنوان خوانده شده علامت‌گذاری می‌کند"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "خوانده نشده نگه دارید"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "میانبرهای صفحه کلید"
@@ -470,9 +506,13 @@ msgstr "آخرین پیام تازه کردن"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "پیوند"
@@ -492,9 +532,9 @@ msgstr "بارگیری اشتراک ها..."
msgid "Loading tags..."
msgstr "بارگیری برچسب ها..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "وارد شوید"
@@ -506,27 +546,27 @@ msgstr "خروج"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "کاربران را مدیریت کنید"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "همه را به عنوان خوانده شده علامت گذاری کنید"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "همه ورودی ها را به عنوان خوانده شده علامت گذاری کنید"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "علامت گذاری به عنوان خوانده شده"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "تا اینجا به عنوان خوانده شده علامت بزنید"
@@ -546,15 +586,15 @@ msgstr "صفحه را به پایین ببرید"
msgid "Move the page up"
msgstr "صفحه را به بالا ببرید"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "نام"
@@ -575,8 +615,8 @@ msgstr "رمز عبور جدید"
msgid "Newest first"
msgstr "ابتدا جدیدترین"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "بعد"
@@ -682,6 +722,10 @@ msgstr "فایل OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "سفارش"
@@ -694,11 +738,11 @@ msgstr "پدر و مادر"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "رمز عبور"
@@ -710,8 +754,12 @@ msgstr "بازیابی رمز عبور"
msgid "Passwords do not match"
msgstr "گذرواژه ها مطابقت ندارند"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "موقعیت"
@@ -719,6 +767,10 @@ msgstr "موقعیت"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "نمایه"
@@ -727,8 +779,12 @@ msgstr "نمایه"
msgid "Recover password"
msgstr "بازیابی رمز عبور"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "تازه کردن"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "ذخیره کنید"
@@ -765,10 +821,10 @@ msgstr "هنگام پیمایش بین ورودی‌ها به آرامی حرک
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "جستجو"
@@ -776,6 +832,14 @@ msgstr "جستجو"
msgid "Search requires at least 3 characters"
msgstr "جستجو به حداقل 3 کاراکتر نیاز دارد"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "فوکوس را روی ورودی بعدی بدون باز کردن آن تنظیم کنید"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "ثبت نام کنید"
@@ -865,20 +929,21 @@ msgstr "اتفاق بدی افتاد..."
msgid "Space"
msgstr "فضا"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "ستاره"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "ستاره دار"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "مشترک شوید"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "برچسب ها"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL فیدی که می خواهید در آن مشترک شوید. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "خوانده نشده"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
@@ -971,6 +1040,10 @@ msgstr "نام کاربری"
msgid "User Name or E-mail"
msgstr "نام کاربری یا ایمیل"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "هشدار"
@@ -979,6 +1052,10 @@ msgstr "هشدار"
msgid "Website"
msgstr "وب سایت"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "شما هنوز هیچ اشتراکی ندارید. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Tarvitsetko tilin?</0><1>Rekisteröidy!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Noin"
@@ -54,16 +58,17 @@ msgstr "Lisää luokka"
msgid "Add user"
msgstr "Lisää käyttäjä"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Järjestelmänvalvoja"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Kaikki"
@@ -104,11 +109,11 @@ msgstr "Haluatko varmasti poistaa käyttäjän <0>{userName}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Haluatko varmasti poistaa tilisi? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Haluatko varmasti merkitä kaikki kohteen <0>{sourceLabel}</0> merkinnät luetuiksi?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Haluatko varmasti merkitä <0>{sourceLabel}</0>:n {threshold} päivää vanhemmat merkinnät luetuiksi?"
@@ -132,6 +137,10 @@ msgstr "Takaisin"
msgid "Back to log in"
msgstr "Takaisin sisäänkirjautumiseen"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Peruuta"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Luokka"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompakti"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Vahvista"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Näyttö"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Lataa"
msgid "Drag link to bookmark bar"
msgstr "Vedä linkki kirjanmerkkipalkkiin"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "Sähköposti"
@@ -308,8 +323,8 @@ msgstr "Sähköpostiosoite"
msgid "Edit user"
msgstr "Muokkaa käyttäjää"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Käytössä"
@@ -345,8 +360,8 @@ msgstr "Laajennettu"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Syötteen nimi"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Syötteen URL-osoite"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Suodattava lauseke"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Unohditko salasanan?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Luo ensin API-avain profiiliisi."
@@ -394,12 +413,13 @@ msgstr "Luo ensin API-avain profiiliisi."
msgid "Generate new API key"
msgstr "Luo uusi API-avain"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Luotu syötteen URL-osoite"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Siirry API-dokumentaatioon."
msgid "Goodies"
msgstr "Hyvää"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Tuo"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Merkitse ne luetuiksi laajennetussa näkymässä vierittämällä merkintöjä"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Pidä lukematta"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Pikanäppäimet"
@@ -470,9 +506,13 @@ msgstr "Viimeinen päivitysviesti"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Linkki"
@@ -492,9 +532,9 @@ msgstr "Ladataan tilauksia..."
msgid "Loading tags..."
msgstr "Ladataan tunnisteita..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Kirjaudu sisään"
@@ -506,27 +546,27 @@ msgstr "Uloskirjautuminen"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Hallitse käyttäjiä"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Merkitse kaikki luetuiksi"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Merkitse kaikki merkinnät luetuiksi"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Merkitse luetuksi"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Merkitse luetuksi tähän asti"
@@ -546,15 +586,15 @@ msgstr "Siirrä sivua alaspäin"
msgid "Move the page up"
msgstr "Siirrä sivua ylöspäin"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nimi"
@@ -575,8 +615,8 @@ msgstr "Uusi salasana"
msgid "Newest first"
msgstr "Uusin ensin"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Seuraava"
@@ -682,6 +722,10 @@ msgstr "OPML-tiedosto"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Tilaus"
@@ -694,11 +738,11 @@ msgstr "Vanhempi"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Salasana"
@@ -710,8 +754,12 @@ msgstr "Salasanan palautus"
msgid "Passwords do not match"
msgstr "Salasanat eivät täsmää"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Sijainti"
@@ -719,6 +767,10 @@ msgstr "Sijainti"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profiili"
@@ -727,8 +779,12 @@ msgstr "Profiili"
msgid "Recover password"
msgstr "Palauta salasana"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Päivitä"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Tallenna"
@@ -765,10 +821,10 @@ msgstr "Selaa sujuvasti navigoidessasi merkintöjen välillä"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Etsi"
@@ -776,6 +832,14 @@ msgstr "Etsi"
msgid "Search requires at least 3 characters"
msgstr "Haku vaatii vähintään 3 merkkiä"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Keskitä seuraavaan merkintään avaamatta sitä"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Rekisteröidy"
@@ -865,20 +929,21 @@ msgstr "Jotain pahaa tapahtui juuri..."
msgid "Space"
msgstr "Avaruus"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Tähti"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Tähdellä merkitty"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Tilaa"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "Sen syötteen URL-osoite, jonka haluat tilata. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Lukematon"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Poista tähti"
@@ -971,6 +1040,10 @@ msgstr "Käyttäjänimi"
msgid "User Name or E-mail"
msgstr "Käyttäjänimi tai sähköpostiosoite"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Varoitus"
@@ -979,6 +1052,10 @@ msgstr "Varoitus"
msgid "Website"
msgstr "Verkkosivusto"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Sinulla ei ole vielä tilauksia. "

View File

@@ -33,8 +33,12 @@ 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>"
msgstr "<0>Besoin d'un compte ?</0><1>Enregistrez-vous !</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "À propos"
@@ -54,16 +58,17 @@ msgstr "Ajouter une catégorie"
msgid "Add user"
msgstr "Ajouter un utilisateur"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Administrateur"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Tout"
@@ -104,11 +109,11 @@ msgstr "Êtes-vous sûr de vouloir supprimer l'utilisateur <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Êtes-vous sûr de vouloir supprimer définitivement votre compte ?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Êtes-vous sûr de vouloir marquer toutes les entrées de <0>{sourceLabel}</0> comme lues ?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Êtes-vous sûr de vouloir marquer les entrées de <0>{sourceLabel}</0> plus anciennes que {threshold} jours comme lues ?"
@@ -132,6 +137,10 @@ msgstr "Retour"
msgid "Back to log in"
msgstr "Retour à la connexion"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr "Bleu"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "L'extension navigateur est nécessaire sur Chrome"
@@ -144,27 +153,27 @@ msgstr "Extension navigateur"
msgid "Browser tab"
msgstr "Onglet navigateur"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Annuler"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Catégorie"
@@ -204,11 +213,11 @@ msgstr "CommaFeed version {version} ({revision})."
msgid "Compact"
msgstr "Compact"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Confirmer"
@@ -240,6 +249,11 @@ msgstr "Code CSS personnalisé qui sera appliqué"
msgid "Custom JS code that will be executed on page load"
msgstr "Code JS personnalisé qui sera appliqué au chargement des pages"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr "Cyan"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "Foncé"
@@ -273,13 +287,14 @@ msgstr "Descendant"
msgid "Detailed"
msgstr "Vue détaillée"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Affichage"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "Faire un don"
@@ -291,11 +306,11 @@ msgstr "Télécharger"
msgid "Drag link to bookmark bar"
msgstr "Déplacez le lien vers la barre de favoris"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-mail"
@@ -308,8 +323,8 @@ msgstr "Adresse e-mail"
msgid "Edit user"
msgstr "Modifier un utilisateur"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Actif"
@@ -345,8 +360,8 @@ msgstr "Vue étendue"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Options de l'extension"
@@ -354,9 +369,9 @@ msgstr "Options de l'extension"
msgid "Feed name"
msgstr "Nom du flux"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL du flux"
@@ -376,6 +391,10 @@ msgstr "URL API Fever"
msgid "Filtering expression"
msgstr "Expression de filtrage"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr "Taille de police"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr "La récupération forcée des flux n'est pas encore disponible."
@@ -384,9 +403,9 @@ msgstr "La récupération forcée des flux n'est pas encore disponible."
msgid "Forgot password?"
msgstr "Mot de passe oublié ?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Générez d'abord une clé API dans votre profil."
@@ -394,12 +413,13 @@ msgstr "Générez d'abord une clé API dans votre profil."
msgid "Generate new API key"
msgstr "Générer une nouvelle clé API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "URL du flux généré"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "Aller à {0}"
@@ -416,6 +436,18 @@ msgstr "Aller à la documentation de l'API."
msgid "Goodies"
msgstr "Extensions"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr "Bordeaux"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr "Gris"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr "Vert"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Identifiant"
@@ -440,13 +472,17 @@ msgstr "Importer"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "En mode de lecture étendu, marquer les éléments comme lus lorsque la fenêtre descend."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr "Indigo"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Garder non lu"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Raccourcis clavier"
@@ -470,9 +506,13 @@ msgstr "Dernier message de mise à jour"
msgid "Light"
msgstr "Clair"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr "Jaune-vert"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Lien"
@@ -492,9 +532,9 @@ msgstr "Chargement des abonnements..."
msgid "Loading tags..."
msgstr "Chargement des marqueurs..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Connexion"
@@ -506,27 +546,27 @@ msgstr "Déconnexion"
msgid "Long press"
msgstr "Appui long"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Gestion des utilisateurs"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Tout marquer comme lu"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marquer toutes les entrées comme lues"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Marquer comme lu"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Marquer comme lu jusqu'ici"
@@ -546,15 +586,15 @@ msgstr "Faites défiler la page vers le bas"
msgid "Move the page up"
msgstr "Faites défiler la page vers le haut"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "N/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nom"
@@ -575,8 +615,8 @@ msgstr "Nouveau mot de passe"
msgid "Newest first"
msgstr "Plus récent en premier"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Suivant"
@@ -682,6 +722,10 @@ msgstr "Fichier OPML"
msgid "OPML file is required"
msgstr "Vous devez fournir un fichier OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr "Orange"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordre"
@@ -694,11 +738,11 @@ msgstr "Parent"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Mot de passe"
@@ -710,8 +754,12 @@ msgstr "Récupération de mot de passe"
msgid "Passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr "Rose"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Position"
@@ -719,6 +767,10 @@ msgstr "Position"
msgid "Previous"
msgstr "Précédent"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr "Couleur d'ambiance"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Récupérer le mot de passe"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr "Rouge"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Rafraîchir"
@@ -745,11 +801,11 @@ msgstr "API REST"
msgid "Right click"
msgstr "Clic droit"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Enregistrer"
@@ -765,10 +821,10 @@ msgstr "Défilement animé lors de la navigation entre les entrées"
msgid "Scrolling"
msgstr "Défilement"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Rechercher"
@@ -776,6 +832,14 @@ msgstr "Rechercher"
msgid "Search requires at least 3 characters"
msgstr "La recherche requiert au moins 3 caractères"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr "Sélectionner l'article non lu suivant/la catégorie non lue suivante"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr "Sélectionner l'article non lu précédent/la catégorie non lue précédente"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Sélectionner l'article suivant sans l'ouvrir"
@@ -850,9 +914,9 @@ msgstr "Afficher le nombre d'entrées non lues dans la favicône de l'onglet"
msgid "Show unread count in tab title"
msgstr "Afficher le nombre d'entrées non lues dans le titre de l'onglet"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Créer un compte"
@@ -865,20 +929,21 @@ msgstr "Quelque chose s'est mal passé..."
msgid "Space"
msgstr "Espace"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Ajouter aux favoris"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Favoris"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "S'abonner"
@@ -915,6 +980,10 @@ msgstr "Système"
msgid "Tags"
msgstr "Marqueurs"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr "Bleu-vert"
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "L'URL du flux auquel vous souhaitez vous abonner. Vous pouvez aussi utiliser l'URL du site directement et CommaFeed va essayer de trouver le flux dans la page."
@@ -951,8 +1020,8 @@ msgstr "Essayez la version de démonstration !"
msgid "Unread"
msgstr "Non lu"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Retirer des favoris"
@@ -971,6 +1040,10 @@ msgstr "Nom"
msgid "User Name or E-mail"
msgstr "Nom d'utilisateur ou e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr "Violet"
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Attention"
@@ -979,6 +1052,10 @@ msgstr "Attention"
msgid "Website"
msgstr "Site web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "Jaune"
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Vous n'avez pas encore d'abonnements. Pourquoi ne pas essayer d'en ajouter un en cliquant sur le signe + en haut de la page ?"

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Necesitas unha conta?</0><1>Rexístrate!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Sobre"
@@ -54,16 +58,17 @@ msgstr "Engadir categoría"
msgid "Add user"
msgstr "Engadir usuario"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Administración"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Todos"
@@ -104,11 +109,11 @@ msgstr "Estás seguro de que queres eliminar o usuario <0>{userName}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Estás seguro de que queres eliminar a túa conta? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Estás seguro de que queres marcar todas as entradas de <0>{sourceLabel}</0> como lidas?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Estás seguro de que queres marcar as entradas anteriores a {threshold} días de <0>{sourceLabel}</0> como lidas?"
@@ -132,6 +137,10 @@ msgstr "Atrás"
msgid "Back to log in"
msgstr "Volver para iniciar sesión"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Cancelar"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Categoría"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Compacto"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Confirmar"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Exhibición"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Descargar"
msgid "Drag link to bookmark bar"
msgstr "Arrastra a ligazón á barra de marcadores"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "Correo electrónico"
@@ -308,8 +323,8 @@ msgstr "Enderezo de correo electrónico"
msgid "Edit user"
msgstr "Editar usuario"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Activado"
@@ -345,8 +360,8 @@ msgstr "Ampliado"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Exporta as túas subscricións e categorías como ficheiro OPML que se pode importar noutros servizos de lectura de feeds"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Nome do feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL da fonte"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Expresión de filtrado"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Esqueceches o contrasinal?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Xera primeiro unha clave API no teu perfil."
@@ -394,12 +413,13 @@ msgstr "Xera primeiro unha clave API no teu perfil."
msgid "Generate new API key"
msgstr "Xerar nova clave de API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "URL da fonte xerada"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Ir á documentación da API."
msgid "Goodies"
msgstr "agasallos"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Importación"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Na vista ampliada, ao desprazarse polas entradas márcaas como lidas"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Manter sen ler"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "atallos de teclado"
@@ -470,9 +506,13 @@ msgstr "Última mensaxe de actualización"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Ligazón"
@@ -492,9 +532,9 @@ msgstr "Cargando subscricións..."
msgid "Loading tags..."
msgstr "Cargando etiquetas..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Iniciar sesión"
@@ -506,27 +546,27 @@ msgstr "Pechar sesión"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Xestionar usuarios"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Marcar todo como lido"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marcar todas as entradas como lidas"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Marcar como lido"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Marcar como lido ata aquí"
@@ -546,15 +586,15 @@ msgstr "Move a páxina cara abaixo"
msgid "Move the page up"
msgstr "Move a páxina cara arriba"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nome"
@@ -575,8 +615,8 @@ msgstr "novo contrasinal"
msgid "Newest first"
msgstr "o máis novo primeiro"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Seguinte"
@@ -682,6 +722,10 @@ msgstr "ficheiro OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Orde"
@@ -694,11 +738,11 @@ msgstr "Pai"
msgid "Parent Category"
msgstr "Categoría de pais"
#: 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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Contrasinal"
@@ -710,8 +754,12 @@ msgstr "Recuperación de contrasinal"
msgid "Passwords do not match"
msgstr "Os contrasinais non coinciden"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posición"
@@ -719,6 +767,10 @@ msgstr "Posición"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Perfil"
@@ -727,8 +779,12 @@ msgstr "Perfil"
msgid "Recover password"
msgstr "Recuperar o contrasinal"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Actualizar"
@@ -745,11 +801,11 @@ msgstr "API REST"
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Gardar"
@@ -765,10 +821,10 @@ msgstr "Desprácese suavemente ao navegar entre as entradas"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Busca"
@@ -776,6 +832,14 @@ msgstr "Busca"
msgid "Search requires at least 3 characters"
msgstr "A busca require polo menos 3 caracteres"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Establece o foco na seguinte entrada sen abrila"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Rexístrese"
@@ -865,20 +929,21 @@ msgstr "Algo malo pasou..."
msgid "Space"
msgstr "Espazo"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "estrela"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "estrela"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Subscríbete"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Etiquetas"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "O URL do feed ao que quere subscribirse. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Sen ler"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desestrela"
@@ -971,6 +1040,10 @@ msgstr "Nome de usuario"
msgid "User Name or E-mail"
msgstr "Nome de usuario ou correo electrónico"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Aviso"
@@ -979,6 +1052,10 @@ msgstr "Aviso"
msgid "Website"
msgstr "Páxina web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Aínda non tes ningunha subscrición. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Fiókra van szüksége?</0><1>Regisztráljon!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Kb"
@@ -54,16 +58,17 @@ msgstr "Kategória hozzáadása"
msgid "Add user"
msgstr "Felhasználó hozzáadása"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr ""
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Mind"
@@ -104,11 +109,11 @@ msgstr "Biztosan törölni szeretné a(z) <0>{userName}</0> felhasználót?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Biztosan törli a fiókját? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Biztosan olvasottként szeretné megjelölni a(z) <0>{sourceLabel}</0> összes bejegyzését?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Biztosan olvasottként szeretné megjelölni a(z) <0>{sourceLabel}</0> {threshold} napjánál régebbi bejegyzéseket?"
@@ -132,6 +137,10 @@ msgstr "Vissza"
msgid "Back to log in"
msgstr "Vissza a bejelentkezéshez"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Mégse"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategória"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Erősítse meg"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Kijelző"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Letöltés"
msgid "Drag link to bookmark bar"
msgstr "Húzza a hivatkozást a könyvjelzősávra"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "E-mail cím"
msgid "Edit user"
msgstr "Felhasználó szerkesztése"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Engedélyezve"
@@ -345,8 +360,8 @@ msgstr "Kiterjesztve"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Hírcsatorna neve"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr ""
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Szűrő kifejezés"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Elfelejtette a jelszavát?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Először generáljon API-kulcsot a profiljában."
@@ -394,12 +413,13 @@ msgstr "Először generáljon API-kulcsot a profiljában."
msgid "Generate new API key"
msgstr "Új API-kulcs létrehozása"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Hírcsatorna generált URL-je"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Nyissa meg az API dokumentációját."
msgid "Goodies"
msgstr "Jók"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Importálás"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Kibontott nézetben a bejegyzések görgetése olvasottként jelöli meg őket"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Olvasatlan marad"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Billentyűparancsok"
@@ -470,9 +506,13 @@ msgstr "Utolsó frissítési üzenet"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Előfizetések betöltése..."
msgid "Loading tags..."
msgstr "Címkék betöltése..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Jelentkezzen be"
@@ -506,27 +546,27 @@ msgstr "Kijelentkezés"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Felhasználók kezelése"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Minden megjelölése olvasottként"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Minden bejegyzés megjelölése olvasottként"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Megjelölés olvasottként"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Megjelölés idáig olvasottként"
@@ -546,15 +586,15 @@ msgstr "Mozgassa le az oldalt"
msgid "Move the page up"
msgstr "Mozgassa felfelé az oldalt"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Név"
@@ -575,8 +615,8 @@ msgstr "Új jelszó"
msgid "Newest first"
msgstr "A legújabbak először"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Következő"
@@ -682,6 +722,10 @@ msgstr "OPML fájl"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Rendelés"
@@ -694,11 +738,11 @@ msgstr "Szülő"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Jelszó"
@@ -710,8 +754,12 @@ msgstr "Jelszó helyreállítás"
msgid "Passwords do not match"
msgstr "A jelszavak nem egyeznek"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Pozíció"
@@ -719,6 +767,10 @@ msgstr "Pozíció"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Jelszó helyreállítása"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Frissítés"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Mentés"
@@ -765,10 +821,10 @@ msgstr "Sima görgetés, amikor a bejegyzések között navigál"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Keresés"
@@ -776,6 +832,14 @@ msgstr "Keresés"
msgid "Search requires at least 3 characters"
msgstr "A kereséshez legalább 3 karakter szükséges"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Állítsa a fókuszt a következő bejegyzésre anélkül, hogy megnyitná azt"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Regisztráljon"
@@ -865,20 +929,21 @@ msgstr "Valami rossz történt..."
msgid "Space"
msgstr ""
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Csillag"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Csillaggal megjelölve"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Feliratkozás"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Címkék"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "Az előfizetni kívánt hírcsatorna URL-je. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Olvasatlan"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
@@ -971,6 +1040,10 @@ msgstr "Felhasználónév"
msgid "User Name or E-mail"
msgstr "Felhasználói név vagy e-mail cím"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Figyelem"
@@ -979,6 +1052,10 @@ msgstr "Figyelem"
msgid "Website"
msgstr "Webhely"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Még nincs előfizetése. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Butuh akun?</0><1>Daftar!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Tentang"
@@ -54,16 +58,17 @@ msgstr "Tambahkan kategori"
msgid "Add user"
msgstr "Tambahkan pengguna"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr ""
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Semua"
@@ -104,11 +109,11 @@ msgstr "Apakah Anda yakin ingin menghapus pengguna <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Apakah Anda yakin ingin menghapus akun Anda? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Apakah Anda yakin ingin menandai semua entri <0>{sourceLabel}</0> sebagai telah dibaca?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Apakah Anda yakin ingin menandai entri yang lebih lama dari {threshold} hari <0>{sourceLabel}</0> sebagai telah dibaca?"
@@ -132,6 +137,10 @@ msgstr "Kembali"
msgid "Back to log in"
msgstr "Kembali untuk masuk"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Batal"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Ringkas"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Konfirmasi"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Tampilan"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Unduh"
msgid "Drag link to bookmark bar"
msgstr "Seret tautan ke bilah bookmark"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "Email"
@@ -308,8 +323,8 @@ msgstr "Alamat email"
msgid "Edit user"
msgstr "Edit pengguna"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Diaktifkan"
@@ -345,8 +360,8 @@ msgstr "Diperluas"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Nama umpan"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL Umpan"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Memfilter ekspresi"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Lupa kata sandi?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Buat kunci API di profil Anda terlebih dahulu."
@@ -394,12 +413,13 @@ msgstr "Buat kunci API di profil Anda terlebih dahulu."
msgid "Generate new API key"
msgstr "Buat kunci API baru"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Url umpan yang dihasilkan"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Buka dokumentasi API."
msgid "Goodies"
msgstr "Pernak-pernik"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Impor"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Dalam tampilan yang diperluas, menggulir entri menandainya sebagai telah dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Tetap belum dibaca"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Pintasan keyboard"
@@ -470,9 +506,13 @@ msgstr "Pesan penyegaran terakhir"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Tautan"
@@ -492,9 +532,9 @@ msgstr "Memuat langganan..."
msgid "Loading tags..."
msgstr "Memuat tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Masuk"
@@ -506,27 +546,27 @@ msgstr "Keluar"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Kelola pengguna"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Tandai semua sebagai telah dibaca"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Tandai semua entri sebagai telah dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Tandai sebagai telah dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Tandai sebagai telah dibaca sampai di sini"
@@ -546,15 +586,15 @@ msgstr "Pindahkan halaman ke bawah"
msgid "Move the page up"
msgstr "Pindahkan halaman ke atas"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "T/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nama"
@@ -575,8 +615,8 @@ msgstr "Kata sandi baru"
msgid "Newest first"
msgstr "Terbaru dulu"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Selanjutnya"
@@ -682,6 +722,10 @@ msgstr "file OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Pesan"
@@ -694,11 +738,11 @@ msgstr "Orang tua"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Kata Sandi"
@@ -710,8 +754,12 @@ msgstr "Pemulihan Kata Sandi"
msgid "Passwords do not match"
msgstr "Kata sandi tidak cocok"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posisi"
@@ -719,6 +767,10 @@ msgstr "Posisi"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Pulihkan kata sandi"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Segarkan"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Simpan"
@@ -765,10 +821,10 @@ msgstr "Gulir dengan lancar saat menavigasi antar entri"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Pencarian"
@@ -776,6 +832,14 @@ msgstr "Pencarian"
msgid "Search requires at least 3 characters"
msgstr "Pencarian membutuhkan setidaknya 3 karakter"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Tetapkan fokus pada entri berikutnya tanpa membukanya"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Daftar"
@@ -865,20 +929,21 @@ msgstr "Sesuatu yang buruk baru saja terjadi..."
msgid "Space"
msgstr "Luar Angkasa"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Bintang"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Berbintang"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Berlangganan"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Tag"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL untuk umpan yang ingin Anda langgani. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Belum Dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Hapus bintang"
@@ -971,6 +1040,10 @@ msgstr "Nama pengguna"
msgid "User Name or E-mail"
msgstr "Nama Pengguna atau Email"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Peringatan"
@@ -979,6 +1052,10 @@ msgstr "Peringatan"
msgid "Website"
msgstr "Situs Web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Anda belum memiliki langganan. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Hai bisogno di un account?</0><1>Registrati!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Circa"
@@ -54,16 +58,17 @@ msgstr "Aggiungi categoria"
msgid "Add user"
msgstr "Aggiungi utente"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Ammin"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Tutto"
@@ -104,11 +109,11 @@ msgstr "Sei sicuro di voler eliminare l'utente <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Sei sicuro di voler eliminare il tuo account? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Sei sicuro di voler contrassegnare tutte le voci di <0>{sourceLabel}</0> come lette?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Sei sicuro di voler contrassegnare le voci più vecchie di {threshold} giorni di <0>{sourceLabel}</0> come lette?"
@@ -132,6 +137,10 @@ msgstr "Indietro"
msgid "Back to log in"
msgstr "Torna per accedere"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Annulla"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Categoria"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Compatto"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Conferma"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Visualizzazione"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Scarica"
msgid "Drag link to bookmark bar"
msgstr "Trascina il collegamento sulla barra dei preferiti"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "Indirizzo e-mail"
msgid "Edit user"
msgstr "Modifica utente"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Abilitato"
@@ -345,8 +360,8 @@ msgstr "Espanso"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Nome del feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL feed"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Espressione filtrante"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Password dimenticata?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Genera prima una chiave API nel tuo profilo."
@@ -394,12 +413,13 @@ msgstr "Genera prima una chiave API nel tuo profilo."
msgid "Generate new API key"
msgstr "Genera nuova chiave API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "URL feed generato"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Vai alla documentazione dell'API."
msgid "Goodies"
msgstr "Chicche"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr "Importa"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Nella vista espansa, scorrendo le voci contrassegnale come lette"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Mantieni non letto"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Scorciatoie da tastiera"
@@ -470,9 +506,13 @@ msgstr "Ultimo messaggio di aggiornamento"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Collegamento"
@@ -492,9 +532,9 @@ msgstr "Caricamento abbonamenti..."
msgid "Loading tags..."
msgstr "Caricamento tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Accedi"
@@ -506,27 +546,27 @@ msgstr "Disconnessione"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Gestisci utenti"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Contrassegna tutto come letto"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Contrassegna tutte le voci come lette"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Contrassegna come letto"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Contrassegna come letto fino a qui"
@@ -546,15 +586,15 @@ msgstr "Sposta la pagina in basso"
msgid "Move the page up"
msgstr "Sposta la pagina in alto"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nome"
@@ -575,8 +615,8 @@ msgstr "Nuova password"
msgid "Newest first"
msgstr "Il più recente prima"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Avanti"
@@ -682,6 +722,10 @@ msgstr "file OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordine"
@@ -694,11 +738,11 @@ msgstr "Genitore"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr ""
@@ -710,8 +754,12 @@ msgstr "Recupero password"
msgid "Passwords do not match"
msgstr "Le password non corrispondono"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posizione"
@@ -719,6 +767,10 @@ msgstr "Posizione"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profilo"
@@ -727,8 +779,12 @@ msgstr "Profilo"
msgid "Recover password"
msgstr "Recupera password"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Aggiorna"
@@ -745,11 +801,11 @@ msgstr "API REST"
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Salva"
@@ -765,10 +821,10 @@ msgstr "Scorrere senza problemi durante la navigazione tra le voci"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Cerca"
@@ -776,6 +832,14 @@ msgstr "Cerca"
msgid "Search requires at least 3 characters"
msgstr "La ricerca richiede almeno 3 caratteri"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Imposta il focus sulla voce successiva senza aprirla"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Iscriviti"
@@ -865,20 +929,21 @@ msgstr "È appena successo qualcosa di brutto..."
msgid "Space"
msgstr "Spazio"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stella"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Speciali"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Iscriviti"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Tag"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "L'URL del feed a cui vuoi iscriverti. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Non letto"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Elimina le stelle"
@@ -971,6 +1040,10 @@ msgstr "Nome utente"
msgid "User Name or E-mail"
msgstr "Nome utente o e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Avviso"
@@ -979,6 +1052,10 @@ msgstr "Avviso"
msgid "Website"
msgstr "Sito web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Non hai ancora abbonamenti. "

View File

@@ -33,8 +33,12 @@ msgstr "<0>こんにちは、</0><1>私はベルギーのジェレミーです
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>アカウントが必要ですか?</0><1>サインアップ!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "About"
@@ -54,16 +58,17 @@ msgstr "カテゴリを追加"
msgid "Add user"
msgstr "ユーザー追加"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "管理者"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "すべて"
@@ -104,11 +109,11 @@ msgstr "ユーザー <0>{userName}</0> を削除してもよろしいですか
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "本当にアカウントを削除しますか?元には戻せません!"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "<0>{sourceLabel}</0> のすべてのエントリーを既読にしますか?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "<0>{sourceLabel}</0> の {threshold} 日より前のエントリーを既読としてマークしてもよろしいですか?"
@@ -132,6 +137,10 @@ msgstr "戻る"
msgid "Back to log in"
msgstr "ログインに戻る"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Chromeのブラウザー拡張が必要です"
@@ -144,27 +153,27 @@ msgstr "ブラウザー拡張"
msgid "Browser tab"
msgstr "ブラウザータブ"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "キャンセル"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "カテゴリー"
@@ -204,11 +213,11 @@ msgstr "CommaFeed バージョン {version} ({revision})。"
msgid "Compact"
msgstr "コンパクト"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "確認"
@@ -240,6 +249,11 @@ msgstr "適用されるカスタムCSSルール"
msgid "Custom JS code that will be executed on page load"
msgstr "ページ読み込み時に実行されるカスタムJSコード"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "ダーク"
@@ -273,13 +287,14 @@ msgstr "説明"
msgid "Detailed"
msgstr "詳細"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "ディスプレイ"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "寄付"
@@ -291,11 +306,11 @@ msgstr "ダウンロード"
msgid "Drag link to bookmark bar"
msgstr "リンクをブックマークバーにドラッグ"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "メール"
@@ -308,8 +323,8 @@ msgstr "メールアドレス"
msgid "Edit user"
msgstr "ユーザーの編集"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "有効"
@@ -345,8 +360,8 @@ msgstr "拡張"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "サブスクリプションとカテゴリを、他のフィード読み取りサービスにインポートできる OPML ファイルとしてエクスポートします"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "拡張機能オプション"
@@ -354,9 +369,9 @@ msgstr "拡張機能オプション"
msgid "Feed name"
msgstr "フィード名"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "フィード URL"
@@ -376,6 +391,10 @@ msgstr "Fever API URL"
msgid "Filtering expression"
msgstr "フィルタリング式"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr "フィードの強制フェッチはまだ利用できません。"
@@ -384,9 +403,9 @@ msgstr "フィードの強制フェッチはまだ利用できません。"
msgid "Forgot password?"
msgstr "パスワードをお忘れですか?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "最初にプロファイルでAPIキーを生成します。"
@@ -394,12 +413,13 @@ msgstr "最初にプロファイルでAPIキーを生成します。"
msgid "Generate new API key"
msgstr "新しいAPIキーを生成する"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "生成されたフィードURL"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "{0} に移動"
@@ -416,6 +436,18 @@ msgstr "APIドキュメントに移動します。"
msgid "Goodies"
msgstr "グッズ"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "ID"
@@ -440,13 +472,17 @@ msgstr "インポート"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "展開ビューでエントリーをスクロールすると、それらが既読としてマークされます"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "未読のままにする"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "キーボードショートカット"
@@ -470,9 +506,13 @@ msgstr "最終更新メッセージ"
msgid "Light"
msgstr "ライト"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "リンク"
@@ -492,9 +532,9 @@ msgstr "サブスクリプションを読み込んでいます..."
msgid "Loading tags..."
msgstr "タグを読み込んでいます..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "ログイン"
@@ -506,27 +546,27 @@ msgstr "ログアウト"
msgid "Long press"
msgstr "長押し"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "ユーザーの管理"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "すべて既読にする"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "すべてのエントリーを既読にする"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "既読にする"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "ここまで既読にする"
@@ -546,15 +586,15 @@ msgstr "ページを下に移動"
msgid "Move the page up"
msgstr "ページを上に移動"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "該当なし"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "名前"
@@ -575,8 +615,8 @@ msgstr "新しいパスワード"
msgid "Newest first"
msgstr "最新順"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "次へ"
@@ -682,6 +722,10 @@ msgstr "OPMLファイル"
msgid "OPML file is required"
msgstr "OPMLファイルは必要です"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "オーダー"
@@ -694,11 +738,11 @@ msgstr "親"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "パスワード"
@@ -710,8 +754,12 @@ msgstr "パスワード回復"
msgid "Passwords do not match"
msgstr "パスワードが一致しません"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "位置"
@@ -719,6 +767,10 @@ msgstr "位置"
msgid "Previous"
msgstr "前へ"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "プロフィール"
@@ -727,8 +779,12 @@ msgstr "プロフィール"
msgid "Recover password"
msgstr "パスワードの回復"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "リフレッシュ"
@@ -745,11 +801,11 @@ msgstr "REST API"
msgid "Right click"
msgstr "右クリック"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "保存"
@@ -765,10 +821,10 @@ msgstr "エントリー間を移動するときにスムーズにスクロール
msgid "Scrolling"
msgstr "スクロール"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "検索"
@@ -776,6 +832,14 @@ msgstr "検索"
msgid "Search requires at least 3 characters"
msgstr "検索には少なくとも3文字が必要です"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "次のエントリーを開かずにフォーカスする"
@@ -850,9 +914,9 @@ msgstr "未読数をタブのアイコンに表示する"
msgid "Show unread count in tab title"
msgstr "未読数をタブのタイトルに表示する"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "サインアップ"
@@ -865,20 +929,21 @@ msgstr "何か悪いことが起きました..."
msgid "Space"
msgstr "Space"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "スター"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "スター付き"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "購読する"
@@ -915,6 +980,10 @@ msgstr "システム"
msgid "Tags"
msgstr "タグ"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "購読したいフィードのURL。ウェブサイトのURLを直接使用して、CommaFeedはページ内のフィードを検索します。"
@@ -951,8 +1020,8 @@ msgstr "デモを試す!"
msgid "Unread"
msgstr "未読"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "スターを外す"
@@ -971,6 +1040,10 @@ msgstr "ユーザー名"
msgid "User Name or E-mail"
msgstr "ユーザー名またはメールアドレス"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "警告"
@@ -979,6 +1052,10 @@ msgstr "警告"
msgid "Website"
msgstr "ウェブサイト"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "まだサブスクリプションがありません。上部の + 記号をクリックして1つ追加してみませんか"

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>계정이 필요하십니까?</0><1>가입하세요!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "정보"
@@ -54,16 +58,17 @@ msgstr "카테고리 추가"
msgid "Add user"
msgstr "사용자 추가"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "관리자"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "전체"
@@ -104,11 +109,11 @@ msgstr "<0>{userName}</0> 사용자를 삭제하시겠습니까?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "정말 계정을 삭제하시겠습니까? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "<0>{sourceLabel}</0>의 모든 항목을 읽은 것으로 표시하시겠습니까?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "<0>{sourceLabel}</0>의 {threshold}일보다 오래된 항목을 읽은 것으로 표시하시겠습니까?"
@@ -132,6 +137,10 @@ msgstr "뒤로"
msgid "Back to log in"
msgstr "로그인으로 돌아가기"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "취소"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "카테고리"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "컴팩트"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "확인"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "설명"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "디스플레이"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "다운로드"
msgid "Drag link to bookmark bar"
msgstr "링크를 북마크바로 드래그"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "이메일"
@@ -308,8 +323,8 @@ msgstr "이메일 주소"
msgid "Edit user"
msgstr "사용자 편집"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "활성화"
@@ -345,8 +360,8 @@ msgstr "확장"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "구독 및 카테고리를 다른 피드 읽기 서비스에서 가져올 수 있는 OPML 파일로 내보내기"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "피드 이름"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "피드 URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "필터링 표현식"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "비밀번호를 잊으셨나요?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "먼저 프로필에서 API 키를 생성하십시오."
@@ -394,12 +413,13 @@ msgstr "먼저 프로필에서 API 키를 생성하십시오."
msgid "Generate new API key"
msgstr "새 API 키 생성"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "생성된 피드 URL"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "API 문서로 이동합니다."
msgid "Goodies"
msgstr "굿즈"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "아이디"
@@ -440,13 +472,17 @@ msgstr "가져오기"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "확장 보기에서 항목을 스크롤하면 읽은 것으로 표시됩니다."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "읽지 않은 상태로 유지"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "키보드 단축키"
@@ -470,9 +506,13 @@ msgstr "마지막 새로고침 메시지"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "링크"
@@ -492,9 +532,9 @@ msgstr "구독 로드 중..."
msgid "Loading tags..."
msgstr "태그 로드 중..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "로그인"
@@ -506,27 +546,27 @@ msgstr "로그아웃"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "사용자 관리"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "모두 읽은 상태로 표시"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "모든 항목을 읽은 상태로 표시"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "읽은 상태로 표시"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "여기까지 읽은 것으로 표시"
@@ -546,15 +586,15 @@ msgstr "페이지를 아래로 이동"
msgid "Move the page up"
msgstr "페이지를 위로 이동"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "해당 없음"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "이름"
@@ -575,8 +615,8 @@ msgstr "새 비밀번호"
msgid "Newest first"
msgstr "최신순"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "다음"
@@ -682,6 +722,10 @@ msgstr "OPML 파일"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "주문"
@@ -694,11 +738,11 @@ msgstr "부모"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "비밀번호"
@@ -710,8 +754,12 @@ msgstr "비밀번호 복구"
msgid "Passwords do not match"
msgstr "비밀번호가 일치하지 않습니다"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "위치"
@@ -719,6 +767,10 @@ msgstr "위치"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "프로필"
@@ -727,8 +779,12 @@ msgstr "프로필"
msgid "Recover password"
msgstr "비밀번호 복구"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "새로 고침"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "저장"
@@ -765,10 +821,10 @@ msgstr "항목 간 탐색 시 부드럽게 스크롤"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "검색"
@@ -776,6 +832,14 @@ msgstr "검색"
msgid "Search requires at least 3 characters"
msgstr "검색에 최소 3자가 필요합니다."
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "열지 않고 다음 항목에 포커스 설정"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "가입"
@@ -865,20 +929,21 @@ msgstr "뭔가 안 좋은 일이 일어났어..."
msgid "Space"
msgstr "우주"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "스타"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "별표"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "구독"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "태그"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "구독하려는 피드의 URL입니다. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "읽지 않음"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "별표 제거"
@@ -971,6 +1040,10 @@ msgstr "사용자 이름"
msgid "User Name or E-mail"
msgstr "사용자 이름 또는 이메일"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "경고"
@@ -979,6 +1052,10 @@ msgstr "경고"
msgid "Website"
msgstr "웹사이트"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "아직 구독이 없습니다. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Perlukan akaun?</0><1>Daftar!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Mengenai"
@@ -54,16 +58,17 @@ msgstr "Tambah kategori"
msgid "Add user"
msgstr "Tambah pengguna"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Pentadbir"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Semua"
@@ -104,11 +109,11 @@ msgstr "Adakah anda pasti mahu memadamkan pengguna <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Adakah anda pasti mahu memadamkan akaun anda? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Adakah anda pasti mahu menandakan semua entri <0>{sourceLabel}</0> sebagai dibaca?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Adakah anda pasti mahu menandakan entri yang lebih lama daripada {threshold} hari <0>{sourceLabel}</0> sebagai dibaca?"
@@ -132,6 +137,10 @@ msgstr "Kembali"
msgid "Back to log in"
msgstr "Kembali untuk log masuk"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Batal"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Padat"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Sahkan"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "Dec"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Paparan"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Muat turun"
msgid "Drag link to bookmark bar"
msgstr "Seret pautan ke bar penanda halaman"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-mel"
@@ -308,8 +323,8 @@ msgstr "Alamat e-mel"
msgid "Edit user"
msgstr "Edit pengguna"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Didayakan"
@@ -345,8 +360,8 @@ msgstr "Dikembangkan"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Nama suapan"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL Suapan"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Ungkapan penapisan"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Lupa kata laluan?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Jana kunci API dalam profil anda dahulu."
@@ -394,12 +413,13 @@ msgstr "Jana kunci API dalam profil anda dahulu."
msgid "Generate new API key"
msgstr "Jana kunci API baharu"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Url suapan yang dijana"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Pergi ke dokumentasi API."
msgid "Goodies"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Dalam paparan yang diperluas, menatal melalui entri menandakannya sebagai dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Teruskan tidak dibaca"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Pintasan papan kekunci"
@@ -470,9 +506,13 @@ msgstr "Mesej muat semula terakhir"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Pautan"
@@ -492,9 +532,9 @@ msgstr "Memuatkan langganan..."
msgid "Loading tags..."
msgstr "Memuatkan tag..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Log masuk"
@@ -506,27 +546,27 @@ msgstr "Log Keluar"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Urus pengguna"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Tandai semua sebagai dibaca"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Tandai semua entri sebagai dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Tandakan sebagai dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Tandai sebagai dibaca sehingga di sini"
@@ -546,15 +586,15 @@ msgstr "Gerakkan halaman ke bawah"
msgid "Move the page up"
msgstr "Alih halaman ke atas"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "T/A"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nama"
@@ -575,8 +615,8 @@ msgstr "Kata laluan baharu"
msgid "Newest first"
msgstr "Terbaharu dahulu"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Seterusnya"
@@ -682,6 +722,10 @@ msgstr "Fail OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Perintah"
@@ -694,11 +738,11 @@ msgstr "Ibu bapa"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Kata Laluan"
@@ -710,8 +754,12 @@ msgstr "Pemulihan Kata Laluan"
msgid "Passwords do not match"
msgstr "Kata laluan tidak sepadan"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Kedudukan"
@@ -719,6 +767,10 @@ msgstr "Kedudukan"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Pulihkan kata laluan"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Muat semula"
@@ -745,11 +801,11 @@ msgstr "REHAT API"
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Jimat"
@@ -765,10 +821,10 @@ msgstr "Tatal dengan lancar apabila menavigasi antara entri"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Cari"
@@ -776,6 +832,14 @@ msgstr "Cari"
msgid "Search requires at least 3 characters"
msgstr "Cari memerlukan sekurang-kurangnya 3 aksara"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Tetapkan fokus pada entri seterusnya tanpa membukanya"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Daftar"
@@ -865,20 +929,21 @@ msgstr "Sesuatu yang buruk baru saja berlaku..."
msgid "Space"
msgstr "Angkasa"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Bintang"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Dibintangi"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Langgan"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Tag"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL untuk suapan yang anda ingin langgan. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Belum dibaca"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Nyahbintang"
@@ -971,6 +1040,10 @@ msgstr "Nama pengguna"
msgid "User Name or E-mail"
msgstr "Nama Pengguna atau E-mel"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Amaran"
@@ -979,6 +1052,10 @@ msgstr "Amaran"
msgid "Website"
msgstr "Laman web"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Anda belum mempunyai sebarang langganan lagi. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Omtrent"
@@ -54,16 +58,17 @@ msgstr "Legg til kategori"
msgid "Add user"
msgstr "Legg til bruker"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr ""
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Alle"
@@ -104,11 +109,11 @@ msgstr "Er du sikker på at du vil slette bruker <0>{brukernavn}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Er du sikker på at du vil slette kontoen din? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Er du sikker på at du vil merke alle oppføringer av <0>{sourceLabel}</0> som lest?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Er du sikker på at du vil merke oppføringer eldre enn {threshold} dager av <0>{sourceLabel}</0> som lest?"
@@ -132,6 +137,10 @@ msgstr "Tilbake"
msgid "Back to log in"
msgstr "Tilbake for å logge inn"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Avbryt"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Bekreft"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Visning"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Last ned"
msgid "Drag link to bookmark bar"
msgstr "Dra lenken til bokmerkelinjen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-post"
@@ -308,8 +323,8 @@ msgstr "E-postadresse"
msgid "Edit user"
msgstr "Rediger bruker"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Aktivert"
@@ -345,8 +360,8 @@ msgstr "Utvidet"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Feed-URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrerende uttrykk"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Glemt passord?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Generer en API-nøkkel i profilen din først."
@@ -394,12 +413,13 @@ msgstr "Generer en API-nøkkel i profilen din først."
msgid "Generate new API key"
msgstr "Generer ny API-nøkkel"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Generert feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Gå til API-dokumentasjonen."
msgid "Goodies"
msgstr "Godbiter"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføringer"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Behold ulest"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Tastatursnarveier"
@@ -470,9 +506,13 @@ msgstr "Siste oppdateringsmelding"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Laster abonnementer..."
msgid "Loading tags..."
msgstr "Laster tagger..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Logg inn"
@@ -506,27 +546,27 @@ msgstr "Logg ut"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Administrer brukere"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Merk alle som lest"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Merk alle oppføringer som lest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Merk som lest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Merk som lest frem til her"
@@ -546,15 +586,15 @@ msgstr "Flytt siden ned"
msgid "Move the page up"
msgstr "Flytt siden opp"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Navn"
@@ -575,8 +615,8 @@ msgstr "Nytt passord"
msgid "Newest first"
msgstr "Nyeste først"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Neste"
@@ -682,6 +722,10 @@ msgstr "OPML-fil"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ord"
@@ -694,11 +738,11 @@ msgstr "Foreldre"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Passord"
@@ -710,8 +754,12 @@ msgstr "Passordgjenoppretting"
msgid "Passwords do not match"
msgstr "Passordene samsvarer ikke"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posisjon"
@@ -719,6 +767,10 @@ msgstr "Posisjon"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Gjenopprett passord"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Oppdater"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Lagre"
@@ -765,10 +821,10 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Søk"
@@ -776,6 +832,14 @@ msgstr "Søk"
msgid "Search requires at least 3 characters"
msgstr "Søk krever minst 3 tegn"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Sett fokus på neste oppføring uten å åpne den"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Meld deg på"
@@ -865,20 +929,21 @@ msgstr "Noe ille skjedde akkurat..."
msgid "Space"
msgstr ""
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjerne"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Stjerne"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Abonner"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL-en til feeden du vil abonnere på. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Ulest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Fjern stjerne"
@@ -971,6 +1040,10 @@ msgstr "Brukernavn"
msgid "User Name or E-mail"
msgstr "Brukernavn eller e-post"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Advarsel"
@@ -979,6 +1052,10 @@ msgstr "Advarsel"
msgid "Website"
msgstr "Nettsted"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Du har ingen abonnementer ennå. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Een account nodig?</0><1>Meld je aan!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Over"
@@ -54,16 +58,17 @@ msgstr "Categorie toevoegen"
msgid "Add user"
msgstr "Gebruiker toevoegen"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Beheerder"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Alles"
@@ -104,11 +109,11 @@ msgstr "Weet u zeker dat u gebruiker <0>{userName}</0> wilt verwijderen?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Weet je zeker dat je je account wilt verwijderen? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Weet je zeker dat je alle items van <0>{sourceLabel}</0> als gelezen wilt markeren?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Weet u zeker dat u vermeldingen die ouder zijn dan {threshold} dagen van <0>{sourceLabel}</0> als gelezen wilt markeren?"
@@ -132,6 +137,10 @@ msgstr "Terug"
msgid "Back to log in"
msgstr "Terug naar inloggen"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Annuleren"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Categorie"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr ""
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Bevestigen"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "Beschrijving"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Weergave"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Downloaden"
msgid "Drag link to bookmark bar"
msgstr "Link naar bladwijzerbalk slepen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "E-mailadres"
msgid "Edit user"
msgstr "Gebruiker bewerken"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Ingeschakeld"
@@ -345,8 +360,8 @@ msgstr "Uitgebreid"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Feednaam"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Feed-URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Uitdrukking filteren"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Wachtwoord vergeten?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Genereer eerst een API-sleutel in uw profiel."
@@ -394,12 +413,13 @@ msgstr "Genereer eerst een API-sleutel in uw profiel."
msgid "Generate new API key"
msgstr "Nieuwe API-sleutel genereren"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Gegenereerde feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Ga naar de API-documentatie."
msgid "Goodies"
msgstr "Goederen"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "In de uitgevouwen weergave markeert het scrollen door items ze als gelezen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Ongelezen houden"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "sneltoetsen"
@@ -470,9 +506,13 @@ msgstr "Laatste verversingsbericht"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Abonnementen laden..."
msgid "Loading tags..."
msgstr "Tags laden..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Inloggen"
@@ -506,27 +546,27 @@ msgstr "Uitloggen"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Gebruikers beheren"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Alles markeren als gelezen"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Markeer alle vermeldingen als gelezen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Markeren als gelezen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Markeer als gelezen tot hier"
@@ -546,15 +586,15 @@ msgstr "Verplaats de pagina naar beneden"
msgid "Move the page up"
msgstr "Verplaats de pagina omhoog"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Naam"
@@ -575,8 +615,8 @@ msgstr "Nieuw wachtwoord"
msgid "Newest first"
msgstr "Nieuwste eerst"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Volgende"
@@ -682,6 +722,10 @@ msgstr "OPML-bestand"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Bestelling"
@@ -694,11 +738,11 @@ msgstr "Ouder"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Wachtwoord"
@@ -710,8 +754,12 @@ msgstr "Wachtwoordherstel"
msgid "Passwords do not match"
msgstr "Wachtwoorden komen niet overeen"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Positie"
@@ -719,6 +767,10 @@ msgstr "Positie"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profiel"
@@ -727,8 +779,12 @@ msgstr "Profiel"
msgid "Recover password"
msgstr "wachtwoord herstellen"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Vernieuwen"
@@ -745,11 +801,11 @@ msgstr "REST-API"
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Opslaan"
@@ -765,10 +821,10 @@ msgstr "Vloeiend scrollen bij het navigeren tussen items"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Zoeken"
@@ -776,6 +832,14 @@ msgstr "Zoeken"
msgid "Search requires at least 3 characters"
msgstr "Zoeken vereist minimaal 3 tekens"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Stel de focus in op het volgende item zonder het te openen"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Aanmelden"
@@ -865,20 +929,21 @@ msgstr "Er is net iets ergs gebeurd..."
msgid "Space"
msgstr "Ruimte"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Ster"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Met ster"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Abonneren"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "De URL voor de feed waarop u zich wilt abonneren. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Ongelezen"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Sterren uit"
@@ -971,6 +1040,10 @@ msgstr "Gebruikersnaam"
msgid "User Name or E-mail"
msgstr "Gebruikersnaam of e-mailadres"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Waarschuwing"
@@ -979,6 +1052,10 @@ msgstr "Waarschuwing"
msgid "Website"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Je hebt nog geen abonnementen. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Omtrent"
@@ -54,16 +58,17 @@ msgstr "Legg til kategori"
msgid "Add user"
msgstr "Legg til bruker"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr ""
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Alle"
@@ -104,11 +109,11 @@ msgstr "Er du sikker på at du vil slette bruker <0>{brukernavn}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Er du sikker på at du vil slette kontoen din? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Er du sikker på at du vil merke alle oppføringer av <0>{sourceLabel}</0> som lest?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Er du sikker på at du vil merke oppføringer eldre enn {threshold} dager av <0>{sourceLabel}</0> som lest?"
@@ -132,6 +137,10 @@ msgstr "Tilbake"
msgid "Back to log in"
msgstr "Tilbake for å logge inn"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Avbryt"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Bekreft"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Visning"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Last ned"
msgid "Drag link to bookmark bar"
msgstr "Dra lenken til bokmerkelinjen"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-post"
@@ -308,8 +323,8 @@ msgstr "E-postadresse"
msgid "Edit user"
msgstr "Rediger bruker"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Aktivert"
@@ -345,8 +360,8 @@ msgstr "Utvidet"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Feednavn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Feed-URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrerende uttrykk"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Glemt passord?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Generer en API-nøkkel i profilen din først."
@@ -394,12 +413,13 @@ msgstr "Generer en API-nøkkel i profilen din først."
msgid "Generate new API key"
msgstr "Generer ny API-nøkkel"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Generert feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Gå til API-dokumentasjonen."
msgid "Goodies"
msgstr "Godbiter"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføringer"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Behold ulest"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Tastatursnarveier"
@@ -470,9 +506,13 @@ msgstr "Siste oppdateringsmelding"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Laster abonnementer..."
msgid "Loading tags..."
msgstr "Laster tagger..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Logg inn"
@@ -506,27 +546,27 @@ msgstr "Logg ut"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Administrer brukere"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Merk alle som lest"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Merk alle oppføringer som lest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Merk som lest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Merk som lest frem til her"
@@ -546,15 +586,15 @@ msgstr "Flytt siden ned"
msgid "Move the page up"
msgstr "Flytt siden opp"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Navn"
@@ -575,8 +615,8 @@ msgstr "Nytt passord"
msgid "Newest first"
msgstr "Nyeste først"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Neste"
@@ -682,6 +722,10 @@ msgstr "OPML-fil"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ord"
@@ -694,11 +738,11 @@ msgstr "Foreldre"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Passord"
@@ -710,8 +754,12 @@ msgstr "Passordgjenoppretting"
msgid "Passwords do not match"
msgstr "Passordene samsvarer ikke"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posisjon"
@@ -719,6 +767,10 @@ msgstr "Posisjon"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Gjenopprett passord"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Oppdater"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Lagre"
@@ -765,10 +821,10 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Søk"
@@ -776,6 +832,14 @@ msgstr "Søk"
msgid "Search requires at least 3 characters"
msgstr "Søk krever minst 3 tegn"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Sett fokus på neste oppføring uten å åpne den"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Meld deg på"
@@ -865,20 +929,21 @@ msgstr "Noe ille skjedde akkurat..."
msgid "Space"
msgstr ""
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjerne"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Stjerne"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Abonner"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL-en til feeden du vil abonnere på. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Ulest"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Fjern stjerne"
@@ -971,6 +1040,10 @@ msgstr "Brukernavn"
msgid "User Name or E-mail"
msgstr "Brukernavn eller e-post"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Advarsel"
@@ -979,6 +1052,10 @@ msgstr "Advarsel"
msgid "Website"
msgstr "Nettsted"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Du har ingen abonnementer ennå. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Potrzebujesz konta?</0><1>Zarejestruj się!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "O"
@@ -54,16 +58,17 @@ msgstr "Dodaj kategorię"
msgid "Add user"
msgstr "Dodaj użytkownika"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Administracja"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Wszystkie"
@@ -104,11 +109,11 @@ msgstr "Czy na pewno chcesz usunąć użytkownika <0>{userName}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Czy na pewno chcesz usunąć swoje konto? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Czy na pewno chcesz oznaczyć wszystkie wpisy <0>{sourceLabel}</0> jako przeczytane?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Czy na pewno chcesz oznaczyć wpisy starsze niż {threshold} dni z <0>{sourceLabel}</0> jako przeczytane?"
@@ -132,6 +137,10 @@ msgstr "Powrót"
msgid "Back to log in"
msgstr "Powrót do logowania"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Anuluj"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategoria"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompaktowy"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Potwierdź"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "Opis"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Wyświetlacz"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Pobierz"
msgid "Drag link to bookmark bar"
msgstr "Przeciągnij link do paska zakładek"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "Adres e-mail"
msgid "Edit user"
msgstr "Edytuj użytkownika"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "włączone"
@@ -345,8 +360,8 @@ msgstr "Rozszerzony"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "nazwa kanału"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL kanału"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Wyrażenie filtrujące"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Zapomniałeś hasła?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Najpierw wygeneruj klucz API w swoim profilu."
@@ -394,12 +413,13 @@ msgstr "Najpierw wygeneruj klucz API w swoim profilu."
msgid "Generate new API key"
msgstr "Wygeneruj nowy klucz API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Wygenerowany adres URL kanału"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Przejdź do dokumentacji API."
msgid "Goodies"
msgstr "Gadżety"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Identyfikator"
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "W widoku rozszerzonym przewijanie wpisów oznacza je jako przeczytane"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Nie przeczytaj"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Skróty klawiaturowe"
@@ -470,9 +506,13 @@ msgstr "wiadomość o ostatnim odświeżeniu"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Ładowanie subskrypcji..."
msgid "Loading tags..."
msgstr "Ładowanie tagów..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Zaloguj się"
@@ -506,27 +546,27 @@ msgstr "Wyloguj"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Zarządzaj użytkownikami"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Oznacz wszystko jako przeczytane"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Oznacz wszystkie wpisy jako przeczytane"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Oznacz jako przeczytane"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Oznacz jako przeczytane do tej pory"
@@ -546,15 +586,15 @@ msgstr "Przesuń stronę w dół"
msgid "Move the page up"
msgstr "Przesuń stronę w górę"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "nie dotyczy"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nazwa"
@@ -575,8 +615,8 @@ msgstr "Nowe hasło"
msgid "Newest first"
msgstr "Najnowsze jako pierwsze"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Dalej"
@@ -682,6 +722,10 @@ msgstr "plik OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Porządek"
@@ -694,11 +738,11 @@ msgstr "Rodzic"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Hasło"
@@ -710,8 +754,12 @@ msgstr "Odzyskiwanie hasła"
msgid "Passwords do not match"
msgstr "Hasła nie pasują"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Pozycja"
@@ -719,6 +767,10 @@ msgstr "Pozycja"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Odzyskaj hasło"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Odśwież"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Zapisz"
@@ -765,10 +821,10 @@ msgstr "Przewijaj płynnie podczas nawigowania między wpisami"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Szukaj"
@@ -776,6 +832,14 @@ msgstr "Szukaj"
msgid "Search requires at least 3 characters"
msgstr "Wyszukiwanie wymaga co najmniej 3 znaków"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Ustaw fokus na następnym wpisie bez otwierania go"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Zarejestruj się"
@@ -865,20 +929,21 @@ msgstr "Coś złego właśnie się stało..."
msgid "Space"
msgstr "Przestrzeń"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Gwiazda"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Oznaczone gwiazdką"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Subskrybuj"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Tagi"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL kanału, który chcesz subskrybować. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Nieprzeczytane"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
@@ -971,6 +1040,10 @@ msgstr "Nazwa użytkownika"
msgid "User Name or E-mail"
msgstr "Nazwa użytkownika lub e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Ostrzeżenie"
@@ -979,6 +1052,10 @@ msgstr "Ostrzeżenie"
msgid "Website"
msgstr "Strona internetowa"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Nie masz jeszcze żadnych subskrypcji. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Precisa de uma conta?</0><1>Inscreva-se!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Sobre"
@@ -54,16 +58,17 @@ msgstr "Adicionar categoria"
msgid "Add user"
msgstr "Adicionar usuário"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Administrador"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Todos"
@@ -104,11 +109,11 @@ msgstr "Tem certeza de que deseja excluir o usuário <0>{userName}</0> ?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Tem certeza de que deseja excluir sua conta? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Tem certeza de que deseja marcar todas as entradas de <0>{sourceLabel}</0> como lidas?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Tem certeza de que deseja marcar entradas com mais de {threshold} dias de <0>{sourceLabel}</0> como lidas?"
@@ -132,6 +137,10 @@ msgstr "Voltar"
msgid "Back to log in"
msgstr "Voltar para logar"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Cancelar"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Categoria"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Compacto"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Confirmar"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "Descrição"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Exibir"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Baixar"
msgid "Drag link to bookmark bar"
msgstr "Arraste o link para a barra de favoritos"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "Endereço de e-mail"
msgid "Edit user"
msgstr "Editar usuário"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Ativado"
@@ -345,8 +360,8 @@ msgstr "Expandido"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Nome do feed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL do feed"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrando expressão"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Esqueceu a senha?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Gere uma chave de API em seu perfil primeiro."
@@ -394,12 +413,13 @@ msgstr "Gere uma chave de API em seu perfil primeiro."
msgid "Generate new API key"
msgstr "Gerar nova chave de API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "URL do feed gerado"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Vá para a documentação da API."
msgid "Goodies"
msgstr "Brindes"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "ID"
@@ -440,13 +472,17 @@ msgstr "Importar"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Na visualização expandida, rolar pelas entradas marca-as como lidas"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Manter não lido"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Atalhos de teclado"
@@ -470,9 +506,13 @@ msgstr "Última mensagem de atualização"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr ""
@@ -492,9 +532,9 @@ msgstr "Carregando assinaturas..."
msgid "Loading tags..."
msgstr "Carregando tags..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Entrar"
@@ -506,27 +546,27 @@ msgstr "Sair"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Gerenciar usuários"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Marcar todos como lidos"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Marcar todas as entradas como lidas"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Marcar como lido"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Marcar como lido até aqui"
@@ -546,15 +586,15 @@ msgstr "Mova a página para baixo"
msgid "Move the page up"
msgstr "Mover a página para cima"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "N/D"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Nome"
@@ -575,8 +615,8 @@ msgstr "Nova senha"
msgid "Newest first"
msgstr "Mais novo primeiro"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Próximo"
@@ -682,6 +722,10 @@ msgstr "Arquivo OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Ordem"
@@ -694,11 +738,11 @@ msgstr "Pai"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Senha"
@@ -710,8 +754,12 @@ msgstr "Recuperação de Senha"
msgid "Passwords do not match"
msgstr "Senhas não coincidem"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Posição"
@@ -719,6 +767,10 @@ msgstr "Posição"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Perfil"
@@ -727,8 +779,12 @@ msgstr "Perfil"
msgid "Recover password"
msgstr "Recuperar senha"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Atualizar"
@@ -745,11 +801,11 @@ msgstr "API REST"
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Salvar"
@@ -765,10 +821,10 @@ msgstr "Rolar suavemente ao navegar entre as entradas"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Pesquisar"
@@ -776,6 +832,14 @@ msgstr "Pesquisar"
msgid "Search requires at least 3 characters"
msgstr "Pesquisa requer pelo menos 3 caracteres"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Definir o foco na próxima entrada sem abri-la"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Inscreva-se"
@@ -865,20 +929,21 @@ msgstr "Algo ruim acabou de acontecer..."
msgid "Space"
msgstr "Espaço"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Estrela"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Com estrela"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Assinar"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Etiquetas"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "A URL do feed que você deseja assinar. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Não lido"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Desestrelar"
@@ -971,6 +1040,10 @@ msgstr "Nome de usuário"
msgid "User Name or E-mail"
msgstr "Nome de usuário ou e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Aviso"
@@ -979,6 +1052,10 @@ msgstr "Aviso"
msgid "Website"
msgstr "Site"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Você ainda não tem nenhuma assinatura. "

View File

@@ -33,8 +33,12 @@ msgstr "<0>Здравствуйте,</0><1>Я Жереми из Бельгии,
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Нужен аккаунт?</0><1>Зарегистрируйтесь!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "О CommaFeed"
@@ -54,16 +58,17 @@ msgstr "Добавить категорию"
msgid "Add user"
msgstr "Добавить пользователя"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Админ"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Все"
@@ -104,11 +109,11 @@ msgstr "Вы уверены, что хотите удалить пользова
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Вы уверены, что хотите удалить свой аккаунт? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Вы уверены, что хотите пометить все записи <0>{sourceLabel}</0> как прочитанные?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Вы уверены, что хотите пометить записи старше {threshold} дней <0>{sourceLabel}</0> как прочитанные?"
@@ -132,6 +137,10 @@ msgstr "Назад"
msgid "Back to log in"
msgstr "Вернуться к входу"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "Для браузера Chrome требуется расширение"
@@ -144,27 +153,27 @@ msgstr "Расширение для браузера"
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Отмена"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Категория"
@@ -204,11 +213,11 @@ msgstr "CommaFeed версии {version} ({revision})."
msgid "Compact"
msgstr "Компактный"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Подтвердить"
@@ -240,6 +249,11 @@ msgstr "Пользовательские правила CSS, которые бу
msgid "Custom JS code that will be executed on page load"
msgstr "Пользовательский JS-код, который будет выполняться при загрузке страницы"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "Темная"
@@ -273,13 +287,14 @@ msgstr "По убыванию"
msgid "Detailed"
msgstr "Подробно"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Отображение"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "Пожертвование"
@@ -291,11 +306,11 @@ msgstr "Скачать"
msgid "Drag link to bookmark bar"
msgstr "Перетащите ссылку на панель закладок"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "Электронная почта"
@@ -308,8 +323,8 @@ msgstr "Адрес электронной почты"
msgid "Edit user"
msgstr "Редактировать пользователя"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Включено"
@@ -345,8 +360,8 @@ msgstr "Расширенный"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "Экспортируйте свои подписки и категории в виде файла OPML, который можно импортировать в другие службы чтения каналов."
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Параметры расширения"
@@ -354,9 +369,9 @@ msgstr "Параметры расширения"
msgid "Feed name"
msgstr "Имя фида"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL-адрес фида"
@@ -376,6 +391,10 @@ msgstr "Ссылка Fever API"
msgid "Filtering expression"
msgstr "Выражение фильтрации"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Забыли пароль?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Сначала сгенерируйте ключ API в своем профиле."
@@ -394,12 +413,13 @@ msgstr "Сначала сгенерируйте ключ API в своем пр
msgid "Generate new API key"
msgstr "Создать новый ключ API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Сгенерированный URL фида"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "Перейти к {0}"
@@ -416,6 +436,18 @@ msgstr "Перейдите к документации по API."
msgid "Goodies"
msgstr "Сладости"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Идентификатор"
@@ -440,13 +472,17 @@ msgstr "Импорт"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "В развернутом виде прокрутка записей помечает их как прочитанные."
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Оставить непрочитанным"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Сочетания клавиш"
@@ -470,9 +506,13 @@ msgstr "Последнее сообщение об обновлении"
msgid "Light"
msgstr "Светлая"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Ссылка"
@@ -492,9 +532,9 @@ msgstr "Загрузка подписок..."
msgid "Loading tags..."
msgstr "Загрузка тегов..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Войти"
@@ -506,27 +546,27 @@ msgstr "Выйти"
msgid "Long press"
msgstr "Долгое нажатие"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Управление пользователями"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Отметить все как прочитанное"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Отметить все записи как прочитанные"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Отметить как прочитанное"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Отметить как прочитанное до этого места"
@@ -546,15 +586,15 @@ msgstr "Переместить страницу вниз"
msgid "Move the page up"
msgstr "Переместить страницу вверх"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "Н/Д"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Имя"
@@ -575,8 +615,8 @@ msgstr "Новый пароль"
msgid "Newest first"
msgstr "Сначала новые"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Следующий"
@@ -682,6 +722,10 @@ msgstr "OPML файл"
msgid "OPML file is required"
msgstr "Необходим файл OPML"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Заказать"
@@ -694,11 +738,11 @@ msgstr "Родительский"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Пароль"
@@ -710,8 +754,12 @@ msgstr "Восстановление пароля"
msgid "Passwords do not match"
msgstr "Пароли не совпадают"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Позиция"
@@ -719,6 +767,10 @@ msgstr "Позиция"
msgid "Previous"
msgstr "Предыдущий"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Профиль"
@@ -727,8 +779,12 @@ msgstr "Профиль"
msgid "Recover password"
msgstr "Восстановить пароль"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Обновить"
@@ -745,11 +801,11 @@ msgstr "REST API"
msgid "Right click"
msgstr "Правый клик"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Сохранить"
@@ -765,10 +821,10 @@ msgstr "Плавная прокрутка при переходе между з
msgid "Scrolling"
msgstr "Прокрутка"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Поиск"
@@ -776,6 +832,14 @@ msgstr "Поиск"
msgid "Search requires at least 3 characters"
msgstr "Для поиска требуется не менее 3 символов"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Установить фокус на следующую запись, не открывая ее."
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Зарегистрироваться"
@@ -865,20 +929,21 @@ msgstr "Только что случилось что-то плохое..."
msgid "Space"
msgstr "Пробел"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "В избранное"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Избранное"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Подписаться"
@@ -915,6 +980,10 @@ msgstr "Системная"
msgid "Tags"
msgstr "Теги"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL канала, на который вы хотите подписаться. "
@@ -951,8 +1020,8 @@ msgstr "Попробуйте демо-версию!"
msgid "Unread"
msgstr "Не прочитано"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Удалить из избранного"
@@ -971,6 +1040,10 @@ msgstr "Имя пользователя"
msgid "User Name or E-mail"
msgstr "Имя пользователя или адрес электронной почты"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Предупреждение"
@@ -979,6 +1052,10 @@ msgstr "Предупреждение"
msgid "Website"
msgstr "Веб-сайт"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "У вас еще нет подписок. Почему бы не попробовать добавить их, нажав на знак \"+\" в верхней части страницы?"

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Potrebujete účet?</0><1>Zaregistrujte sa!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Asi"
@@ -54,16 +58,17 @@ msgstr "Pridať kategóriu"
msgid "Add user"
msgstr "Pridať užívateľa"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Správca"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Všetky"
@@ -104,11 +109,11 @@ msgstr "Naozaj chcete odstrániť používateľa <0>{userName}</0>?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Naozaj chcete vymazať svoj účet? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Naozaj chcete označiť všetky položky <0>{sourceLabel}</0> ako prečítané?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Naozaj chcete označiť záznamy staršie ako {threshold} dní z <0>{sourceLabel}</0> ako prečítané?"
@@ -132,6 +137,10 @@ msgstr "Späť"
msgid "Back to log in"
msgstr "Späť na prihlásenie"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Zrušiť"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategória"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompaktný"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Potvrdiť"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Displej"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Stiahnuť"
msgid "Drag link to bookmark bar"
msgstr "Presuňte odkaz na lištu so záložkami"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr ""
@@ -308,8 +323,8 @@ msgstr "E-mailová adresa"
msgid "Edit user"
msgstr "Upravte používateľa"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Povolené"
@@ -345,8 +360,8 @@ msgstr "Rozšírené"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Názov informačného kanála"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "URL informačného kanála"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrovanie výrazu"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Zabudli ste heslo?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Najprv si vo svojom profile vygenerujte kľúč API."
@@ -394,12 +413,13 @@ msgstr "Najprv si vo svojom profile vygenerujte kľúč API."
msgid "Generate new API key"
msgstr "Vygenerujte nový kľúč API"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Generovaná adresa URL informačného kanála"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Prejdite na dokumentáciu API."
msgid "Goodies"
msgstr "Dobrôtky"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "V rozšírenom zobrazení ich rolovanie cez položky označí ako prečítané"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Ponechať neprečítané"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Klávesové skratky"
@@ -470,9 +506,13 @@ msgstr "Posledná obnovovacia správa"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Odkaz"
@@ -492,9 +532,9 @@ msgstr "Načítavam odbery..."
msgid "Loading tags..."
msgstr "Načítavam značky..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Prihláste sa"
@@ -506,27 +546,27 @@ msgstr "Odhlásenie"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Správa používateľov"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Označiť všetko ako prečítané"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Označte všetky položky ako prečítané"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Označiť ako prečítané"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Označiť ako prečítané až sem"
@@ -546,15 +586,15 @@ msgstr "Posuňte stránku nadol"
msgid "Move the page up"
msgstr "Posuňte stránku nahor"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Meno"
@@ -575,8 +615,8 @@ msgstr "Nové heslo"
msgid "Newest first"
msgstr "Najnovšie ako prvé"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Ďalej"
@@ -682,6 +722,10 @@ msgstr "súbor OPML"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Poriadok"
@@ -694,11 +738,11 @@ msgstr "Rodič"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Heslo"
@@ -710,8 +754,12 @@ msgstr "Obnovenie hesla"
msgid "Passwords do not match"
msgstr "Heslá sa nezhodujú"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Pozícia"
@@ -719,6 +767,10 @@ msgstr "Pozícia"
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Obnoviť heslo"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Obnoviť"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Uložiť"
@@ -765,10 +821,10 @@ msgstr "Pri navigácii medzi položkami plynulo rolujte"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Hľadaj"
@@ -776,6 +832,14 @@ msgstr "Hľadaj"
msgid "Search requires at least 3 characters"
msgstr "Hľadanie vyžaduje aspoň 3 znaky"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Nastavte zameranie na ďalší záznam bez toho, aby ste ho otvorili"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Zaregistrujte sa"
@@ -865,20 +929,21 @@ msgstr "Práve sa stalo niečo zlé..."
msgid "Space"
msgstr "Vesmír"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Hviezda"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "S hviezdičkou"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Prihlásiť sa"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Značky"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL zdroja, na odber ktorého sa chcete prihlásiť. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Neprečítané"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Odobrať hviezdičku"
@@ -971,6 +1040,10 @@ msgstr "Meno používateľa"
msgid "User Name or E-mail"
msgstr "Meno používateľa alebo e-mail"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Varovanie"
@@ -979,6 +1052,10 @@ msgstr "Varovanie"
msgid "Website"
msgstr "Webová stránka"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Zatiaľ nemáte žiadne odbery. "

View File

@@ -33,8 +33,12 @@ msgstr ""
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>Behöver du ett konto?</0><1>Registrera dig!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Ungefär"
@@ -54,16 +58,17 @@ msgstr "Lägg till kategori"
msgid "Add user"
msgstr "Lägg till användare"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr ""
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Alla"
@@ -104,11 +109,11 @@ msgstr "Är du säker på att du vill ta bort användare <0>{användarnamn}</0>?
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Är du säker på att du vill ta bort ditt konto? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Är du säker på att du vill markera alla poster i <0>{sourceLabel}</0> som lästa?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "Är du säker på att du vill markera poster äldre än {threshold} dagar av <0>{sourceLabel}</0> som lästa?"
@@ -132,6 +137,10 @@ msgstr "Tillbaka"
msgid "Back to log in"
msgstr "Tillbaka för att logga in"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr ""
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "Avbryt"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr ""
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Bekräfta"
@@ -240,6 +249,11 @@ msgstr ""
msgid "Custom JS code that will be executed on page load"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr ""
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Visa"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "Ladda ner"
msgid "Drag link to bookmark bar"
msgstr "Dra länken till bokmärkesfältet"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-post"
@@ -308,8 +323,8 @@ msgstr "E-postadress"
msgid "Edit user"
msgstr "Redigera användare"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Aktiverad"
@@ -345,8 +360,8 @@ msgstr "Utökad"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr ""
@@ -354,9 +369,9 @@ msgstr ""
msgid "Feed name"
msgstr "Flödesnamn"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Flödes-URL"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtrerande uttryck"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Glömt lösenord?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Generera en API-nyckel i din profil först."
@@ -394,12 +413,13 @@ msgstr "Generera en API-nyckel i din profil först."
msgid "Generate new API key"
msgstr "Generera ny API-nyckel"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Genererad feed-url"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr ""
@@ -416,6 +436,18 @@ msgstr "Gå till API-dokumentationen."
msgid "Goodies"
msgstr "Godsaker"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr ""
@@ -440,13 +472,17 @@ msgstr ""
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "I utökad vy, rullning genom poster markerar dem som lästa"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Behåll oläst"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Kortkommandon"
@@ -470,9 +506,13 @@ msgstr "Senaste uppdateringsmeddelande"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Länk"
@@ -492,9 +532,9 @@ msgstr "Laddar prenumerationer..."
msgid "Loading tags..."
msgstr "Laddar taggar..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Logga in"
@@ -506,27 +546,27 @@ msgstr "Logga ut"
msgid "Long press"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Hantera användare"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Markera alla som lästa"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Markera alla poster som lästa"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Markera som läst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Markera som läst hit"
@@ -546,15 +586,15 @@ msgstr "Flytta sidan nedåt"
msgid "Move the page up"
msgstr "Flytta sidan uppåt"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "Namn"
@@ -575,8 +615,8 @@ msgstr "Nytt lösenord"
msgid "Newest first"
msgstr "Nyast först"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Nästa"
@@ -682,6 +722,10 @@ msgstr "OPML-fil"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Beställning"
@@ -694,11 +738,11 @@ msgstr "Förälder"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Lösenord"
@@ -710,8 +754,12 @@ msgstr "Lösenordsåterställning"
msgid "Passwords do not match"
msgstr "Lösenorden matchar inte"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr ""
@@ -719,6 +767,10 @@ msgstr ""
msgid "Previous"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Återställ lösenord"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Uppdatera"
@@ -745,11 +801,11 @@ msgstr ""
msgid "Right click"
msgstr ""
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Spara"
@@ -765,10 +821,10 @@ msgstr "Bläddra mjukt när du navigerar mellan poster"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Sök"
@@ -776,6 +832,14 @@ msgstr "Sök"
msgid "Search requires at least 3 characters"
msgstr "Sökning kräver minst 3 tecken"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Sätt fokus på nästa post utan att öppna den"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Anmäl dig"
@@ -865,20 +929,21 @@ msgstr "Något dåligt hände precis..."
msgid "Space"
msgstr "Rymden"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Stjärna"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Starmed"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Prenumerera"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Taggar"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "URL:en för flödet du vill prenumerera på. "
@@ -951,8 +1020,8 @@ msgstr ""
msgid "Unread"
msgstr "Oläst"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr ""
@@ -971,6 +1040,10 @@ msgstr "Användarnamn"
msgid "User Name or E-mail"
msgstr "Användarnamn eller e-post"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Varning"
@@ -979,6 +1052,10 @@ msgstr "Varning"
msgid "Website"
msgstr "Webbplats"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Du har inga prenumerationer än. "

View File

@@ -33,8 +33,12 @@ 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>"
msgstr "<0>Bir hesaba mı ihtiyacınız var?</0><1>Kaydolun!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "Hakkında"
@@ -54,16 +58,17 @@ msgstr "Kategori ekle"
msgid "Add user"
msgstr "Kullanıcı ekle"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "Yönetici"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "Tümü"
@@ -104,11 +109,11 @@ msgstr "<0>{userName}</0> kullanıcısını silmek istediğinizden emin misiniz?
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "Hesabınızı silmek istediğinizden emin misiniz? "
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "Tüm <0>{sourceLabel}</0> girişlerini okundu olarak işaretlemek istediğinizden emin misiniz?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "<0>{sourceLabel}</0> tarihine ait {threshold} günden eski girişleri okundu olarak işaretlemek istediğinizden emin misiniz?"
@@ -132,6 +137,10 @@ msgstr "Geri"
msgid "Back to log in"
msgstr "Giriş yapmak için geri dön"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr ""
@@ -144,27 +153,27 @@ msgstr "Tarayıcı eklentisi"
msgid "Browser tab"
msgstr ""
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "İptal"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "Kategori"
@@ -204,11 +213,11 @@ msgstr "CommaFeed sürüm {version} ({revision})."
msgid "Compact"
msgstr "Kompakt"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "Onayla"
@@ -240,6 +249,11 @@ msgstr "Uygulanacak özel CSS kuralları"
msgid "Custom JS code that will be executed on page load"
msgstr "Sayfa yüklendiğinde çalıştırılacak özel JS kodu"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr ""
@@ -273,13 +287,14 @@ msgstr "Açılış"
msgid "Detailed"
msgstr ""
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "Ekran"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr ""
@@ -291,11 +306,11 @@ msgstr "İndir"
msgid "Drag link to bookmark bar"
msgstr "Bağlantıyı yer işareti çubuğuna sürükleyin"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "E-posta"
@@ -308,8 +323,8 @@ msgstr "E-posta adresi"
msgid "Edit user"
msgstr "Kullanıcıyı düzenle"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "Etkin"
@@ -345,8 +360,8 @@ msgstr "Genişletilmiş"
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"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "Eklenti ayarları"
@@ -354,9 +369,9 @@ msgstr "Eklenti ayarları"
msgid "Feed name"
msgstr "Yayın adı"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "Feed URL'si"
@@ -376,6 +391,10 @@ msgstr ""
msgid "Filtering expression"
msgstr "Filtreleme ifadesi"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr ""
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
@@ -384,9 +403,9 @@ msgstr ""
msgid "Forgot password?"
msgstr "Parolanızı mı unuttunuz?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "Önce profilinizde bir API anahtarı oluşturun."
@@ -394,12 +413,13 @@ msgstr "Önce profilinizde bir API anahtarı oluşturun."
msgid "Generate new API key"
msgstr "Yeni API anahtarı oluştur"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "Oluşturulan besleme url'si"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "{0}'a git"
@@ -416,6 +436,18 @@ msgstr "API belgelerine gidin."
msgid "Goodies"
msgstr "İyilikler"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr ""
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "Kimlik"
@@ -440,13 +472,17 @@ msgstr "İçe Aktar"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "Genişletilmiş görünümde, girişler arasında gezinmek onları okundu olarak işaretler"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr ""
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "Okunmadan sakla"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "Klavye kısayolları"
@@ -470,9 +506,13 @@ msgstr "Son yenileme mesajı"
msgid "Light"
msgstr ""
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr ""
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "Bağlantı"
@@ -492,9 +532,9 @@ msgstr "Abonelikler yükleniyor..."
msgid "Loading tags..."
msgstr "Etiketler yükleniyor..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "Giriş"
@@ -506,27 +546,27 @@ msgstr "Çıkış"
msgid "Long press"
msgstr "Uzun bas"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "Kullanıcıları yönet"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "Tümünü okundu olarak işaretle"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "Tüm girişleri okundu olarak işaretle"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "Okundu olarak işaretle"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "Buraya kadar okundu olarak işaretle"
@@ -546,15 +586,15 @@ msgstr "Sayfayı aşağı taşı"
msgid "Move the page up"
msgstr "Sayfayı yukarı taşı"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "Yok"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "İsim"
@@ -575,8 +615,8 @@ msgstr "Yeni şifre"
msgid "Newest first"
msgstr "Önce en yenisi"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "Sonraki"
@@ -682,6 +722,10 @@ msgstr "OPML dosyası"
msgid "OPML file is required"
msgstr ""
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr ""
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "Sipariş"
@@ -694,11 +738,11 @@ msgstr "Ebeveyn"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "Şifre"
@@ -710,8 +754,12 @@ msgstr "Parola Kurtarma"
msgid "Passwords do not match"
msgstr "Parolalar eşleşmiyor"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr ""
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "Konum"
@@ -719,6 +767,10 @@ msgstr "Konum"
msgid "Previous"
msgstr "Önceki"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr ""
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "Profil"
@@ -727,8 +779,12 @@ msgstr "Profil"
msgid "Recover password"
msgstr "Şifreyi kurtar"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "Yenile"
@@ -745,11 +801,11 @@ msgstr "REST API"
msgid "Right click"
msgstr "Sağ tık"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "Kaydet"
@@ -765,10 +821,10 @@ msgstr "Girişler arasında gezinirken sorunsuz ilerleyin"
msgid "Scrolling"
msgstr ""
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "Ara"
@@ -776,6 +832,14 @@ msgstr "Ara"
msgid "Search requires at least 3 characters"
msgstr "Arama için en az 3 karakter gerekiyor"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr ""
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "Odağı açmadan sonraki girişe ayarlayın"
@@ -850,9 +914,9 @@ msgstr ""
msgid "Show unread count in tab title"
msgstr ""
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "Kaydolun"
@@ -865,20 +929,21 @@ msgstr "Az önce kötü bir şey oldu..."
msgid "Space"
msgstr "Uzay"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "Yıldız"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "Yıldızlı"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "Abone ol"
@@ -915,6 +980,10 @@ msgstr ""
msgid "Tags"
msgstr "Etiketler"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr ""
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "Abone olmak istediğiniz beslemenin URL'si. "
@@ -951,8 +1020,8 @@ msgstr "Demo'yu deneyin!"
msgid "Unread"
msgstr "Okunmamış"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "Yıldızı kaldır"
@@ -971,6 +1040,10 @@ msgstr "Kullanıcı adı"
msgid "User Name or E-mail"
msgstr "Kullanıcı Adı veya E-posta"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr ""
#: src/components/Alert.tsx
msgid "Warning"
msgstr "Uyarı"
@@ -979,6 +1052,10 @@ msgstr "Uyarı"
msgid "Website"
msgstr "Web sitesi"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr ""
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "Henüz aboneliğiniz yok. Sayfanın üstündeki + işaretiyle feed ekleyebilirsiniz."

View File

@@ -33,8 +33,12 @@ msgstr "<0>您好,</0><1>我是来自比利时的Jérémie已经在业余时
msgid "<0>Need an account?</0><1>Sign up!</1>"
msgstr "<0>需要一个帐户?</0><1>注册!</1>"
#: src/components/header/ProfileMenu.tsx
#: src/components/settings/CustomCodeSettings.tsx
msgid "<0>See </0><1>here</1><2> for more information.</2>"
msgstr ""
#: src/pages/app/AboutPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "About"
msgstr "关于"
@@ -54,16 +58,17 @@ msgstr "添加类别"
msgid "Add user"
msgstr "添加用户"
#: src/components/admin/UserEdit.tsx
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
#: src/components/admin/UserEdit.tsx
msgid "Admin"
msgstr "管理员"
#: src/app/constants.ts
#: src/components/content/add/CategorySelect.tsx
#: src/components/header/Header.tsx
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/CategorySelect.tsx
msgid "All"
msgstr "全部"
@@ -104,11 +109,11 @@ msgstr "您确定要删除用户 <0>{userName}</0> 吗?"
msgid "Are you sure you want to delete your account? There's no turning back!"
msgstr "您确定要删除您的帐户吗?这是不可逆的!"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
msgstr "您确定要将 <0>{sourceLabel}</0> 的所有条目标记为已读吗?"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
msgstr "您确定要将早于 <0>{sourceLabel}</0> {threshold} 天的条目标记为已读吗?"
@@ -132,6 +137,10 @@ msgstr "返回"
msgid "Back to log in"
msgstr "返回登录"
#: src/components/settings/DisplaySettings.tsx
msgid "Blue"
msgstr "蓝"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Browser extension required for Chrome"
msgstr "浏览器扩展"
@@ -142,29 +151,29 @@ msgstr "浏览器扩展"
#: src/components/settings/DisplaySettings.tsx
msgid "Browser tab"
msgstr ""
msgstr "浏览器标签页"
#: src/components/admin/UserEdit.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/ImportOpml.tsx
#: src/components/header/MarkAllAsReadButton.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
#: 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
msgid "Cancel"
msgstr "取消"
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AboutPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/AddCategory.tsx
#: src/components/content/add/AddCategory.tsx
msgid "Category"
msgstr "类别"
@@ -182,7 +191,7 @@ msgstr "关闭菜单"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Cmd"
msgstr ""
msgstr "Cmd"
#: src/pages/app/AboutPage.tsx
msgid "CommaFeed browser extension version {browserExtensionVersion}."
@@ -204,11 +213,11 @@ msgstr "CommaFeed版本{version} ({revision})"
msgid "Compact"
msgstr "紧凑"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/settings/ProfileSettings.tsx
msgid "Confirm"
msgstr "确认"
@@ -240,9 +249,14 @@ msgstr "将被应用的自定义CSS规则"
msgid "Custom JS code that will be executed on page load"
msgstr "将在页面加载时执行的自定义JS代码"
#: src/components/settings/DisplaySettings.tsx
msgid "Cyan"
msgstr "青"
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Dark"
msgstr "深色"
msgstr "暗黑"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Date created"
@@ -273,13 +287,14 @@ msgstr "降序"
msgid "Detailed"
msgstr "详细"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/SettingsPage.tsx
#: src/components/settings/DisplaySettings.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Display"
msgstr "显示"
#: src/components/header/ProfileMenu.tsx
#: src/pages/app/DonatePage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Donate"
msgstr "捐赠"
@@ -291,11 +306,11 @@ msgstr "下载"
msgid "Drag link to bookmark bar"
msgstr "拖动链接到书签栏"
#: src/components/admin/UserEdit.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/pages/auth/PasswordRecoveryPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "E-mail"
msgstr "电子邮件"
@@ -308,8 +323,8 @@ msgstr "电子邮件地址"
msgid "Edit user"
msgstr "编辑用户"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Enabled"
msgstr "已启用"
@@ -323,7 +338,7 @@ msgstr "输入您当前的密码以更改配置文件设置"
#: src/components/settings/DisplaySettings.tsx
msgid "Entries to keep above the selected entry when scrolling"
msgstr ""
msgstr "滚动时固定在顶部的条目"
#: src/components/settings/DisplaySettings.tsx
msgid "Entry headers"
@@ -345,8 +360,8 @@ msgstr "展开"
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
msgstr "将您的订阅和类别导出为 OPML 文件,可以在其它信息流阅读服务中导入"
#: src/components/header/Header.tsx
#: src/pages/WelcomePage.tsx
#: src/components/header/Header.tsx
msgid "Extension options"
msgstr "扩展选项"
@@ -354,9 +369,9 @@ msgstr "扩展选项"
msgid "Feed name"
msgstr "信息流名称"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Feed URL"
msgstr "信息流网址"
@@ -376,17 +391,21 @@ msgstr "Fever API 网址"
msgid "Filtering expression"
msgstr "过滤表达式"
#: src/components/header/ProfileMenu.tsx
msgid "Font size"
msgstr "字号"
#: src/components/header/ProfileMenu.tsx
msgid "Force fetching feeds is not yet available."
msgstr ""
msgstr "强制获取订阅源功能不可用。"
#: src/pages/auth/LoginPage.tsx
msgid "Forgot password?"
msgstr "忘记密码?"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generate an API key in your profile first."
msgstr "首先在您的配置文件中生成一个 API 密钥。"
@@ -394,12 +413,13 @@ msgstr "首先在您的配置文件中生成一个 API 密钥。"
msgid "Generate new API key"
msgstr "生成新的 API 密钥"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Generated feed url"
msgstr "生成信息流网址"
#. placeholder {0}: truncate(props.entry.feedName, 30)
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Go to {0}"
msgstr "转到 {0}"
@@ -416,6 +436,18 @@ msgstr "API 文档"
msgid "Goodies"
msgstr "好东西"
#: src/components/settings/DisplaySettings.tsx
msgid "Grape"
msgstr "深紫"
#: src/components/settings/DisplaySettings.tsx
msgid "Gray"
msgstr "灰"
#: src/components/settings/DisplaySettings.tsx
msgid "Green"
msgstr "绿"
#: src/pages/admin/AdminUsersPage.tsx
msgid "Id"
msgstr "序号"
@@ -440,13 +472,17 @@ msgstr "导入"
msgid "In expanded view, scrolling through entries mark them as read"
msgstr "在展开视图中,滚动条目将它们标记为已读"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Indigo"
msgstr "靛蓝"
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Keep unread"
msgstr "保持未读状态"
#: src/components/content/FeedEntries.tsx
#: src/pages/app/AboutPage.tsx
#: src/components/content/FeedEntries.tsx
msgid "Keyboard shortcuts"
msgstr "键盘快捷键"
@@ -470,9 +506,13 @@ msgstr "上次刷新消息"
msgid "Light"
msgstr "浅色"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Lime"
msgstr "浅黄"
#: src/pages/app/TagDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Link"
msgstr "链接"
@@ -492,9 +532,9 @@ msgstr "正在加载订阅..."
msgid "Loading tags..."
msgstr "正在加载标签..."
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
msgid "Log in"
msgstr "登录"
@@ -506,27 +546,27 @@ msgstr "注销"
msgid "Long press"
msgstr "长按"
#: src/components/header/ProfileMenu.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/header/ProfileMenu.tsx
msgid "Manage users"
msgstr "管理用户"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/header/Header.tsx
msgid "Mark all as read"
msgstr "全部标记为已读"
#: src/components/header/MarkAllAsReadButton.tsx
#: src/components/MarkAllAsReadConfirmationDialog.tsx
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Mark all entries as read"
msgstr "将所有条目标记为已读"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read"
msgstr "标记为已读"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
msgid "Mark as read up to here"
msgstr "标记为已读到这里"
@@ -546,15 +586,15 @@ msgstr "下移页面"
msgid "Move the page up"
msgstr "上移页面"
#: src/components/RelativeDate.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/components/RelativeDate.tsx
msgid "N/A"
msgstr "不适用"
#: src/components/admin/UserEdit.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/pages/admin/AdminUsersPage.tsx
#: src/components/admin/UserEdit.tsx
msgid "Name"
msgstr "​​名称"
@@ -575,8 +615,8 @@ msgstr "新密码"
msgid "Newest first"
msgstr "最新的优先"
#: src/components/content/add/Subscribe.tsx
#: src/components/header/Header.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Next"
msgstr "下一个"
@@ -618,7 +658,7 @@ msgstr "在移动端,显示屏幕底部的操作按钮"
#: src/components/settings/DisplaySettings.tsx
msgid "Only applies to compact, cozy and detailed modes"
msgstr ""
msgstr "仅适用于紧凑、宽松和详细模式"
#: src/pages/ErrorPage.tsx
msgid "Oops!"
@@ -682,6 +722,10 @@ msgstr "OPML 文件"
msgid "OPML file is required"
msgstr "OPML 文件是必需的"
#: src/components/settings/DisplaySettings.tsx
msgid "Orange"
msgstr "橙"
#: src/pages/app/AboutPage.tsx
msgid "Order"
msgstr "顺序"
@@ -694,11 +738,11 @@ msgstr "父类别"
msgid "Parent Category"
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/pages/auth/LoginPage.tsx
#: src/pages/auth/LoginPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Password"
msgstr "密码"
@@ -710,8 +754,12 @@ msgstr "密码恢复"
msgid "Passwords do not match"
msgstr "密码不匹配"
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Pink"
msgstr "粉红"
#: src/pages/app/FeedDetailsPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
msgid "Position"
msgstr "位置"
@@ -719,6 +767,10 @@ msgstr "位置"
msgid "Previous"
msgstr "上一个"
#: src/components/settings/DisplaySettings.tsx
msgid "Primary color"
msgstr "主颜色"
#: src/pages/app/SettingsPage.tsx
msgid "Profile"
msgstr "配置文件"
@@ -727,8 +779,12 @@ msgstr "配置文件"
msgid "Recover password"
msgstr "找回密码"
#: src/components/header/Header.tsx
#: src/components/settings/DisplaySettings.tsx
msgid "Red"
msgstr "红"
#: src/components/KeyboardShortcutsHelp.tsx
#: src/components/header/Header.tsx
msgid "Refresh"
msgstr "刷新"
@@ -745,11 +801,11 @@ msgstr "REST API"
msgid "Right click"
msgstr "右键单击"
#: 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
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/settings/ProfileSettings.tsx
#: src/components/settings/CustomCodeSettings.tsx
#: src/components/admin/UserEdit.tsx
msgid "Save"
msgstr "保存"
@@ -765,10 +821,10 @@ msgstr "在条目之间导航时平滑滚动"
msgid "Scrolling"
msgstr "滚动"
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/sidebar/TreeSearch.tsx
#: src/components/header/Header.tsx
#: src/components/header/Header.tsx
msgid "Search"
msgstr "搜索"
@@ -776,6 +832,14 @@ msgstr "搜索"
msgid "Search requires at least 3 characters"
msgstr "搜索至少需要 3 个字符"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select next unread feed/category"
msgstr "选择下一个未读信息流/类别"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Select previous unread feed/category"
msgstr "选择上一个未读信息流/类别"
#: src/components/KeyboardShortcutsHelp.tsx
msgid "Set focus on next entry without opening it"
msgstr "将焦点放在下一个条目而不打开它"
@@ -844,15 +908,15 @@ msgstr "显示星标图标"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab favicon"
msgstr ""
msgstr "在标签页图标上显示未读数量"
#: src/components/settings/DisplaySettings.tsx
msgid "Show unread count in tab title"
msgstr ""
msgstr "在标签页标题中显示未读数量"
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/WelcomePage.tsx
#: src/pages/auth/RegistrationPage.tsx
#: src/pages/auth/RegistrationPage.tsx
msgid "Sign up"
msgstr "注册"
@@ -865,20 +929,21 @@ msgstr "刚刚发生了不好的事情……"
msgid "Space"
msgstr "空格"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Star"
msgstr "星标"
#: src/app/constants.ts
#: src/pages/app/FeedEntriesPage.tsx
#: src/pages/app/CategoryDetailsPage.tsx
#: src/components/sidebar/Tree.tsx
msgid "Starred"
msgstr "已加星标"
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
#: src/pages/app/AddPage.tsx
#: src/components/content/add/Subscribe.tsx
#: src/components/content/add/Subscribe.tsx
msgid "Subscribe"
msgstr "订阅"
@@ -900,7 +965,7 @@ msgstr "向左滑动标题"
#: src/pages/WelcomePage.tsx
msgid "Switch to dark theme"
msgstr "切换到深色主题"
msgstr "切换到暗黑主题"
#: src/pages/WelcomePage.tsx
msgid "Switch to light theme"
@@ -915,6 +980,10 @@ msgstr "跟随系统"
msgid "Tags"
msgstr "标签"
#: src/components/settings/DisplaySettings.tsx
msgid "Teal"
msgstr "青绿"
#: src/components/content/add/Subscribe.tsx
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
msgstr "您要订阅的信息流的网址。您也可以直接使用网站的网址CommaFeed 会尝试在页面中找到信息流。"
@@ -951,8 +1020,8 @@ msgstr "尝试 demo"
msgid "Unread"
msgstr "未读"
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/FeedEntryFooter.tsx
#: src/components/content/FeedEntryContextMenu.tsx
#: src/components/content/header/Star.tsx
msgid "Unstar"
msgstr "取消星标"
@@ -971,6 +1040,10 @@ msgstr "用户名"
msgid "User Name or E-mail"
msgstr "用户名或电子邮件"
#: src/components/settings/DisplaySettings.tsx
msgid "Violet"
msgstr "蓝紫"
#: src/components/Alert.tsx
msgid "Warning"
msgstr "警告"
@@ -979,6 +1052,10 @@ msgstr "警告"
msgid "Website"
msgstr "网站"
#: src/components/settings/DisplaySettings.tsx
msgid "Yellow"
msgstr "黄"
#: src/pages/app/FeedEntriesPage.tsx
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
msgstr "您还没有任何订阅。"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Box, Button, Container, Group, Text, Title } from "@mantine/core"
import { TbRefresh } from "react-icons/tb"
import { tss } from "tss"

View File

@@ -1,4 +1,4 @@
import { msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { Anchor, Box, Center, Container, Divider, Group, Image, Space, Title, useMantineColorScheme } from "@mantine/core"
import { client } from "app/client"
import { redirectToApiDocumentation, redirectToLogin, redirectToRegistration, redirectToRootCategory } from "app/redirect/thunks"

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { ActionIcon, Box, Code, Container, Group, Table, Text, Title, useMantineTheme } from "@mantine/core"
import { closeAllModals, openConfirmModal, openModal } from "@mantine/modals"
import { client, errorToStrings } from "app/client"

View File

@@ -1,5 +1,6 @@
import { Trans, msg } from "@lingui/macro"
import { msg } from "@lingui/core/macro"
import { useLingui } from "@lingui/react"
import { Trans } from "@lingui/react/macro"
import { Anchor, Box, Container, List, NativeSelect, SimpleGrid, Title } from "@mantine/core"
import { Constants } from "app/constants"
import { redirectToApiDocumentation } from "app/redirect/thunks"
@@ -40,7 +41,7 @@ function NextUnreadBookmarklet() {
const { _ } = useLingui()
const baseUrl = window.location.href.substring(0, window.location.href.lastIndexOf("#"))
const href = `javascript:window.location.href='${baseUrl}next?category=${categoryId}&order=${order}&t='+new Date().getTime();`
const href = `${baseUrl}next?category=${categoryId}&order=${order}`
return (
<Box>

View File

@@ -1,4 +1,4 @@
import { Trans } from "@lingui/macro"
import { Trans } from "@lingui/react/macro"
import { Container, Tabs } from "@mantine/core"
import { AddCategory } from "components/content/add/AddCategory"
import { ImportOpml } from "components/content/add/ImportOpml"

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