mirror of https://github.com/FreshRSS/FreshRSS.git
Compare commits
72 Commits
c7778b93f1
...
c3cbca8004
Author | SHA1 | Date |
---|---|---|
HuangWei | c3cbca8004 | |
Alexandre Alapetite | fd7157e40c | |
Alexandre Alapetite | 44625eed25 | |
Alexandre Alapetite | 0e6f56bb4c | |
Alexandre Alapetite | 617f9a7fa6 | |
Alexandre Alapetite | cd8fc428cb | |
dependabot[bot] | c9307e4324 | |
dependabot[bot] | 5a8adf5f23 | |
dependabot[bot] | da9789d293 | |
dependabot[bot] | 47f941101c | |
dependabot[bot] | ed6e90c67e | |
dependabot[bot] | eddb10bba9 | |
dependabot[bot] | a580d4e4b2 | |
Alexandre Alapetite | ffe68dcb97 | |
maTh | cd66ca54ca | |
maTh | 40ac02544e | |
maTh | d4ac7ea26b | |
Alexandre Alapetite | 329fd4bcf6 | |
Alexandre Alapetite | 173555795a | |
Alexandre Alapetite | 5ca0b893b9 | |
maTh | d656896a95 | |
maTh | c47b785235 | |
maTh | aac3b21a8b | |
FromTheMoon | 7b92266855 | |
maTh | 154a36700c | |
Alexandre Alapetite | 5e66adcc51 | |
Alexandre Alapetite | 90fbb524ce | |
Tibor Repček | b37404cce7 | |
maTh | f0d9134478 | |
Tibor Repček | a51fb891b5 | |
Tibor Repček | c0fdefcfeb | |
Tibor Repček | 048b36a11b | |
Tibor Repček | bbb9834f92 | |
Tibor Repček | b1c3022a91 | |
-Shiken- | 339fcfda10 | |
Bartosz Taudul | b4d7649504 | |
May | 2f74ebafa8 | |
yzqzss | 5c33e5191a | |
maTh | 81f6bbf64e | |
Pedro Paulo | 68744f0106 | |
FabioL | 1308dd6b82 | |
Cilga Iscan Tercanli | f6f7764ba7 | |
Pedro Paulo | dcd3b80a90 | |
Frans de Jonge | a5f87e0671 | |
Sungjoon Moon | e1834f61a6 | |
zu | 7ccbdef935 | |
zu | bc7c680438 | |
maTh | 5a14ff3135 | |
maTh | 3261b7bafb | |
maTh | 0ffcf41f93 | |
maTh | 22172fd5bc | |
maTh | bf68205ae3 | |
Alexandre Alapetite | b22d9279bd | |
maTh | 6901ff1e70 | |
maTh | 2846fdba6f | |
Hkcomori | 18532eaa61 | |
Frans de Jonge | e19b8a4e0a | |
Alexandre Alapetite | 7aaed6092f | |
Jacopo Galati | 30f147410d | |
Alexandre Alapetite | 350edf398c | |
Alexandre Alapetite | 8280e3d88e | |
Alexandre Alapetite | 72933b301e | |
Alexandre Alapetite | 6e12781821 | |
Alexandre Alapetite | 283341e75e | |
Alexandre Alapetite | c052149e5a | |
Alexandre Alapetite | e3c86a164d | |
Alexandre Alapetite | 1c684a91d2 | |
maTh | e8bd54e557 | |
Hw | c37073f1e6 | |
HuangWei | 45a729a576 | |
Hw | 24ec1814b5 | |
Hw | 5c92df2260 |
|
@ -5,6 +5,7 @@
|
|||
/vendor/
|
||||
/data.back/
|
||||
/constants.local.php
|
||||
/.idea
|
||||
|
||||
.vscode/
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"plugins": [
|
||||
"stylelint-order",
|
||||
"stylelint-scss",
|
||||
"stylelint-stylistic"
|
||||
"@stylistic/stylelint-plugin"
|
||||
],
|
||||
"rules": {
|
||||
"at-rule-empty-line-before": [
|
||||
|
@ -11,27 +11,27 @@
|
|||
"ignoreAtRules": [ "after-comment", "else" ]
|
||||
}
|
||||
],
|
||||
"stylistic/at-rule-name-space-after": [
|
||||
"@stylistic/at-rule-name-space-after": [
|
||||
"always", {
|
||||
"ignoreAtRules": [ "after-comment" ]
|
||||
}
|
||||
],
|
||||
"stylistic/block-closing-brace-newline-after": [
|
||||
"@stylistic/block-closing-brace-newline-after": [
|
||||
"always", {
|
||||
"ignoreAtRules": [ "if", "else" ]
|
||||
}
|
||||
],
|
||||
"stylistic/block-closing-brace-newline-before": "always-multi-line",
|
||||
"stylistic/block-opening-brace-newline-after": "always-multi-line",
|
||||
"stylistic/block-opening-brace-space-before": "always",
|
||||
"stylistic/color-hex-case": "lower",
|
||||
"@stylistic/block-closing-brace-newline-before": "always-multi-line",
|
||||
"@stylistic/block-opening-brace-newline-after": "always-multi-line",
|
||||
"@stylistic/block-opening-brace-space-before": "always",
|
||||
"@stylistic/color-hex-case": "lower",
|
||||
"color-hex-length": "short",
|
||||
"color-no-invalid-hex": true,
|
||||
"stylistic/declaration-colon-space-after": "always",
|
||||
"stylistic/declaration-colon-space-before": "never",
|
||||
"stylistic/indentation": "tab",
|
||||
"@stylistic/declaration-colon-space-after": "always",
|
||||
"@stylistic/declaration-colon-space-before": "never",
|
||||
"@stylistic/indentation": "tab",
|
||||
"no-descending-specificity": null,
|
||||
"stylistic/no-eol-whitespace": true,
|
||||
"@stylistic/no-eol-whitespace": true,
|
||||
"property-no-vendor-prefix": true,
|
||||
"rule-empty-line-before": [
|
||||
"always", {
|
||||
|
|
|
@ -178,6 +178,7 @@ People are sorted by name so please keep this order.
|
|||
* [Patrick Crandol](https://github.com/pattems): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pattems)
|
||||
* [Paulius Šukys](https://github.com/psukys): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:psukys), [Web](http://sukys.eu)
|
||||
* [Paweł Kalemba](https://github.com/pkalemba): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:pkalemba)
|
||||
* [PedroPMS](https://github.com/PedroPMS): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:PedroPMS)
|
||||
* [perrinjerome](https://github.com/perrinjerome): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:perrinjerome)
|
||||
* [Peter Stoinov](https://github.com/stoinov): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:stoinov), [Web](https://stoinov.com)
|
||||
* [Petra Lamborn](https://github.com/petraoleum): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:petraoleum), [Web](https://petras.space)
|
||||
|
@ -247,3 +248,4 @@ People are sorted by name so please keep this order.
|
|||
* [yzqzss|一座桥在水上](https://github.com/yzqzss): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:yzqzss), [Web](https://blog.othing.xyz/)
|
||||
* [Zhaofeng Li](https://github.com/zhaofengli): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zhaofengli), [Web](https://zhaofeng.li/)
|
||||
* [Zhiyuan Zheng](https://github.com/zhzy0077): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zhzy0077)
|
||||
* [zukizukizuki](https://github.com/zukizukizuki): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:zukizukizuki), [Web](https://zukkie.link/)
|
||||
|
|
|
@ -21,7 +21,7 @@ Example for Linux Debian / Ubuntu:
|
|||
|
||||
```sh
|
||||
# Install default Docker Compose and automatically the corresponding version of Docker
|
||||
apt install docker-compose
|
||||
apt install docker-compose-v2
|
||||
```
|
||||
|
||||
## Quick run
|
||||
|
@ -194,6 +194,8 @@ docker run -d --restart unless-stopped --log-opt max-size=10m \
|
|||
|
||||
In the FreshRSS setup, you will then specify the name of the container (`freshrss-db`) as the host for the database.
|
||||
|
||||
See also the section [Docker Compose with PostgreSQL](#docker-compose-with-postgresql) below.
|
||||
|
||||
### [MySQL](https://hub.docker.com/_/mysql/) or [MariaDB](https://hub.docker.com/_/mariadb)
|
||||
|
||||
```sh
|
||||
|
@ -285,13 +287,13 @@ See [`docker-compose.yml`](./freshrss/docker-compose.yml)
|
|||
```sh
|
||||
cd ./FreshRSS/Docker/freshrss/
|
||||
# Update
|
||||
docker-compose pull
|
||||
docker compose pull
|
||||
# Run
|
||||
docker-compose -f docker-compose.yml -f docker-compose-local.yml up -d --remove-orphans
|
||||
docker compose -f docker-compose.yml -f docker-compose-local.yml up -d --remove-orphans
|
||||
# Logs
|
||||
docker-compose logs -f --timestamps
|
||||
docker compose logs -f --timestamps
|
||||
# Stop
|
||||
docker-compose down --remove-orphans
|
||||
docker compose down --remove-orphans
|
||||
```
|
||||
|
||||
Detailed (partial) example of Docker Compose for FreshRSS:
|
||||
|
@ -378,13 +380,15 @@ See [`docker-compose-db.yml`](./freshrss/docker-compose-db.yml)
|
|||
```sh
|
||||
cd ./FreshRSS/Docker/freshrss/
|
||||
# Update
|
||||
docker-compose -f docker-compose.yml -f docker-compose-db.yml pull
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml pull
|
||||
# Run
|
||||
docker-compose -f docker-compose.yml -f docker-compose-db.yml -f docker-compose-local.yml up -d --remove-orphans
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml -f docker-compose-local.yml up -d --remove-orphans
|
||||
# Logs
|
||||
docker-compose -f docker-compose.yml -f docker-compose-db.yml logs -f --timestamps
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml logs -f --timestamps
|
||||
```
|
||||
|
||||
See also the section [Migrate database](#migrate-database) below to upgrade to a major PostgreSQL version with Docker Compose.
|
||||
|
||||
### Docker Compose for development
|
||||
|
||||
Use the local (git) FreshRSS source code instead of the one inside the Docker container,
|
||||
|
@ -396,11 +400,11 @@ See [`docker-compose-development.yml`](./freshrss/docker-compose-development.yml
|
|||
cd ./FreshRSS/Docker/freshrss/
|
||||
# Update
|
||||
git pull --ff-only --prune
|
||||
docker-compose pull
|
||||
docker compose pull
|
||||
# Run
|
||||
docker-compose -f docker-compose-development.yml -f docker-compose.yml -f docker-compose-local.yml up --remove-orphans
|
||||
docker compose -f docker-compose-development.yml -f docker-compose.yml -f docker-compose-local.yml up --remove-orphans
|
||||
# Stop with [Control]+[C] and purge
|
||||
docker-compose down --remove-orphans --volumes
|
||||
docker compose down --remove-orphans --volumes
|
||||
```
|
||||
|
||||
> ℹ️ You can combine it with `-f docker-compose-db.yml` to spin a PostgreSQL database.
|
||||
|
@ -446,13 +450,13 @@ See [`docker-compose-proxy.yml`](./freshrss/docker-compose-proxy.yml)
|
|||
```sh
|
||||
cd ./FreshRSS/Docker/freshrss/
|
||||
# Update
|
||||
docker-compose -f docker-compose.yml -f docker-compose-proxy.yml pull
|
||||
docker compose -f docker-compose.yml -f docker-compose-proxy.yml pull
|
||||
# Run
|
||||
docker-compose -f docker-compose.yml -f docker-compose-proxy.yml up -d --remove-orphans
|
||||
docker compose -f docker-compose.yml -f docker-compose-proxy.yml up -d --remove-orphans
|
||||
# Logs
|
||||
docker-compose -f docker-compose.yml -f docker-compose-proxy.yml logs -f --timestamps
|
||||
docker compose -f docker-compose.yml -f docker-compose-proxy.yml logs -f --timestamps
|
||||
# Stop
|
||||
docker-compose -f docker-compose.yml -f docker-compose-proxy.yml down --remove-orphans
|
||||
docker compose -f docker-compose.yml -f docker-compose-proxy.yml down --remove-orphans
|
||||
```
|
||||
|
||||
> ℹ️ You can combine it with `-f docker-compose-db.yml` to spin a PostgreSQL database.
|
||||
|
@ -650,3 +654,46 @@ docker run -d --restart unless-stopped --log-opt max-size=10m \
|
|||
--name freshrss_cron freshrss/freshrss:alpine \
|
||||
crond -f -d 6
|
||||
```
|
||||
|
||||
## Migrate database
|
||||
|
||||
Our [CLI](../cli/README.md) offers commands to back-up and migrate user databases,
|
||||
with `cli/db-backup.php` and `cli/db-restore.php` in particular.
|
||||
|
||||
Here is an example (assuming our [Docker Compose example](#docker-compose-with-postgresql))
|
||||
intended for migrating to a newer major version of PostgreSQL,
|
||||
but which can also be used to migrate between other databases (e.g. MySQL to PostgreSQL).
|
||||
|
||||
```sh
|
||||
# Stop FreshRSS container (Web server + cron) during maintenance
|
||||
docker compose down freshrss
|
||||
|
||||
# Optional additional pre-upgrade back-up using PostgreSQL own mechanism
|
||||
docker compose -f docker-compose-db.yml \
|
||||
exec freshrss-db pg_dump -U freshrss freshrss | gzip -9 > freshrss-postgres-backup.sql.gz
|
||||
# ------↑ Name of your PostgreSQL Docker container
|
||||
# -----------------------------↑ Name of your PostgreSQL user for FreshRSS
|
||||
# --------------------------------------↑ Name of your PostgreSQL database for FreshRSS
|
||||
|
||||
# Back-up all users’ respective tables to SQLite files
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml \
|
||||
run --rm freshrss cli/db-backup.php
|
||||
|
||||
# Remove old database (PostgreSQL) container and its data volume
|
||||
docker compose -f docker-compose-db.yml \
|
||||
down --volumes freshrss-db
|
||||
|
||||
# Edit your Compose file to use new database (e.g. newest postgres:xx)
|
||||
nano docker-compose-db.yml
|
||||
|
||||
# Start new database (PostgreSQL) container and its new empty data volume
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml \
|
||||
up -d freshrss-db
|
||||
|
||||
# Restore all users’ respective tables from SQLite files
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml \
|
||||
run --rm freshrss cli/db-restore.php --delete-backup
|
||||
|
||||
# Restart a new FreshRSS container after maintenance
|
||||
docker compose -f docker-compose.yml -f docker-compose-db.yml up -d freshrss
|
||||
```
|
||||
|
|
|
@ -7,7 +7,7 @@ volumes:
|
|||
services:
|
||||
|
||||
traefik:
|
||||
image: traefik:2.11
|
||||
image: traefik:3.0
|
||||
container_name: traefik
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
|
|
|
@ -126,7 +126,7 @@ sudo cli/access-permissions.sh
|
|||
sudo chown www-data:www-data -R .
|
||||
|
||||
# Publier FreshRSS dans votre répertoire HTML public
|
||||
sudo ln -s /usr/share/FreshRSS/p /var/www/html/FreshRSS
|
||||
[ ! -e "/var/www/html/FreshRSS" ] && sudo ln -s /usr/share/FreshRSS/p /var/www/html/FreshRSS || echo "/var/www/html/FreshRSS existe déjà"
|
||||
# Naviguez vers http://example.net/FreshRSS pour terminer l’installation
|
||||
# (Si vous le faite depuis localhost, vous pourrez avoir à ajuster le réglage de votre adresse publique)
|
||||
# ou utilisez l’interface en ligne de commande
|
||||
|
|
|
@ -12,6 +12,7 @@ class FreshRSS_category_Controller extends FreshRSS_ActionController {
|
|||
* underlying framework.
|
||||
*
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
|
|
@ -10,6 +10,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
|
|||
* the common boilerplate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
@ -373,7 +374,6 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
|
|||
if ('' === $name) {
|
||||
$name = _t('conf.query.number', $id + 1);
|
||||
}
|
||||
$queryParams['name'] = $name;
|
||||
if (!empty($params['get']) && is_string($params['get'])) {
|
||||
$queryParams['get'] = htmlspecialchars_decode($params['get'], ENT_QUOTES);
|
||||
}
|
||||
|
@ -398,6 +398,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
|
|||
$queryParams['shareOpml'] = (bool)$params['shareOpml'];
|
||||
}
|
||||
$queryParams['url'] = Minz_Url::display(['params' => $queryParams]);
|
||||
$queryParams['name'] = $name;
|
||||
|
||||
$queries = FreshRSS_Context::userConf()->queries;
|
||||
$queries[$id] = (new FreshRSS_UserQuery($queryParams, FreshRSS_Context::categories(), FreshRSS_Context::labels()))->toArray();
|
||||
|
@ -441,6 +442,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController {
|
|||
$queries[$key] = (new FreshRSS_UserQuery($query, FreshRSS_Context::categories(), FreshRSS_Context::labels()))->toArray();
|
||||
}
|
||||
$params = $_GET;
|
||||
unset($params['name']);
|
||||
unset($params['rid']);
|
||||
$params['url'] = Minz_Url::display(['params' => $params]);
|
||||
$params['name'] = _t('conf.query.number', count($queries) + 1);
|
||||
|
|
|
@ -16,6 +16,7 @@ class FreshRSS_entry_Controller extends FreshRSS_ActionController {
|
|||
* the common boilerplate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
|
|
@ -10,6 +10,7 @@ class FreshRSS_extension_Controller extends FreshRSS_ActionController {
|
|||
* the common boiler plate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
|
|
@ -10,6 +10,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
* the common boiler plate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
// Token is useful in the case that anonymous refresh is forbidden
|
||||
|
@ -258,7 +259,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
if (!empty($xPathSettings)) {
|
||||
$attributes['xpath'] = $xPathSettings;
|
||||
}
|
||||
} elseif ($feed_kind === FreshRSS_Feed::KIND_JSON_DOTPATH) {
|
||||
} elseif ($feed_kind === FreshRSS_Feed::KIND_JSON_DOTNOTATION) {
|
||||
$jsonSettings = [];
|
||||
if (Minz_Request::paramString('jsonFeedTitle') !== '') {
|
||||
$jsonSettings['feedTitle'] = Minz_Request::paramString('jsonFeedTitle', true);
|
||||
|
@ -294,7 +295,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
$jsonSettings['itemUid'] = Minz_Request::paramString('jsonItemUid', true);
|
||||
}
|
||||
if (!empty($jsonSettings)) {
|
||||
$attributes['json_dotpath'] = $jsonSettings;
|
||||
$attributes['json_dotnotation'] = $jsonSettings;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -454,8 +455,8 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
continue; //When PubSubHubbub is used, do not pull refresh so often
|
||||
}
|
||||
|
||||
if ($feed->mute()) {
|
||||
continue; //Feed refresh is disabled
|
||||
if ($feed->mute() && $feed_id === null) {
|
||||
continue; // If the feed is disabled, only allow refresh if manually requested for that specific feed
|
||||
}
|
||||
$mtime = $feed->cacheModifiedTime() ?: 0;
|
||||
$ttl = $feed->ttl();
|
||||
|
@ -496,10 +497,10 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
if ($simplePie === null) {
|
||||
throw new FreshRSS_Feed_Exception('XML+XPath parsing failed for [' . $feed->url(false) . ']');
|
||||
}
|
||||
} elseif ($feed->kind() === FreshRSS_Feed::KIND_JSON_DOTPATH) {
|
||||
} elseif ($feed->kind() === FreshRSS_Feed::KIND_JSON_DOTNOTATION) {
|
||||
$simplePie = $feed->loadJson();
|
||||
if ($simplePie === null) {
|
||||
throw new FreshRSS_Feed_Exception('JSON dotpath parsing failed for [' . $feed->url(false) . ']');
|
||||
throw new FreshRSS_Feed_Exception('JSON dot notation parsing failed for [' . $feed->url(false) . ']');
|
||||
}
|
||||
} elseif ($feed->kind() === FreshRSS_Feed::KIND_JSONFEED) {
|
||||
$simplePie = $feed->loadJson();
|
||||
|
@ -572,6 +573,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
$existingHash = $existingHashForGuids[$entry->guid()];
|
||||
if (strcasecmp($existingHash, $entry->hash()) !== 0) {
|
||||
//This entry already exists but has been updated
|
||||
$entry->_isUpdated(true);
|
||||
//Minz_Log::debug('Entry with GUID `' . $entry->guid() . '` updated in feed ' . $feed->url(false) .
|
||||
//', old hash ' . $existingHash . ', new hash ' . $entry->hash());
|
||||
$entry->_isFavorite(null); // Do not change favourite state
|
||||
|
@ -586,6 +588,11 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
continue;
|
||||
}
|
||||
|
||||
$entry->applyFilterActions($titlesAsRead);
|
||||
if ($readWhenSameTitleInFeed > 0) {
|
||||
$titlesAsRead[$entry->title()] = true;
|
||||
}
|
||||
|
||||
if (!$entry->isRead()) {
|
||||
$needFeedCacheRefresh = true; //Maybe
|
||||
$nbMarkedUnread++;
|
||||
|
@ -600,6 +607,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
$entryDAO->updateEntry($entry->toArray());
|
||||
}
|
||||
} else {
|
||||
$entry->_isUpdated(false);
|
||||
$id = uTimeString();
|
||||
$entry->_id($id);
|
||||
|
||||
|
@ -1113,7 +1121,7 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
$feed_id = Minz_Request::paramInt('id');
|
||||
$content_selector = Minz_Request::paramString('selector');
|
||||
|
||||
if (!$content_selector) {
|
||||
if ($content_selector === '') {
|
||||
$this->view->fatalError = _t('feedback.sub.feed.selector_preview.selector_empty');
|
||||
return;
|
||||
}
|
||||
|
@ -1135,11 +1143,12 @@ class FreshRSS_feed_Controller extends FreshRSS_ActionController {
|
|||
|
||||
//Get feed.
|
||||
$feed = $entry->feed();
|
||||
|
||||
if ($feed === null) {
|
||||
$this->view->fatalError = _t('feedback.sub.feed.selector_preview.no_feed');
|
||||
return;
|
||||
}
|
||||
$feed->_pathEntries($content_selector);
|
||||
$feed->_attribute('path_entries_filter', Minz_Request::paramString('selector_filter', true));
|
||||
|
||||
//Fetch & select content.
|
||||
try {
|
||||
|
|
|
@ -15,6 +15,7 @@ class FreshRSS_importExport_Controller extends FreshRSS_ActionController {
|
|||
* the common boilerplate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
|
|
@ -6,6 +6,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
class FreshRSS_index_Controller extends FreshRSS_ActionController {
|
||||
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
$this->view->html_url = Minz_Url::display(['c' => 'index', 'a' => 'index'], 'html', 'root');
|
||||
}
|
||||
|
@ -73,9 +74,8 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController {
|
|||
|
||||
$this->view->callbackBeforeEntries = static function (FreshRSS_View $view) {
|
||||
try {
|
||||
FreshRSS_Context::$number++; //+1 for articles' page
|
||||
$view->entries = FreshRSS_index_Controller::listEntriesByContext();
|
||||
FreshRSS_Context::$number--;
|
||||
// +1 to account for paging logic
|
||||
$view->entries = FreshRSS_index_Controller::listEntriesByContext(FreshRSS_Context::$number + 1);
|
||||
ob_start(); //Buffer "one entry at a time"
|
||||
} catch (FreshRSS_EntriesGetter_Exception $e) {
|
||||
Minz_Log::notice($e->getMessage());
|
||||
|
@ -244,10 +244,11 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController {
|
|||
|
||||
/**
|
||||
* This method returns a list of entries based on the Context object.
|
||||
* @param int $postsPerPage override `FreshRSS_Context::$number`
|
||||
* @return Traversable<FreshRSS_Entry>
|
||||
* @throws FreshRSS_EntriesGetter_Exception
|
||||
*/
|
||||
public static function listEntriesByContext(): Traversable {
|
||||
public static function listEntriesByContext(?int $postsPerPage = null): Traversable {
|
||||
$entryDAO = FreshRSS_Factory::createEntryDao();
|
||||
|
||||
$get = FreshRSS_Context::currentGet(true);
|
||||
|
@ -266,7 +267,7 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController {
|
|||
|
||||
foreach ($entryDAO->listWhere(
|
||||
$type, $id, FreshRSS_Context::$state, FreshRSS_Context::$order,
|
||||
FreshRSS_Context::$number, FreshRSS_Context::$offset, FreshRSS_Context::$first_id,
|
||||
$postsPerPage ?? FreshRSS_Context::$number, FreshRSS_Context::$offset, FreshRSS_Context::$first_id,
|
||||
FreshRSS_Context::$search, $date_min)
|
||||
as $entry) {
|
||||
yield $entry;
|
||||
|
|
|
@ -12,6 +12,7 @@ class FreshRSS_javascript_Controller extends FreshRSS_ActionController {
|
|||
parent::__construct(FreshRSS_ViewJavascript::class);
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
$this->view->_layout(null);
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ class FreshRSS_stats_Controller extends FreshRSS_ActionController {
|
|||
* the common boilerplate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
|
|
@ -10,6 +10,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
|
|||
* the common boilerplate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess()) {
|
||||
Minz_Error::error(403);
|
||||
|
@ -237,7 +238,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
|
|||
$xPathSettings['itemUid'] = Minz_Request::paramString('xPathItemUid', true);
|
||||
if (!empty($xPathSettings))
|
||||
$feed->_attribute('xpath', $xPathSettings);
|
||||
} elseif ($feed->kind() === FreshRSS_Feed::KIND_JSON_DOTPATH) {
|
||||
} elseif ($feed->kind() === FreshRSS_Feed::KIND_JSON_DOTNOTATION) {
|
||||
$jsonSettings = [];
|
||||
if (Minz_Request::paramString('jsonFeedTitle') !== '') {
|
||||
$jsonSettings['feedTitle'] = Minz_Request::paramString('jsonFeedTitle', true);
|
||||
|
@ -273,7 +274,7 @@ class FreshRSS_subscription_Controller extends FreshRSS_ActionController {
|
|||
$jsonSettings['itemUid'] = Minz_Request::paramString('jsonItemUid', true);
|
||||
}
|
||||
if (!empty($jsonSettings)) {
|
||||
$feed->_attribute('json_dotpath', $jsonSettings);
|
||||
$feed->_attribute('json_dotnotation', $jsonSettings);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ class FreshRSS_tag_Controller extends FreshRSS_ActionController {
|
|||
* the common boilerplate for every action. It is triggered by the
|
||||
* underlying framework.
|
||||
*/
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
// If ajax request, we do not print layout
|
||||
$this->ajax = Minz_Request::paramBoolean('ajax');
|
||||
|
|
|
@ -113,6 +113,7 @@ class FreshRSS_update_Controller extends FreshRSS_ActionController {
|
|||
return $return == 0 ? true : 'Git error: ' . $line;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function firstAction(): void {
|
||||
if (!FreshRSS_Auth::hasAccess('admin')) {
|
||||
Minz_Error::error(403);
|
||||
|
|
|
@ -317,8 +317,14 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|||
);
|
||||
}
|
||||
|
||||
$tos_enabled = file_exists(TOS_FILENAME);
|
||||
$accept_tos = Minz_Request::paramBoolean('accept_tos');
|
||||
if (!FreshRSS_Auth::hasAccess('admin')) {
|
||||
// TODO: We may want to ask the user to accept TOS before first login
|
||||
$tos_enabled = file_exists(TOS_FILENAME);
|
||||
$accept_tos = Minz_Request::paramBoolean('accept_tos');
|
||||
if ($tos_enabled && !$accept_tos) {
|
||||
Minz_Request::bad(_t('user.tos.feedback.invalid'), $badRedirectUrl);
|
||||
}
|
||||
}
|
||||
|
||||
if (FreshRSS_Context::systemConf()->force_email_validation && empty($email)) {
|
||||
Minz_Request::bad(
|
||||
|
@ -334,13 +340,6 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|||
);
|
||||
}
|
||||
|
||||
if ($tos_enabled && !$accept_tos) {
|
||||
Minz_Request::bad(
|
||||
_t('user.tos.feedback.invalid'),
|
||||
$badRedirectUrl
|
||||
);
|
||||
}
|
||||
|
||||
$ok = self::createUser($new_user_name, $email, $passwordPlain, [
|
||||
'language' => Minz_Request::paramString('new_user_language') ?: FreshRSS_Context::userConf()->language,
|
||||
'timezone' => Minz_Request::paramString('new_user_timezone'),
|
||||
|
@ -390,8 +389,10 @@ class FreshRSS_user_Controller extends FreshRSS_ActionController {
|
|||
$ok &= is_dir($user_data);
|
||||
if ($ok) {
|
||||
FreshRSS_fever_Util::deleteKey($username);
|
||||
Minz_ModelPdo::$usesSharedPdo = false;
|
||||
$oldUserDAO = FreshRSS_Factory::createUserDao($username);
|
||||
$ok &= $oldUserDAO->deleteUser();
|
||||
Minz_ModelPdo::$usesSharedPdo = true;
|
||||
$ok &= recursive_unlink($user_data);
|
||||
$filenames = glob(PSHB_PATH . '/feeds/*/' . $username . '.txt');
|
||||
if (!empty($filenames)) {
|
||||
|
|
|
@ -50,7 +50,6 @@ class FreshRSS_BooleanSearch {
|
|||
$all_matches = [];
|
||||
if (preg_match_all('/\bsearch:(?P<delim>[\'"])(?P<search>.*)(?P=delim)/U', $input, $matchesFound)) {
|
||||
$all_matches[] = $matchesFound;
|
||||
|
||||
}
|
||||
if (preg_match_all('/\bsearch:(?P<search>[^\s"]*)/', $input, $matchesFound)) {
|
||||
$all_matches[] = $matchesFound;
|
||||
|
@ -291,6 +290,7 @@ class FreshRSS_BooleanSearch {
|
|||
$this->searches[] = $search;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function __toString(): string {
|
||||
return $this->getRawInput();
|
||||
}
|
||||
|
|
|
@ -214,6 +214,7 @@ class FreshRSS_Category extends Minz_Model {
|
|||
// The feed does not exist in the current category, so add that feed
|
||||
$dryRunFeed->_category($this);
|
||||
$ok &= ($feedDAO->addFeedObject($dryRunFeed) !== false);
|
||||
$existingFeeds[$dryRunFeed->url()] = $dryRunFeed;
|
||||
} else {
|
||||
$existingFeed = $existingFeeds[$dryRunFeed->url()];
|
||||
if ($existingFeed->mute()) {
|
||||
|
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||
class FreshRSS_CategoryDAOSQLite extends FreshRSS_CategoryDAO {
|
||||
|
||||
/** @param array<int|string> $errorInfo */
|
||||
#[\Override]
|
||||
protected function autoUpdateDb(array $errorInfo): bool {
|
||||
if ($tableInfo = $this->pdo->query("PRAGMA table_info('category')")) {
|
||||
$columns = $tableInfo->fetchAll(PDO::FETCH_COLUMN, 1);
|
||||
|
|
|
@ -48,6 +48,18 @@ class FreshRSS_DatabaseDAO extends Minz_ModelPdo {
|
|||
}
|
||||
}
|
||||
|
||||
public function exits(): bool {
|
||||
$sql = 'SELECT * FROM `_entry` LIMIT 1';
|
||||
$stm = $this->pdo->query($sql);
|
||||
if ($stm !== false) {
|
||||
$res = $stm->fetchAll(PDO::FETCH_COLUMN, 0);
|
||||
if ($res !== false) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function tablesAreCorrect(): bool {
|
||||
$res = $this->fetchAssoc('SHOW TABLES');
|
||||
if ($res == null) {
|
||||
|
@ -242,6 +254,7 @@ SQL;
|
|||
}
|
||||
$error = '';
|
||||
|
||||
$databaseDAO = FreshRSS_Factory::createDatabaseDAO();
|
||||
$userDAO = FreshRSS_Factory::createUserDao();
|
||||
$catDAO = FreshRSS_Factory::createCategoryDao();
|
||||
$feedDAO = FreshRSS_Factory::createFeedDao();
|
||||
|
@ -259,15 +272,18 @@ SQL;
|
|||
$error = 'Error: SQLite import file is not readable: ' . $filename;
|
||||
} elseif ($clearFirst) {
|
||||
$userDAO->deleteUser();
|
||||
$userDAO = FreshRSS_Factory::createUserDao();
|
||||
if ($this->pdo->dbType() === 'sqlite') {
|
||||
//We cannot just delete the .sqlite file otherwise PDO gets buggy.
|
||||
//SQLite is the only one with database-level optimization, instead of at table level.
|
||||
$this->optimize();
|
||||
}
|
||||
} else {
|
||||
$nbEntries = $entryDAO->countUnreadRead();
|
||||
if (!empty($nbEntries['all'])) {
|
||||
$error = 'Error: Destination database already contains some entries!';
|
||||
if ($databaseDAO->exits()) {
|
||||
$nbEntries = $entryDAO->countUnreadRead();
|
||||
if (isset($nbEntries['all']) && $nbEntries['all'] > 0) {
|
||||
$error = 'Error: Destination database already contains some entries!';
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -10,6 +10,7 @@ class FreshRSS_DatabaseDAOPGSQL extends FreshRSS_DatabaseDAOSQLite {
|
|||
public const UNDEFINED_COLUMN = '42703';
|
||||
public const UNDEFINED_TABLE = '42P01';
|
||||
|
||||
#[\Override]
|
||||
public function tablesAreCorrect(): bool {
|
||||
$db = FreshRSS_Context::systemConf()->db;
|
||||
$sql = 'SELECT * FROM pg_catalog.pg_tables where tableowner=:tableowner';
|
||||
|
@ -34,6 +35,7 @@ class FreshRSS_DatabaseDAOPGSQL extends FreshRSS_DatabaseDAOSQLite {
|
|||
}
|
||||
|
||||
/** @return array<array<string,string|int|bool|null>> */
|
||||
#[\Override]
|
||||
public function getSchema(string $table): array {
|
||||
$sql = <<<'SQL'
|
||||
SELECT column_name AS field, data_type AS type, column_default AS default, is_nullable AS null
|
||||
|
@ -47,6 +49,7 @@ SQL;
|
|||
* @param array<string,string|int|bool|null> $dao
|
||||
* @return array{'name':string,'type':string,'notnull':bool,'default':mixed}
|
||||
*/
|
||||
#[\Override]
|
||||
public function daoToSchema(array $dao): array {
|
||||
return [
|
||||
'name' => (string)($dao['field']),
|
||||
|
@ -56,6 +59,7 @@ SQL;
|
|||
];
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function size(bool $all = false): int {
|
||||
if ($all) {
|
||||
$db = FreshRSS_Context::systemConf()->db;
|
||||
|
@ -75,7 +79,7 @@ SQL;
|
|||
return (int)($res[0] ?? -1);
|
||||
}
|
||||
|
||||
|
||||
#[\Override]
|
||||
public function optimize(): bool {
|
||||
$ok = true;
|
||||
$tables = ['category', 'feed', 'entry', 'entrytmp', 'tag', 'entrytag'];
|
||||
|
|
|
@ -6,6 +6,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
class FreshRSS_DatabaseDAOSQLite extends FreshRSS_DatabaseDAO {
|
||||
|
||||
#[\Override]
|
||||
public function tablesAreCorrect(): bool {
|
||||
$sql = 'SELECT name FROM sqlite_master WHERE type="table"';
|
||||
$stm = $this->pdo->query($sql);
|
||||
|
@ -30,18 +31,21 @@ class FreshRSS_DatabaseDAOSQLite extends FreshRSS_DatabaseDAO {
|
|||
}
|
||||
|
||||
/** @return array<array<string,string|int|bool|null>> */
|
||||
#[\Override]
|
||||
public function getSchema(string $table): array {
|
||||
$sql = 'PRAGMA table_info(' . $table . ')';
|
||||
$stm = $this->pdo->query($sql);
|
||||
return $stm ? $this->listDaoToSchema($stm->fetchAll(PDO::FETCH_ASSOC) ?: []) : [];
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function entryIsCorrect(): bool {
|
||||
return $this->checkTable('entry', [
|
||||
'id', 'guid', 'title', 'author', 'content', 'link', 'date', 'lastSeen', 'hash', 'is_read', 'is_favorite', 'id_feed', 'tags',
|
||||
]);
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function entrytmpIsCorrect(): bool {
|
||||
return $this->checkTable('entrytmp', [
|
||||
'id', 'guid', 'title', 'author', 'content', 'link', 'date', 'lastSeen', 'hash', 'is_read', 'is_favorite', 'id_feed', 'tags'
|
||||
|
@ -52,6 +56,7 @@ class FreshRSS_DatabaseDAOSQLite extends FreshRSS_DatabaseDAO {
|
|||
* @param array<string,string|int|bool|null> $dao
|
||||
* @return array{'name':string,'type':string,'notnull':bool,'default':mixed}
|
||||
*/
|
||||
#[\Override]
|
||||
public function daoToSchema(array $dao): array {
|
||||
return [
|
||||
'name' => (string)$dao['name'],
|
||||
|
@ -61,6 +66,7 @@ class FreshRSS_DatabaseDAOSQLite extends FreshRSS_DatabaseDAO {
|
|||
];
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function size(bool $all = false): int {
|
||||
$sum = 0;
|
||||
if ($all) {
|
||||
|
@ -73,6 +79,7 @@ class FreshRSS_DatabaseDAOSQLite extends FreshRSS_DatabaseDAO {
|
|||
return $sum;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function optimize(): bool {
|
||||
$ok = $this->pdo->exec('VACUUM') !== false;
|
||||
if (!$ok) {
|
||||
|
|
|
@ -24,6 +24,7 @@ class FreshRSS_Entry extends Minz_Model {
|
|||
private string $hash = '';
|
||||
private ?bool $is_read;
|
||||
private ?bool $is_favorite;
|
||||
private bool $is_updated = false;
|
||||
private int $feedId;
|
||||
private ?FreshRSS_Feed $feed;
|
||||
/** @var array<string> */
|
||||
|
@ -201,7 +202,7 @@ HTML;
|
|||
if (!$allowDuplicateEnclosures && self::containsLink($content, $elink)) {
|
||||
continue;
|
||||
}
|
||||
$credit = $enclosure['credit'] ?? '';
|
||||
$credits = $enclosure['credit'] ?? '';
|
||||
$description = nl2br($enclosure['description'] ?? '', true);
|
||||
$length = $enclosure['length'] ?? 0;
|
||||
$medium = $enclosure['medium'] ?? '';
|
||||
|
@ -238,8 +239,13 @@ HTML;
|
|||
. '" title="' . $etitle . '">💾</a></p>';
|
||||
}
|
||||
|
||||
if ($credit != '') {
|
||||
$content .= '<p class="enclosure-credits">© ' . $credit . '</p>';
|
||||
if ($credits != '') {
|
||||
if (!is_array($credits)) {
|
||||
$credits = [$credits];
|
||||
}
|
||||
foreach ($credits as $credit) {
|
||||
$content .= '<p class="enclosure-credits">© ' . $credit . '</p>';
|
||||
}
|
||||
}
|
||||
if ($description != '') {
|
||||
$content .= '<figcaption class="enclosure-description">' . $description . '</figcaption>';
|
||||
|
@ -250,7 +256,7 @@ HTML;
|
|||
return $content;
|
||||
}
|
||||
|
||||
/** @return Traversable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> */
|
||||
/** @return Traversable<array{'url':string,'type'?:string,'medium'?:string,'length'?:int,'title'?:string,'description'?:string,'credit'?:string|array<string>,'height'?:int,'width'?:int,'thumbnails'?:array<string>}> */
|
||||
public function enclosures(bool $searchBodyImages = false): Traversable {
|
||||
$attributeEnclosures = $this->attributeArray('enclosures');
|
||||
if (is_iterable($attributeEnclosures)) {
|
||||
|
@ -389,6 +395,18 @@ HTML;
|
|||
return $this->is_favorite;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the entry has been modified since it was inserted in database.
|
||||
* @returns bool `true` if the entry already existed (and has been modified), `false` if the entry is new (or unmodified).
|
||||
*/
|
||||
public function isUpdated(): ?bool {
|
||||
return $this->is_updated;
|
||||
}
|
||||
|
||||
public function _isUpdated(bool $value): void {
|
||||
$this->is_updated = $value;
|
||||
}
|
||||
|
||||
public function feed(): ?FreshRSS_Feed {
|
||||
if ($this->feed === null) {
|
||||
$feedDAO = FreshRSS_Factory::createFeedDao();
|
||||
|
@ -730,11 +748,14 @@ HTML;
|
|||
}
|
||||
|
||||
$content = '';
|
||||
$nodes = $xpath->query((new Gt\CssXPath\Translator($feed->pathEntries()))->asXPath());
|
||||
$cssSelector = htmlspecialchars_decode($feed->pathEntries(), ENT_QUOTES);
|
||||
$cssSelector = trim($cssSelector, ', ');
|
||||
$nodes = $xpath->query((new Gt\CssXPath\Translator($cssSelector))->asXPath());
|
||||
if ($nodes != false) {
|
||||
$path_entries_filter = $feed->attributeString('path_entries_filter');
|
||||
$path_entries_filter = $feed->attributeString('path_entries_filter') ?? '';
|
||||
$path_entries_filter = trim($path_entries_filter, ', ');
|
||||
foreach ($nodes as $node) {
|
||||
if ($path_entries_filter != null) {
|
||||
if ($path_entries_filter !== '') {
|
||||
$filterednodes = $xpath->query((new Gt\CssXPath\Translator($path_entries_filter))->asXPath(), $node) ?: [];
|
||||
foreach ($filterednodes as $filterednode) {
|
||||
if ($filterednode->parentNode === null) {
|
||||
|
|
|
@ -3,23 +3,28 @@ declare(strict_types=1);
|
|||
|
||||
class FreshRSS_EntryDAOPGSQL extends FreshRSS_EntryDAOSQLite {
|
||||
|
||||
#[\Override]
|
||||
public static function hasNativeHex(): bool {
|
||||
return true;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public static function sqlHexDecode(string $x): string {
|
||||
return 'decode(' . $x . ", 'hex')";
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public static function sqlHexEncode(string $x): string {
|
||||
return 'encode(' . $x . ", 'hex')";
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public static function sqlIgnoreConflict(string $sql): string {
|
||||
return rtrim($sql, ' ;') . ' ON CONFLICT DO NOTHING';
|
||||
}
|
||||
|
||||
/** @param array<string|int> $errorInfo */
|
||||
#[\Override]
|
||||
protected function autoUpdateDb(array $errorInfo): bool {
|
||||
if (isset($errorInfo[0])) {
|
||||
if ($errorInfo[0] === FreshRSS_DatabaseDAO::ER_BAD_FIELD_ERROR || $errorInfo[0] === FreshRSS_DatabaseDAOPGSQL::UNDEFINED_COLUMN) {
|
||||
|
@ -34,6 +39,7 @@ class FreshRSS_EntryDAOPGSQL extends FreshRSS_EntryDAOSQLite {
|
|||
return false;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function commitNewEntries(): bool {
|
||||
//TODO: Update to PostgreSQL 9.5+ syntax with ON CONFLICT DO NOTHING
|
||||
$sql = 'DO $$
|
||||
|
|
|
@ -3,27 +3,33 @@ declare(strict_types=1);
|
|||
|
||||
class FreshRSS_EntryDAOSQLite extends FreshRSS_EntryDAO {
|
||||
|
||||
#[\Override]
|
||||
public static function isCompressed(): bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public static function hasNativeHex(): bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
protected static function sqlConcat(string $s1, string $s2): string {
|
||||
return $s1 . '||' . $s2;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public static function sqlHexDecode(string $x): string {
|
||||
return $x;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public static function sqlIgnoreConflict(string $sql): string {
|
||||
return str_replace('INSERT INTO ', 'INSERT OR IGNORE INTO ', $sql);
|
||||
}
|
||||
|
||||
/** @param array<string|int> $errorInfo */
|
||||
#[\Override]
|
||||
protected function autoUpdateDb(array $errorInfo): bool {
|
||||
if ($tableInfo = $this->pdo->query("PRAGMA table_info('entry')")) {
|
||||
$columns = $tableInfo->fetchAll(PDO::FETCH_COLUMN, 1) ?: [];
|
||||
|
@ -36,6 +42,7 @@ class FreshRSS_EntryDAOSQLite extends FreshRSS_EntryDAO {
|
|||
return false;
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function commitNewEntries(): bool {
|
||||
$sql = <<<'SQL'
|
||||
DROP TABLE IF EXISTS `tmp`;
|
||||
|
@ -74,6 +81,7 @@ SQL;
|
|||
* @param bool $is_read
|
||||
* @return int|false affected rows
|
||||
*/
|
||||
#[\Override]
|
||||
public function markRead($ids, bool $is_read = true) {
|
||||
FreshRSS_UserDAO::touch();
|
||||
if (is_array($ids)) { //Many IDs at once (used by API)
|
||||
|
@ -119,6 +127,7 @@ SQL;
|
|||
* @param string $idMax max article ID
|
||||
* @return int|false affected rows
|
||||
*/
|
||||
#[\Override]
|
||||
public function markReadTag($id = 0, string $idMax = '0', ?FreshRSS_BooleanSearch $filters = null, int $state = 0, bool $is_read = true) {
|
||||
FreshRSS_UserDAO::touch();
|
||||
if ($idMax == 0) {
|
||||
|
|
|
@ -31,7 +31,7 @@ class FreshRSS_Feed extends Minz_Model {
|
|||
public const KIND_JSON_XPATH = 20;
|
||||
|
||||
public const KIND_JSONFEED = 25;
|
||||
public const KIND_JSON_DOTPATH = 30;
|
||||
public const KIND_JSON_DOTNOTATION = 30;
|
||||
|
||||
public const PRIORITY_IMPORTANT = 20;
|
||||
public const PRIORITY_MAIN_STREAM = 10;
|
||||
|
@ -520,7 +520,7 @@ class FreshRSS_Feed extends Minz_Model {
|
|||
$elink = $enclosure->get_link();
|
||||
if ($elink != '') {
|
||||
$etitle = $enclosure->get_title() ?? '';
|
||||
$credit = $enclosure->get_credit() ?? null;
|
||||
$credits = $enclosure->get_credits() ?? null;
|
||||
$description = $enclosure->get_description() ?? '';
|
||||
$mime = strtolower($enclosure->get_type() ?? '');
|
||||
$medium = strtolower($enclosure->get_medium() ?? '');
|
||||
|
@ -534,8 +534,11 @@ class FreshRSS_Feed extends Minz_Model {
|
|||
if ($etitle != '') {
|
||||
$attributeEnclosure['title'] = $etitle;
|
||||
}
|
||||
if ($credit != null) {
|
||||
$attributeEnclosure['credit'] = $credit->get_name();
|
||||
if (is_array($credits)) {
|
||||
$attributeEnclosure['credit'] = [];
|
||||
foreach ($credits as $credit) {
|
||||
$attributeEnclosure['credit'][] = $credit->get_name();
|
||||
}
|
||||
}
|
||||
if ($description != '') {
|
||||
$attributeEnclosure['description'] = $description;
|
||||
|
@ -618,7 +621,7 @@ class FreshRSS_Feed extends Minz_Model {
|
|||
}
|
||||
|
||||
/** @return array<string,string> */
|
||||
private function dotPathsForStandardJsonFeed(): array {
|
||||
private function dotNotationForStandardJsonFeed(): array {
|
||||
return [
|
||||
'feedTitle' => 'title',
|
||||
'item' => 'items',
|
||||
|
@ -659,11 +662,11 @@ class FreshRSS_Feed extends Minz_Model {
|
|||
return null;
|
||||
}
|
||||
|
||||
/** @var array<string,string> $json_dotpath */
|
||||
$json_dotpath = $this->attributeArray('json_dotpath') ?? [];
|
||||
$dotPaths = $this->kind() === FreshRSS_Feed::KIND_JSONFEED ? $this->dotPathsForStandardJsonFeed() : $json_dotpath;
|
||||
/** @var array<string,string> $json_dotnotation */
|
||||
$json_dotnotation = $this->attributeArray('json_dotnotation') ?? [];
|
||||
$dotnotations = $this->kind() === FreshRSS_Feed::KIND_JSONFEED ? $this->dotNotationForStandardJsonFeed() : $json_dotnotation;
|
||||
|
||||
$feedContent = FreshRSS_dotpath_Util::convertJsonToRss($jf, $feedSourceUrl, $dotPaths, $this->name());
|
||||
$feedContent = FreshRSS_dotNotation_Util::convertJsonToRss($jf, $feedSourceUrl, $dotnotations, $this->name());
|
||||
if ($feedContent == null) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||
class FreshRSS_FeedDAOSQLite extends FreshRSS_FeedDAO {
|
||||
|
||||
/** @param array<int|string> $errorInfo */
|
||||
#[\Override]
|
||||
protected function autoUpdateDb(array $errorInfo): bool {
|
||||
if ($tableInfo = $this->pdo->query("PRAGMA table_info('feed')")) {
|
||||
$columns = $tableInfo->fetchAll(PDO::FETCH_COLUMN, 1);
|
||||
|
|
|
@ -135,10 +135,16 @@ trait FreshRSS_FilterActionsTrait {
|
|||
}
|
||||
break;
|
||||
case 'star':
|
||||
$entry->_isFavorite(true);
|
||||
if (!$entry->isUpdated()) {
|
||||
// Do not apply to updated articles, to avoid overruling a user manual action
|
||||
$entry->_isFavorite(true);
|
||||
}
|
||||
break;
|
||||
case 'label':
|
||||
$applyLabel = true;
|
||||
if (!$entry->isUpdated()) {
|
||||
// Do not apply to updated articles, to avoid overruling a user manual action
|
||||
$applyLabel = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -107,6 +107,7 @@ class FreshRSS_Search {
|
|||
$this->parseSearch($input);
|
||||
}
|
||||
|
||||
#[\Override]
|
||||
public function __toString(): string {
|
||||
return $this->getRawInput();
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ class FreshRSS_StatsDAOPGSQL extends FreshRSS_StatsDAO {
|
|||
* @param int $feed id
|
||||
* @return array<int,int>
|
||||
*/
|
||||
#[\Override]
|
||||
public function calculateEntryRepartitionPerFeedPerHour(?int $feed = null): array {
|
||||
return $this->calculateEntryRepartitionPerFeedPerPeriod('hour', $feed);
|
||||
}
|
||||
|
@ -17,6 +18,7 @@ class FreshRSS_StatsDAOPGSQL extends FreshRSS_StatsDAO {
|
|||
* Calculates the number of article per day of week per feed
|
||||
* @return array<int,int>
|
||||
*/
|
||||
#[\Override]
|
||||
public function calculateEntryRepartitionPerFeedPerDayOfWeek(?int $feed = null): array {
|
||||
return $this->calculateEntryRepartitionPerFeedPerPeriod('day', $feed);
|
||||
}
|
||||
|
@ -25,6 +27,7 @@ class FreshRSS_StatsDAOPGSQL extends FreshRSS_StatsDAO {
|
|||
* Calculates the number of article per month per feed
|
||||
* @return array<int,int>
|
||||
*/
|
||||
#[\Override]
|
||||
public function calculateEntryRepartitionPerFeedPerMonth(?int $feed = null): array {
|
||||
return $this->calculateEntryRepartitionPerFeedPerPeriod('month', $feed);
|
||||
}
|
||||
|
@ -34,6 +37,7 @@ class FreshRSS_StatsDAOPGSQL extends FreshRSS_StatsDAO {
|
|||
* @param string $period format string to use for grouping
|
||||
* @return array<int,int>
|
||||
*/
|
||||
#[\Override]
|
||||
protected function calculateEntryRepartitionPerFeedPerPeriod(string $period, ?int $feed = null): array {
|
||||
$restrict = '';
|
||||
if ($feed) {
|
||||
|
|
|
@ -3,6 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
class FreshRSS_StatsDAOSQLite extends FreshRSS_StatsDAO {
|
||||
|
||||
#[\Override]
|
||||
protected function sqlFloor(string $s): string {
|
||||
return "CAST(($s) AS INT)";
|
||||
}
|
||||
|
@ -10,6 +11,7 @@ class FreshRSS_StatsDAOSQLite extends FreshRSS_StatsDAO {
|
|||
/**
|
||||
* @return array<int,int>
|
||||
*/
|
||||
#[\Override]
|
||||
protected function calculateEntryRepartitionPerFeedPerPeriod(string $period, ?int $feed = null): array {
|
||||
if ($feed) {
|
||||
$restrict = "WHERE e.id_feed = {$feed}";
|
||||
|
|
|
@ -3,6 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
class FreshRSS_TagDAOPGSQL extends FreshRSS_TagDAO {
|
||||
|
||||
#[\Override]
|
||||
public function sqlIgnore(): string {
|
||||
return ''; //TODO
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
class FreshRSS_TagDAOSQLite extends FreshRSS_TagDAO {
|
||||
|
||||
#[\Override]
|
||||
public function sqlIgnore(): string {
|
||||
return 'OR IGNORE';
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ class FreshRSS_UserDAO extends Minz_ModelPdo {
|
|||
$ok = $this->pdo->exec($GLOBALS['SQL_DROP_TABLES']) !== false;
|
||||
|
||||
if ($ok) {
|
||||
$this->close();
|
||||
return true;
|
||||
} else {
|
||||
$info = $this->pdo->errorInfo();
|
||||
|
|
|
@ -48,6 +48,8 @@ class FreshRSS_UserQuery {
|
|||
$this->labels = $labels;
|
||||
if (isset($query['get'])) {
|
||||
$this->parseGet($query['get']);
|
||||
} else {
|
||||
$this->get_type = 'all';
|
||||
}
|
||||
if (isset($query['name'])) {
|
||||
$this->name = trim($query['name']);
|
||||
|
@ -107,7 +109,9 @@ class FreshRSS_UserQuery {
|
|||
*/
|
||||
private function parseGet(string $get): void {
|
||||
$this->get = $get;
|
||||
if (preg_match('/(?P<type>[acfistT])(_(?P<id>\d+))?/', $get, $matches)) {
|
||||
if ($this->get === '') {
|
||||
$this->get_type = 'all';
|
||||
} elseif (preg_match('/(?P<type>[acfistT])(_(?P<id>\d+))?/', $get, $matches)) {
|
||||
$id = intval($matches['id'] ?? '0');
|
||||
switch ($matches['type']) {
|
||||
case 'a':
|
||||
|
@ -155,22 +159,22 @@ class FreshRSS_UserQuery {
|
|||
|
||||
/**
|
||||
* Check if the user query has parameters.
|
||||
* If the type is 'all', it is considered equal to no parameters
|
||||
*/
|
||||
public function hasParameters(): bool {
|
||||
if ($this->get_type === 'all') {
|
||||
return false;
|
||||
if ($this->get_type !== 'all') {
|
||||
return true;
|
||||
}
|
||||
if ($this->hasSearch()) {
|
||||
return true;
|
||||
}
|
||||
if ($this->state) {
|
||||
if (!in_array($this->state, [
|
||||
0,
|
||||
FreshRSS_Entry::STATE_READ | FreshRSS_Entry::STATE_NOT_READ,
|
||||
FreshRSS_Entry::STATE_READ | FreshRSS_Entry::STATE_NOT_READ | FreshRSS_Entry::STATE_FAVORITE | FreshRSS_Entry::STATE_NOT_FAVORITE
|
||||
], true)) {
|
||||
return true;
|
||||
}
|
||||
if ($this->order) {
|
||||
return true;
|
||||
}
|
||||
if ($this->get) {
|
||||
if ($this->order !== '' && $this->order !== FreshRSS_Context::userConf()->sort_order) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -20,7 +20,8 @@ class FreshRSS_Export_Service {
|
|||
public const TYPE_HTML_XPATH = 'HTML+XPath';
|
||||
public const TYPE_XML_XPATH = 'XML+XPath';
|
||||
public const TYPE_RSS_ATOM = 'rss';
|
||||
public const TYPE_JSON_DOTPATH = 'JSON+DotPath';
|
||||
public const TYPE_JSON_DOTPATH = 'JSON+DotPath'; // Legacy 1.24.0-dev
|
||||
public const TYPE_JSON_DOTNOTATION = 'JSON+DotNotation';
|
||||
public const TYPE_JSONFEED = 'JSONFeed';
|
||||
|
||||
/**
|
||||
|
@ -153,7 +154,7 @@ class FreshRSS_Export_Service {
|
|||
$zip_filename = 'freshrss_' . $this->username . '_' . $day . '_export.zip';
|
||||
|
||||
// From https://stackoverflow.com/questions/1061710/php-zip-files-on-the-fly
|
||||
$zip_file = tempnam('/tmp', 'zip');
|
||||
$zip_file = tempnam(TMP_PATH, 'zip');
|
||||
if ($zip_file == false) {
|
||||
return [$zip_filename, false];
|
||||
}
|
||||
|
|
|
@ -161,8 +161,9 @@ class FreshRSS_Import_Service {
|
|||
case strtolower(FreshRSS_Export_Service::TYPE_XML_XPATH):
|
||||
$feed->_kind(FreshRSS_Feed::KIND_XML_XPATH);
|
||||
break;
|
||||
case strtolower(FreshRSS_Export_Service::TYPE_JSON_DOTNOTATION):
|
||||
case strtolower(FreshRSS_Export_Service::TYPE_JSON_DOTPATH):
|
||||
$feed->_kind(FreshRSS_Feed::KIND_JSON_DOTPATH);
|
||||
$feed->_kind(FreshRSS_Feed::KIND_JSON_DOTNOTATION);
|
||||
break;
|
||||
case strtolower(FreshRSS_Export_Service::TYPE_JSONFEED):
|
||||
$feed->_kind(FreshRSS_Feed::KIND_JSONFEED);
|
||||
|
@ -254,7 +255,7 @@ class FreshRSS_Import_Service {
|
|||
$jsonSettings['itemUid'] = $feed_elt['frss:jsonItemUid'];
|
||||
}
|
||||
if (!empty($jsonSettings)) {
|
||||
$feed->_attribute('json_dotpath', $jsonSettings);
|
||||
$feed->_attribute('json_dotnotation', $jsonSettings);
|
||||
}
|
||||
|
||||
$curl_params = [];
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
final class FreshRSS_dotpath_Util
|
||||
final class FreshRSS_dotNotation_Util
|
||||
{
|
||||
|
||||
/**
|
||||
|
@ -96,11 +97,11 @@ final class FreshRSS_dotpath_Util
|
|||
*
|
||||
* @param array<string> $jf json feed
|
||||
* @param string $feedSourceUrl the source URL for the feed
|
||||
* @param array<string,string> $dotPaths dot paths to map JSON into RSS
|
||||
* @param string $defaultRssTitle Default title of the RSS feed, if not already provided in dotPath `feedTitle`
|
||||
* @param array<string,string> $dotNotation dot notation to map JSON into RSS
|
||||
* @param string $defaultRssTitle Default title of the RSS feed, if not already provided in dotNotation `feedTitle`
|
||||
*/
|
||||
public static function convertJsonToRss(array $jf, string $feedSourceUrl, array $dotPaths, string $defaultRssTitle = ''): ?string {
|
||||
if (!isset($dotPaths['item']) || $dotPaths['item'] === '') {
|
||||
public static function convertJsonToRss(array $jf, string $feedSourceUrl, array $dotNotation, string $defaultRssTitle = ''): ?string {
|
||||
if (!isset($dotNotation['item']) || $dotNotation['item'] === '') {
|
||||
return null; //no definition of item path, but we can't scrape anything without knowing this
|
||||
}
|
||||
|
||||
|
@ -111,40 +112,40 @@ final class FreshRSS_dotpath_Util
|
|||
$view->html_url = $view->rss_url;
|
||||
$view->entries = [];
|
||||
|
||||
$view->rss_title = isset($dotPaths['feedTitle'])
|
||||
? (htmlspecialchars(FreshRSS_dotpath_Util::getString($jf, $dotPaths['feedTitle']) ?? '', ENT_COMPAT, 'UTF-8') ?: $defaultRssTitle)
|
||||
$view->rss_title = isset($dotNotation['feedTitle'])
|
||||
? (htmlspecialchars(FreshRSS_dotNotation_Util::getString($jf, $dotNotation['feedTitle']) ?? '', ENT_COMPAT, 'UTF-8') ?: $defaultRssTitle)
|
||||
: $defaultRssTitle;
|
||||
|
||||
$jsonItems = FreshRSS_dotpath_Util::get($jf, $dotPaths['item']);
|
||||
$jsonItems = FreshRSS_dotNotation_Util::get($jf, $dotNotation['item']);
|
||||
if (!is_array($jsonItems) || count($jsonItems) === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
foreach ($jsonItems as $jsonItem) {
|
||||
$rssItem = [];
|
||||
$rssItem['link'] = isset($dotPaths['itemUri']) ? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemUri']) ?? '' : '';
|
||||
$rssItem['link'] = isset($dotNotation['itemUri']) ? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemUri']) ?? '' : '';
|
||||
if (empty($rssItem['link'])) {
|
||||
continue;
|
||||
}
|
||||
$rssItem['title'] = isset($dotPaths['itemTitle']) ? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemTitle']) ?? '' : '';
|
||||
$rssItem['author'] = isset($dotPaths['itemAuthor']) ? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemAuthor']) ?? '' : '';
|
||||
$rssItem['timestamp'] = isset($dotPaths['itemTimestamp']) ? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemTimestamp']) ?? '' : '';
|
||||
$rssItem['title'] = isset($dotNotation['itemTitle']) ? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemTitle']) ?? '' : '';
|
||||
$rssItem['author'] = isset($dotNotation['itemAuthor']) ? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemAuthor']) ?? '' : '';
|
||||
$rssItem['timestamp'] = isset($dotNotation['itemTimestamp']) ? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemTimestamp']) ?? '' : '';
|
||||
|
||||
//get simple content, but if a path for HTML content has been provided, replace the simple content with HTML content
|
||||
$rssItem['content'] = isset($dotPaths['itemContent']) ? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemContent']) ?? '' : '';
|
||||
$rssItem['content'] = isset($dotPaths['itemContentHTML'])
|
||||
? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemContentHTML']) ?? ''
|
||||
$rssItem['content'] = isset($dotNotation['itemContent']) ? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemContent']) ?? '' : '';
|
||||
$rssItem['content'] = isset($dotNotation['itemContentHTML'])
|
||||
? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemContentHTML']) ?? ''
|
||||
: $rssItem['content'];
|
||||
|
||||
if (isset($dotPaths['itemTimeFormat']) && is_string($dotPaths['itemTimeFormat'])) {
|
||||
$dateTime = DateTime::createFromFormat($dotPaths['itemTimeFormat'], $rssItem['timestamp']);
|
||||
if (isset($dotNotation['itemTimeFormat']) && is_string($dotNotation['itemTimeFormat'])) {
|
||||
$dateTime = DateTime::createFromFormat($dotNotation['itemTimeFormat'], $rssItem['timestamp']);
|
||||
if ($dateTime != false) {
|
||||
$rssItem['timestamp'] = $dateTime->format(DateTime::ATOM);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($dotPaths['itemCategories'])) {
|
||||
$jsonItemCategories = FreshRSS_dotpath_Util::get($jsonItem, $dotPaths['itemCategories']);
|
||||
if (isset($dotNotation['itemCategories'])) {
|
||||
$jsonItemCategories = FreshRSS_dotNotation_Util::get($jsonItem, $dotNotation['itemCategories']);
|
||||
if (is_string($jsonItemCategories) && $jsonItemCategories !== '') {
|
||||
$rssItem['tags'] = [$jsonItemCategories];
|
||||
} elseif (is_array($jsonItemCategories) && count($jsonItemCategories) > 0) {
|
||||
|
@ -157,31 +158,31 @@ final class FreshRSS_dotpath_Util
|
|||
}
|
||||
}
|
||||
|
||||
$rssItem['thumbnail'] = isset($dotPaths['itemThumbnail']) ? FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemThumbnail']) ?? '' : '';
|
||||
$rssItem['thumbnail'] = isset($dotNotation['itemThumbnail']) ? FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemThumbnail']) ?? '' : '';
|
||||
|
||||
//Enclosures?
|
||||
if (isset($dotPaths['itemAttachment'])) {
|
||||
$jsonItemAttachments = FreshRSS_dotpath_Util::get($jsonItem, $dotPaths['itemAttachment']);
|
||||
if (isset($dotNotation['itemAttachment'])) {
|
||||
$jsonItemAttachments = FreshRSS_dotNotation_Util::get($jsonItem, $dotNotation['itemAttachment']);
|
||||
if (is_array($jsonItemAttachments) && count($jsonItemAttachments) > 0) {
|
||||
$rssItem['attachments'] = [];
|
||||
foreach ($jsonItemAttachments as $attachment) {
|
||||
$rssAttachment = [];
|
||||
$rssAttachment['url'] = isset($dotPaths['itemAttachmentUrl'])
|
||||
? FreshRSS_dotpath_Util::getString($attachment, $dotPaths['itemAttachmentUrl'])
|
||||
$rssAttachment['url'] = isset($dotNotation['itemAttachmentUrl'])
|
||||
? FreshRSS_dotNotation_Util::getString($attachment, $dotNotation['itemAttachmentUrl'])
|
||||
: '';
|
||||
$rssAttachment['type'] = isset($dotPaths['itemAttachmentType'])
|
||||
? FreshRSS_dotpath_Util::getString($attachment, $dotPaths['itemAttachmentType'])
|
||||
$rssAttachment['type'] = isset($dotNotation['itemAttachmentType'])
|
||||
? FreshRSS_dotNotation_Util::getString($attachment, $dotNotation['itemAttachmentType'])
|
||||
: '';
|
||||
$rssAttachment['length'] = isset($dotPaths['itemAttachmentLength'])
|
||||
? FreshRSS_dotpath_Util::get($attachment, $dotPaths['itemAttachmentLength'])
|
||||
$rssAttachment['length'] = isset($dotNotation['itemAttachmentLength'])
|
||||
? FreshRSS_dotNotation_Util::get($attachment, $dotNotation['itemAttachmentLength'])
|
||||
: '';
|
||||
$rssItem['attachments'][] = $rssAttachment;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($dotPaths['itemUid'])) {
|
||||
$rssItem['guid'] = FreshRSS_dotpath_Util::getString($jsonItem, $dotPaths['itemUid']);
|
||||
if (isset($dotNotation['itemUid'])) {
|
||||
$rssItem['guid'] = FreshRSS_dotNotation_Util::getString($jsonItem, $dotNotation['itemUid']);
|
||||
}
|
||||
|
||||
if (empty($rssItem['guid'])) {
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (pro pokročilé uživatele s HTTPS)',
|
||||
'none' => 'Žádný (nebezpečné)',
|
||||
'title' => 'Ověřování',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Hlavní ověřovací token',
|
||||
'token_help' => 'Umožňuje přístup ke všem výstupům RSS uživatele i obnovování kanálů bez ověřování:',
|
||||
'type' => 'Metoda ověřování',
|
||||
'unsafe_autologin' => 'Povolit nebezpečné automatické přihlášení pomocí formátu: ',
|
||||
),
|
||||
|
@ -160,8 +160,8 @@ return array(
|
|||
'_' => 'Nastavení systému',
|
||||
'auto-update-url' => 'Adresa URL serveru pro automatické aktualizace',
|
||||
'base-url' => array(
|
||||
'_' => 'Base URL', // TODO
|
||||
'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>', // TODO
|
||||
'_' => 'Základní adresa URL',
|
||||
'recommendation' => 'Automatické doporučení: <kbd>%s</kbd>',
|
||||
),
|
||||
'cookie-duration' => array(
|
||||
'help' => 'v sekundách',
|
||||
|
@ -187,33 +187,33 @@ return array(
|
|||
),
|
||||
'title' => 'Registrační formulář uživatele',
|
||||
),
|
||||
'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>', // TODO
|
||||
'sensitive-parameter' => 'Citlivý parametr. Upravte ručně v souboru <kbd>./data/config.php</kbd>',
|
||||
'tos' => array(
|
||||
'disabled' => 'is not given', // TODO
|
||||
'enabled' => '<a href="./?a=tos">is enabled</a>', // TODO
|
||||
'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>', // TODO
|
||||
'disabled' => 'není uveden',
|
||||
'enabled' => '<a href="./?a=tos">je povolen</a>',
|
||||
'help' => 'Jak povolit <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">podmínky poskytování služby</a>',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => 'O <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
'_' => 'Aktualizace systému',
|
||||
'apply' => 'Použít',
|
||||
'changelog' => 'Changelog', // TODO
|
||||
'changelog' => 'Seznam změn',
|
||||
'check' => 'Zkontrolovat aktualizace',
|
||||
'copiedFromURL' => 'update.php copied from %s to ./data', // TODO
|
||||
'copiedFromURL' => 'update.php zkopírováno z %s do ./data',
|
||||
'current_version' => 'Vaše aktuální verze',
|
||||
'last' => 'Poslední kontrola',
|
||||
'loading' => 'Updating…', // TODO
|
||||
'loading' => 'Aktualizuje se...',
|
||||
'none' => 'Žádné nové aktualizace',
|
||||
'releaseChannel' => array(
|
||||
'_' => 'Release channel', // TODO
|
||||
'edge' => 'Rolling release (“edge”)', // TODO
|
||||
'latest' => 'Stable release (“latest”)', // TODO
|
||||
'_' => 'Kanál pro vydání',
|
||||
'edge' => 'Vydání "Rolling" / Nepřetržitě aktualizované vydání (“edge”)',
|
||||
'latest' => 'Stabilní vydání (“latest”)',
|
||||
),
|
||||
'title' => 'Aktualizovat systém',
|
||||
'viaGit' => 'Update via git and Github.com started', // TODO
|
||||
'viaGit' => 'Aktualizace přes git a Github.com začala',
|
||||
),
|
||||
'user' => array(
|
||||
'admin' => 'Administrátor',
|
||||
|
|
|
@ -33,9 +33,9 @@ return array(
|
|||
'display' => array(
|
||||
'_' => 'Zobrazení',
|
||||
'darkMode' => array(
|
||||
'_' => 'Automatic dark mode (beta)', // TODO
|
||||
'auto' => 'Auto', // TODO
|
||||
'no' => 'No', // TODO
|
||||
'_' => 'Automatický tmavý režim (beta)',
|
||||
'auto' => 'Automatický',
|
||||
'no' => 'Ne',
|
||||
),
|
||||
'icon' => array(
|
||||
'bottom_line' => 'Spodní řádek',
|
||||
|
@ -56,8 +56,8 @@ return array(
|
|||
'theme' => array(
|
||||
'_' => 'Motiv',
|
||||
'deprecated' => array(
|
||||
'_' => 'Deprecated', // TODO
|
||||
'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>', // TODO
|
||||
'_' => 'Zastaralý',
|
||||
'description' => 'Tento motiv již není podporován a v <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">budoucí verzi FreshRSS</a> již nebude dostupný.',
|
||||
),
|
||||
),
|
||||
'theme_not_available' => 'Motiv „%s“ již není dostupný. Zvolte jiný motiv, prosím.',
|
||||
|
@ -68,14 +68,14 @@ return array(
|
|||
'portrait' => 'Na výšku',
|
||||
'square' => 'Čtverec',
|
||||
),
|
||||
'timezone' => 'Time zone', // TODO
|
||||
'timezone' => 'Časové pásmo',
|
||||
'title' => 'Zobrazení',
|
||||
'website' => array(
|
||||
'full' => 'Icon and name', // TODO
|
||||
'icon' => 'Icon only', // TODO
|
||||
'label' => 'Website', // TODO
|
||||
'name' => 'Name only', // TODO
|
||||
'none' => 'None', // TODO
|
||||
'full' => 'Ikona a název',
|
||||
'icon' => 'Pouze ikona',
|
||||
'label' => 'Webová stránka',
|
||||
'name' => 'Pouze název',
|
||||
'none' => 'Žádné',
|
||||
),
|
||||
'width' => array(
|
||||
'content' => 'Šířka obsahu',
|
||||
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'Zobrazit podle kanálu',
|
||||
'order' => 'Seřadit podle data',
|
||||
'search' => 'Výraz',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Povolit sdílení příslušných kategorií a kanálů pomocí OPML',
|
||||
'shareRss' => 'Povolit sdílení pomocí HTML & RSS',
|
||||
'state' => 'Stav',
|
||||
'tags' => 'Zobrazit podle štítku',
|
||||
'type' => 'Typ',
|
||||
),
|
||||
'get_all' => 'Zobrazit všechny články',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Zobrazit články s libovolným štítkem',
|
||||
'get_category' => 'Zobrazit kategorii „%s“',
|
||||
'get_favorite' => 'Zobrazit oblíbené články',
|
||||
'get_feed' => 'Zobrazit kanál „%s“',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Zobrazit články z důležitých kanálů',
|
||||
'get_label' => 'Zobrazit články se štítkem “%s”',
|
||||
'help' => 'Viz <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentace pro uživatelské dotazy a další sdílení pomocí HTML / RSS / OPML</a>.',
|
||||
'name' => 'Název',
|
||||
'no_filter' => 'Žádný filtr',
|
||||
'number' => 'Dotaz č. %d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => 'Zobrazit nejdříve nejnovější články',
|
||||
'search' => 'Hledat „%s“',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Sdílet tento dotaz pomocí odkazu',
|
||||
'help' => 'Pokud chcete tento dotaz s někým sdílet, uveďte tento odkaz.',
|
||||
'html' => 'Odkaz na stránku HTML, který lze sdílet',
|
||||
'opml' => 'Odkaz na seznam kanálů OPML, který lze sdílet',
|
||||
'rss' => 'Odkaz na kanál RSS, který lze sdílet',
|
||||
),
|
||||
'state_0' => 'Zobrazit všechny články',
|
||||
'state_1' => 'Zobrazit přečtené články',
|
||||
|
@ -217,9 +217,9 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => 'když je článek otevřen na své původní webové stránce',
|
||||
'article_viewed' => 'když je článek zobrazen',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => 'při zaměření (kromě důležitých kanálů)',
|
||||
'keep_max_n_unread' => 'Maximální počet článků, které ponechat jako nepřečtené',
|
||||
'scroll' => 'během posouvání (except for important feeds)', // DIRTY
|
||||
'scroll' => 'během posouvání (kromě důležitých kanálů)', // DIRTY
|
||||
'upon_gone' => 'když se již nenachází v upstreamu zpráv.',
|
||||
'upon_reception' => 'po obdržení článku',
|
||||
'when' => 'Označit článek jako přečtený…',
|
||||
|
|
|
@ -116,10 +116,10 @@ return array(
|
|||
),
|
||||
'tag' => array(
|
||||
'created' => 'Štítek „%s“ byl vytvořen.',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'error' => 'Štítek se nepodařilo aktualizovat!',
|
||||
'name_exists' => 'Název štítku již existuje.',
|
||||
'renamed' => 'Štítek „%s“ byl přejmenován na „%s“.',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => 'Štítek byl aktualizován.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'FreshRSS bude nyní aktualizováno na <strong>verzi %s</strong>.',
|
||||
|
|
|
@ -134,7 +134,7 @@ return array(
|
|||
'request_failed' => 'Požadavek selhal, to může být způsobeno problémy s připojení k internetu.',
|
||||
'title_new_articles' => 'FreshRSS: nové články!',
|
||||
),
|
||||
'labels_empty' => 'No labels', // TODO
|
||||
'labels_empty' => 'Žádné štítky',
|
||||
'new_article' => 'Jsou dostupné nové články, klikněte pro obnovení stránky.',
|
||||
'should_be_activated' => 'JavaScript musí být povolen',
|
||||
),
|
||||
|
@ -178,7 +178,7 @@ return array(
|
|||
'queries' => 'Uživatelské dotazy',
|
||||
'reading' => 'Čtení',
|
||||
'search' => 'Hledat slova nebo #štítky',
|
||||
'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>', // TODO
|
||||
'search_help' => 'Podívejte se na dokumentaci pro pokročilé parametry <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">parametry vyhledávání</a>',
|
||||
'sharing' => 'Sdílení',
|
||||
'shortcuts' => 'Zkratky',
|
||||
'stats' => 'Statistika',
|
||||
|
@ -203,7 +203,7 @@ return array(
|
|||
'clipboard' => 'Schránka',
|
||||
'diaspora' => 'Diaspora*', // IGNORE
|
||||
'email' => 'E-mail',
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO
|
||||
'email-webmail-firefox-fix' => 'E-mail (webmail - oprava pro Firefox)',
|
||||
'facebook' => 'Facebook', // IGNORE
|
||||
'gnusocial' => 'GNU social', // IGNORE
|
||||
'jdh' => 'Journal du hacker', // IGNORE
|
||||
|
|
|
@ -17,7 +17,7 @@ return array(
|
|||
'bugs_reports' => 'Hlášení chyb',
|
||||
'credits' => 'Poděkování',
|
||||
'credits_content' => 'Některé designové prvky pocházejí z <a href="http://twitter.github.io/bootstrap/">Bootstrap</a>, FreshRSS ale tuto platformu nevyužívá. <a href="https://gitlab.gnome.org/Archive/gnome-icon-theme-symbolic">Ikony</a> pocházejí z <a href="https://www.gnome.org/">projektu GNOME</a>. Písmo <em>Open Sans</em> vytvořil <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a>. FreshRSS je založeno na PHP framework <a href="https://framagit.org/marienfressinaud/MINZ">Minz</a>.',
|
||||
'documentation' => 'Documentation', // TODO
|
||||
'documentation' => 'Dokumentace',
|
||||
'freshrss_description' => 'FreshRSS je čtečka kanálů RSS určená k provozu na vlastním serveru. Je to nenáročný a jednoduchý, zároveň ale mocný a konfigurovatelný nástroj.',
|
||||
'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">na Github</a>',
|
||||
'license' => 'Licence',
|
||||
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => 'Uložit aktuální dotaz do záložek',
|
||||
'favorites' => 'Oblíbené (%s)',
|
||||
'global_view' => 'Zobrazení přehledu',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => 'Důležité kanály',
|
||||
'main_stream' => 'Hlavní kanál',
|
||||
'mark_all_read' => 'Označit vše jako přečtené',
|
||||
'mark_cat_read' => 'Označit kategorii jako přečtenou',
|
||||
|
|
|
@ -66,9 +66,14 @@ return array(
|
|||
'description' => 'Popis',
|
||||
'empty' => 'Tento kanál je prázdný. Ověřte prosím, zda je stále udržován.',
|
||||
'error' => 'Vyskytl se problém s kanálem. Ověřte prosím, že je vždy dostupný, pak ho aktualizujte.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Stáhnout',
|
||||
'help' => 'Soubor XML',
|
||||
'label' => 'Exportovat jako OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Akce filtrování',
|
||||
'help' => 'Zapište jeden filtr hledání na řádek. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
'help' => 'Zapište jeden filtr hledání na řádek. Operátoři <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">viz dokumentace</a>.',
|
||||
),
|
||||
'information' => 'Informace',
|
||||
'keep_min' => 'Minimální počet článků pro ponechání',
|
||||
|
@ -99,8 +104,8 @@ return array(
|
|||
'help' => 'Příklad: <code>descendant::img/@src</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Vlastní formát data a času',
|
||||
'help' => 'Volitelně. Formát podporovaný funkcí <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> jako např.: <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'datum položky',
|
||||
|
@ -121,47 +126,47 @@ return array(
|
|||
'relative' => 'XPath (vzhledem k položce) pro:',
|
||||
'xpath' => 'XPath pro:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON s tečkovým zápisem (dot notation)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'název kanálu',
|
||||
'help' => 'Příklad: <code>meta.title</code> nebo statický řetězec: <code>"Můj vlastní kanál"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'JSON s tečkovým zápisem používá tečky mezi objekty a závorky pro pole. (e.g. <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => 'vyhledávání nových <strong>položek</strong><br /><small>(nejdůležitější)</small>',
|
||||
'help' => 'JSON cesta k poli obsahujícímu položky, např.: <code>newsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'autor položky',
|
||||
'item_categories' => 'štítky položky',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => 'obsah položky',
|
||||
'help' => 'Klíč, pod kterým se obsah nachází, např.: <code>content</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'náhled položky',
|
||||
'help' => 'Příklad: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Vlastní formát data a času',
|
||||
'help' => 'Volitelně. Formát podporovaný funkcí <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> jako např.: <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => 'datum položky',
|
||||
'help' => 'Výsledek bude analyzován pomocí <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'název položky',
|
||||
'item_uid' => 'unikátní ID položky',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'odkaz na položku (adresa URL)',
|
||||
'help' => 'Příklad: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'tečkový zápis pro:',
|
||||
'relative' => 'cesta s tečkovým zápisem (relativní k položce) pro:',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'Zdroj JSON',
|
||||
'rss' => 'RSS / Atom (výchozí)',
|
||||
'xml_xpath' => 'XML + XPath', // TODO
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
'maintenance' => array(
|
||||
'clear_cache' => 'Vymazat mezipaměť',
|
||||
|
@ -173,10 +178,10 @@ return array(
|
|||
'max_http_redir' => 'Maximální počet přesměrování HTTP',
|
||||
'max_http_redir_help' => 'Nastavte na 0 nebo nechte prázdné pro zakázání, -1 pro neomezené přesměrování.',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'Metoda HTTP',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'Payload metody POST má automatickou podporu pro <code>application/x-www-form-urlencoded</code> a <code>application/json</code>',
|
||||
'method_postparams' => 'Payload pro metodu POST',
|
||||
'moved_category_deleted' => 'Když odstraníte kategorii, její kanály jsou automaticky přesunuty do <em>%s</em>.',
|
||||
'mute' => 'ztlumit',
|
||||
'no_selected' => 'Nejsou vybrány žádné kanály.',
|
||||
|
@ -185,11 +190,11 @@ return array(
|
|||
'_' => 'Viditelnost',
|
||||
'archived' => 'Nezobrazovat (archivováno)',
|
||||
'category' => 'Zobrazit v jeho kategorii',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => 'Zobrazit v důležitých kanálech',
|
||||
'main_stream' => 'Zobrazit ve hlavním kanálu',
|
||||
),
|
||||
'proxy' => 'Nastavete proxy pro načítání tohoto kanálu',
|
||||
'proxy_help' => 'Vyberte protokol (např.: SOCKS5) a zadejte adresu proxy (např.: <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)', // DIRTY
|
||||
'proxy_help' => 'Vyberte protokol (např.: SOCKS5) a zadejte adresu proxy (např.: <kbd>127.0.0.1:1080</kbd> nebo <kbd>username:password@127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Zobrazit zdrojový kód',
|
||||
'show_rendered' => 'Zobrazit obsah',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => 'Nástroje odběrů',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'Přidat tento štítek k novým článkům',
|
||||
'name' => 'Název',
|
||||
'new_name' => 'Nový název',
|
||||
'old_name' => 'Starý název',
|
||||
|
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (HTTPS für erfahrene Benutzer)',
|
||||
'none' => 'Keine (gefährlich)',
|
||||
'title' => 'Authentifizierung',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Master-Authentifizierungs-Token',
|
||||
'token_help' => 'Zugriff auf alle vom Nutzer erstellten RSS-Feeds freigeben (inkl. Aktualisierung ohne Authenthentifizierung):',
|
||||
'type' => 'Authentifizierungsmethode',
|
||||
'unsafe_autologin' => 'Erlaube unsicheres automatisches Anmelden mit folgendem Format: ',
|
||||
),
|
||||
|
@ -160,8 +160,8 @@ return array(
|
|||
'_' => 'Systemeinstellungen',
|
||||
'auto-update-url' => 'Auto-Update URL',
|
||||
'base-url' => array(
|
||||
'_' => 'Base URL', // TODO
|
||||
'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>', // TODO
|
||||
'_' => 'Base URL', // IGNORE
|
||||
'recommendation' => 'Automatische Empfehlung: <kbd>%s</kbd>',
|
||||
),
|
||||
'cookie-duration' => array(
|
||||
'help' => 'in Sekunden',
|
||||
|
@ -187,14 +187,14 @@ return array(
|
|||
),
|
||||
'title' => 'Benutzer-Registrierungsformular',
|
||||
),
|
||||
'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>', // TODO
|
||||
'sensitive-parameter' => 'Sensitive Einstellung. Manuell in <kbd>./data/config.php</kbd> anpassbar.',
|
||||
'tos' => array(
|
||||
'disabled' => 'sind nicht aktiviert',
|
||||
'enabled' => '<a href="./?a=tos">sind aktiv</a>',
|
||||
'help' => 'So werden die <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">Nutzungsbedingungen aktiviert</a>',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => 'Über <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
|
|
|
@ -106,7 +106,7 @@ return array(
|
|||
'warn' => 'Dieser Account und alle damit bezogenen Daten werden gelöscht.',
|
||||
),
|
||||
'email' => 'E-Mail-Adresse',
|
||||
'password_api' => 'Passwort-API<br /><small>(z.B. für mobile Anwendungen)</small>',
|
||||
'password_api' => 'API-Passwort<br /><small>(z.B. für mobile Anwendungen)</small>',
|
||||
'password_form' => 'Passwort<br /><small>(für die Anmeldemethode per Webformular)</small>',
|
||||
'password_format' => 'mindestens 7 Zeichen',
|
||||
'title' => 'Profil',
|
||||
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'Nach Feed filtern',
|
||||
'order' => 'Nach Datum sortieren',
|
||||
'search' => 'Suchbegriff',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Teilen via OPML mit zugehörigen Kategorien und Feeds aktivieren',
|
||||
'shareRss' => 'Teilen via HTML & RSS aktivieren',
|
||||
'state' => 'Eigenschaft',
|
||||
'tags' => 'Nach Labels filtern',
|
||||
'type' => 'Filter-Typ',
|
||||
),
|
||||
'get_all' => 'Alle Artikel anzeigen',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Alle Artikle mit beliebigem Label anzeigen',
|
||||
'get_category' => 'Kategorie „%s“ anzeigen',
|
||||
'get_favorite' => 'Lieblingsartikel anzeigen',
|
||||
'get_favorite' => 'Favoriten-Artikel anzeigen',
|
||||
'get_feed' => 'Feed „%s“ anzeigen',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Alle Artikel von den "Wichtige Feeds" anzeigen',
|
||||
'get_label' => 'Artikel mit dem Label “%s” anzeigen',
|
||||
'help' => 'Siehe die <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">Dokumentation für Benutzerabfragen und Teilen via HTML / RSS / OPML</a>.',
|
||||
'name' => 'Name', // IGNORE
|
||||
'no_filter' => 'Kein Filter',
|
||||
'number' => 'Abfrage Nr. %d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => 'Neueste Artikel zuerst anzeigen',
|
||||
'search' => 'Suche nach „%s“',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Diese Benutzerabfrage per Link teilen',
|
||||
'help' => 'Diesen Link verteilen, um in mit Jedem zu teilen',
|
||||
'html' => 'Verteilbarer Link zur HTML-Seite',
|
||||
'opml' => 'Verteilbarer Link zur OPML Liste der Feeds',
|
||||
'rss' => 'Verteilbarer Link zum RSS-Feed',
|
||||
),
|
||||
'state_0' => 'Alle Artikel anzeigen',
|
||||
'state_1' => 'Gelesene Artikel anzeigen',
|
||||
|
@ -217,9 +217,9 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => 'wenn der Artikel auf der Original-Webseite geöffnet wird',
|
||||
'article_viewed' => 'wenn der Artikel angesehen wird',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => 'wenn angewählt (außer für "Wichtige Feeds")',
|
||||
'keep_max_n_unread' => 'Max. Anzahl von ungelesenen Artikeln',
|
||||
'scroll' => 'beim Scrollen bzw. Überspringen (except for important feeds)', // DIRTY
|
||||
'scroll' => 'beim Scrollen bzw. Überspringen (außer für "Wichtige Feeds")',
|
||||
'upon_gone' => 'wenn der Artikel nicht mehr im Feed enthalten ist',
|
||||
'upon_reception' => 'beim Empfang des Artikels',
|
||||
'when' => 'Artikel als gelesen markieren…',
|
||||
|
|
|
@ -61,7 +61,7 @@ return array(
|
|||
'feeds_imported_with_errors' => 'Ihre Feeds sind importiert worden, aber es traten einige Fehler auf. Wenn Sie alle Dateien importiert haben, können Sie <i>Feeds aktualisieren</i> klicken.',
|
||||
'file_cannot_be_uploaded' => 'Die Datei kann nicht hochgeladen werden!',
|
||||
'no_zip_extension' => 'Die ZIP-Erweiterung ist auf Ihrem Server nicht vorhanden.',
|
||||
'zip_error' => 'Ein Fehler trat während des ZIP-Imports auf.', // DIRTY
|
||||
'zip_error' => 'Ein Fehler trat während des ZIP-Imports auf.',
|
||||
),
|
||||
'profile' => array(
|
||||
'error' => 'Ihr Profil kann nicht geändert werden',
|
||||
|
@ -115,11 +115,11 @@ return array(
|
|||
'purge_completed' => 'Bereinigung abgeschlossen (%d Artikel gelöscht)',
|
||||
),
|
||||
'tag' => array(
|
||||
'created' => 'Label „%s“ wurde erstellt.',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'created' => 'Das Label „%s“ wurde erstellt.',
|
||||
'error' => 'Das Label konnte nicht angepasst werden!',
|
||||
'name_exists' => 'Label-Name existiert bereits.',
|
||||
'renamed' => 'Das Label „%s“ wurde umbenannt in „%s“.',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => 'Das Label wurde angepasst.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'FreshRSS wird nun auf die <strong>Version %s</strong> aktualisiert.',
|
||||
|
|
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => 'Aktuelle Abfrage speichern',
|
||||
'favorites' => 'Favoriten (%s)',
|
||||
'global_view' => 'Globale Ansicht',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => 'Wichtige Feeds',
|
||||
'main_stream' => 'Haupt-Feeds',
|
||||
'mark_all_read' => 'Alle als gelesen markieren',
|
||||
'mark_cat_read' => 'Kategorie als gelesen markieren',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Beschreibung',
|
||||
'empty' => 'Dieser Feed ist leer. Bitte stellen Sie sicher, dass er noch gepflegt wird.',
|
||||
'error' => 'Dieser Feed ist auf ein Problem gestoßen. Bitte stellen Sie sicher, dass er immer lesbar ist und aktualisieren Sie ihn dann.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // IGNORE
|
||||
'help' => 'XML Datei',
|
||||
'label' => 'Export als OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filteraktionen',
|
||||
'help' => 'Ein Suchfilter pro Zeile. Operatoren <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">siehe Dokumentation</a>.',
|
||||
|
@ -121,45 +126,45 @@ return array(
|
|||
'relative' => 'XPath (relativ zum Artikel) für:',
|
||||
'xpath' => 'XPath für:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (Punktnotation)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'Feed Name',
|
||||
'help' => 'Beispiel: <code>meta.title</code> oder ein statischer String: <code>"Mein Feed"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'JSON punktnotiert nutzt Punkte zwischen den Objekten und eckige Klammern für Arrays (e.g. <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => 'News <strong>Items</strong> finden<br /><small>(sehr wichtig)</small>',
|
||||
'help' => 'JSON-Pfad zum Array, das die Items enthält, z.B. <code>newsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'Item Autor',
|
||||
'item_categories' => 'Item Hashtags',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => 'Item Inhalt',
|
||||
'help' => 'Schlüsslwort unter dem der Inhalt gefunden wird, z.B. <code>content</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'Item Vorschaubild',
|
||||
'help' => 'Beispiel: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Benutzerdefiniertes Datum/Zeit-Format',
|
||||
'help' => 'Optional. Format, das von <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> unterstützt wird, wie z.B. <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => 'Item Datum',
|
||||
'help' => 'Das Ergebnis wird von <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> geparst.',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'Item Titel',
|
||||
'item_uid' => 'Item einmalige ID',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'Item Link (URL)',
|
||||
'help' => 'Beispiel: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'Punktnotation für:',
|
||||
'relative' => 'Punktnotierter Pfad (relativ zum Item) für:',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'JSON Feed', // IGNORE
|
||||
'rss' => 'RSS / Atom (Standard)',
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
|
@ -173,10 +178,10 @@ return array(
|
|||
'max_http_redir' => 'Max HTTP Umleitungen',
|
||||
'max_http_redir_help' => '0 oder leeres Feld = deaktiviert; -1 für unendlich viele Umleitungen',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'HTTP Methode',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'Der POST-Payload unterstützt automatisch <code>application/x-www-form-urlencoded</code> und <code>application/json</code>',
|
||||
'method_postparams' => 'Payload für POST',
|
||||
'moved_category_deleted' => 'Wenn Sie eine Kategorie entfernen, werden deren Feeds automatisch in die Kategorie <em>%s</em> eingefügt.',
|
||||
'mute' => 'Stumm schalten',
|
||||
'no_selected' => 'Kein Feed ausgewählt.',
|
||||
|
@ -185,7 +190,7 @@ return array(
|
|||
'_' => 'Sichtbarkeit',
|
||||
'archived' => 'Nicht anzeigen (archiviert)',
|
||||
'category' => 'Zeige in eigener Kategorie',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => 'Zeige in "Wichtige Feeds"',
|
||||
'main_stream' => 'In Haupt-Feeds zeigen',
|
||||
),
|
||||
'proxy' => 'Verwende einen Proxy, um den Feed abzuholen',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => 'Abonnement-Tools',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'Dieses Label zu neuen Artikeln hinzufügen',
|
||||
'name' => 'Name', // IGNORE
|
||||
'new_name' => 'Neuer Name',
|
||||
'old_name' => 'Alter Name',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Description', // TODO
|
||||
'empty' => 'This feed is empty. Please verify that it is still maintained.', // TODO
|
||||
'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.', // TODO
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filter actions', // TODO
|
||||
'help' => 'Write one search filter per line. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // TODO
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relative to item) for:', // TODO
|
||||
'xpath' => 'XPath for:', // TODO
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (default)', // TODO
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Description', // IGNORE
|
||||
'empty' => 'This feed is empty. Please verify that it is still maintained.', // IGNORE
|
||||
'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.', // IGNORE
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // IGNORE
|
||||
'help' => 'XML file', // IGNORE
|
||||
'label' => 'Export as OPML', // IGNORE
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filter actions', // IGNORE
|
||||
'help' => 'Write one search filter per line. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // IGNORE
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relative to item) for:', // IGNORE
|
||||
'xpath' => 'XPath for:', // IGNORE
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // IGNORE
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // IGNORE
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // IGNORE
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // IGNORE
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // IGNORE
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // IGNORE
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // IGNORE
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // IGNORE
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // IGNORE
|
||||
'help' => 'Example: <code>permalink</code>', // IGNORE
|
||||
),
|
||||
'json' => 'Dotted Path for:', // IGNORE
|
||||
'relative' => 'Dotted Path (relative to item) for:', // IGNORE
|
||||
'json' => 'dot notation for:', // IGNORE
|
||||
'relative' => 'dot notated path (relative to item) for:', // IGNORE
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // IGNORE
|
||||
'rss' => 'RSS / Atom (default)', // IGNORE
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Description',
|
||||
'empty' => 'This feed is empty. Please verify that it is still maintained.',
|
||||
'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download',
|
||||
'help' => 'XML file',
|
||||
'label' => 'Export as OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filter actions',
|
||||
'help' => 'Write one search filter per line. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.',
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relative to item) for:',
|
||||
'xpath' => 'XPath for:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)',
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title',
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)',
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>',
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>',
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)',
|
||||
'help' => 'Example: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:',
|
||||
'relative' => 'Dotted Path (relative to item) for:',
|
||||
'json' => 'dot notation for:',
|
||||
'relative' => 'dot notated path (relative to item) for:',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed',
|
||||
'rss' => 'RSS / Atom (default)',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Descripción',
|
||||
'empty' => 'La fuente está vacía. Por favor, verifica que siga activa.',
|
||||
'error' => 'Hay un problema con esta fuente. Por favor, veritica que esté disponible y prueba de nuevo.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filtrar acciones',
|
||||
'help' => 'Escribir un filtro de búsqueda por línea. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relativo al elemento) para:',
|
||||
'xpath' => 'XPath para:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (por defecto)',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => ' توضیحات',
|
||||
'empty' => ' این فید خالی است. لطفاً بررسی کنید که هنوز نگهداری می شود.',
|
||||
'error' => ' این فید با مشکل مواجه شده است. لطفاً بررسی کنید که همیشه در دسترس است و سپس آن را به روز کنید.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => ' اعمال فیلتر',
|
||||
'help' => ' در هر خط یک فیلتر جستجو بنویسید. اپراتورها <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">مستندات را ببینید</a>.',
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (نسبت به مورد) برای:',
|
||||
'xpath' => ' XPath برای:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => ' RSS / Atom (پیشفرض)',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Description', // IGNORE
|
||||
'empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.',
|
||||
'error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Télécharger',
|
||||
'help' => 'Fichier XML',
|
||||
'label' => 'Exporter en OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filtres d’action',
|
||||
'help' => 'Écrivez une recherche par ligne. Voir la <a href="https://freshrss.github.io/FreshRSS/fr/users/03_Main_view.html#gr%C3%A2ce-au-champ-de-recherche" target="_blank">documentation des opérateurs</a>.',
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relatif à l’article) pour :',
|
||||
'xpath' => 'XPath pour :',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Chemin)',
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (notation point)',
|
||||
'feed_title' => array(
|
||||
'_' => 'titre de flux',
|
||||
'help' => 'Exemple : <code>meta.title</code> ou un texte statique : <code>"Mon flux personnalisé"</code>',
|
||||
),
|
||||
'help' => 'Un chemin JSON utilise le point comme séparateur objet, et des crochets pour un tableau : (ex : <code>data.items[0].title</code>)',
|
||||
'help' => 'La notation point pour JSON utilise le point comme séparateur objet, et des crochets pour un tableau : (ex : <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'trouver les <strong>articles</strong><br /><small>(c’est le plus important)</small>',
|
||||
'help' => 'Chemin vers le tableau contenant les articles, par exemple <code>newsItems</code>',
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'lien (URL) de l’article',
|
||||
'help' => 'Exemple : <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Chemin JSON pour :',
|
||||
'relative' => 'Chemin relatif à l’article pour :',
|
||||
'json' => 'notation point pour :',
|
||||
'relative' => 'notation point relative à l’article pour :',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // IGNORE
|
||||
'rss' => 'RSS / Atom (par défaut)',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'תיאור',
|
||||
'empty' => 'הזנה זו ריקה. אנא ודאו שהיא עדיין מתוחזקת.',
|
||||
'error' => 'הזנה זו נתקלה בשגיאה, אנא ודאו שהיא תקינה ואז נסו שנית.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filter actions', // TODO
|
||||
'help' => 'Write one search filter per line. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // TODO
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relative to item) for:', // TODO
|
||||
'xpath' => 'XPath for:', // TODO
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (default)', // TODO
|
||||
|
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (haladó felhasználóknak HTTPS-el)',
|
||||
'none' => 'nincs (veszélyes)',
|
||||
'title' => 'Hitelesítés',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Fő hitelesítési token',
|
||||
'token_help' => 'Lehetővé teszi a hozzáférést a felhasználó összes RSS-kimenetéhez, valamint a hírfolyamok frissítéséhez hitelesítés nélkül:',
|
||||
'type' => 'Hitelesítési módszer',
|
||||
'unsafe_autologin' => 'Engedélyezze a nem biztonságos automata bejelentkezést a következő formátummal: ',
|
||||
),
|
||||
|
|
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'Rendezés hírforrás szerint',
|
||||
'order' => 'Rendezés dátum szerint',
|
||||
'search' => 'Kifejezés',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Engedélyezze a megfelelő kategóriák és hírcsatornák OPML-alapú megosztását',
|
||||
'shareRss' => 'Engedélyezze a HTML & RSS megosztást',
|
||||
'state' => 'Státusz',
|
||||
'tags' => 'Rendezés címke szerint',
|
||||
'type' => 'Típus',
|
||||
),
|
||||
'get_all' => 'Minden cikk megjelenítése',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Cikkek megjelenítése bármilyen címkével',
|
||||
'get_category' => 'Listáz “%s” kategóriát',
|
||||
'get_favorite' => 'Kedvenc cikkek megjelenítése',
|
||||
'get_feed' => 'Listáz “%s” hírforrást',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Cikkek megjelenítése fontos hírforrásokból',
|
||||
'get_label' => ' “%s” címkével rendelkező cikkek megjelenítése',
|
||||
'help' => 'Lásd a <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank"> dokumentációt a felhasználói lekérdezések és HTML/RSS/OPML megosztás témákban</a>.',
|
||||
'name' => 'Név',
|
||||
'no_filter' => 'Nincs szűrés',
|
||||
'number' => 'Lekérdezés %d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => 'Újabb cikkek előre',
|
||||
'search' => 'Keresse a “%s”',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Lekérdezés megosztása linkkel',
|
||||
'help' => 'Ezt a linket küldd el hogy megoszd a lekérdezést',
|
||||
'html' => 'Megosztható link a HTML oldalhoz',
|
||||
'opml' => 'Megosztható link az OPML hírforrás listához',
|
||||
'rss' => 'Megosztható link az RSS hírforráshoz',
|
||||
),
|
||||
'state_0' => 'Minden cikk',
|
||||
'state_1' => 'Olvasott cikkek',
|
||||
|
|
|
@ -116,10 +116,10 @@ return array(
|
|||
),
|
||||
'tag' => array(
|
||||
'created' => 'Címke “%s” létrehozva.',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'error' => 'Nem sikerült a címke frissítése!',
|
||||
'name_exists' => 'Címke név már létezik.',
|
||||
'renamed' => 'Címke “%s” átnevezve “%s”.',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => 'Címke frissítése megtörtént.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'Egy FreshRSS frissítés elérhető : <strong>Verzió %s</strong>.',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Leírás',
|
||||
'empty' => 'Ez a hírforrás üres. Ellenőrizd hogy van e tartalom rajta.',
|
||||
'error' => 'Ez a hírforrás nem működik. Ellenőrizd az elérhetőségét és frissítsd.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Letöltés',
|
||||
'help' => 'XML fájl',
|
||||
'label' => 'Exportálás OPML formátumban',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Szűrő műveletek',
|
||||
'help' => 'Írj egy szűrőt soronként. Műveletek <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">a dokumentációban</a>.',
|
||||
|
@ -108,7 +113,7 @@ return array(
|
|||
),
|
||||
'item_title' => array(
|
||||
'_' => 'elem cím',
|
||||
'help' => 'Használja az <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath axis</a> <code>descendant::</code> mint <code>descendant::h2</code>',
|
||||
'help' => 'Használja az <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath Axes</a> <code>descendant::</code> mint <code>descendant::h2</code>',
|
||||
),
|
||||
'item_uid' => array(
|
||||
'_' => 'elem egyedi ID',
|
||||
|
@ -121,45 +126,45 @@ return array(
|
|||
'relative' => 'XPath (az elemhez viszonyítva) ehhez:',
|
||||
'xpath' => 'XPath ehhez:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (pont jelölés)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'hírforrás címe',
|
||||
'help' => 'Például: <code>meta.title</code> vagy egy statikus sztring: <code>"Az egyedi hírforrásom"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON pontjelölés pontokat használ az objektumok között és zárójeleket a tömbökhöz (pl. <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => 'hírek keresése <strong>elemek</strong><br /><small>(legfontosabb)</small>',
|
||||
'help' => 'JSON útvonal az elemeket tartalmazó tömbhöz, pl. <code>newsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'elem szerző',
|
||||
'item_categories' => 'elem címkék',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => 'elem tartalom',
|
||||
'help' => 'Kulcs ami alatt a tartalom megtalálható, például <code>tartalom</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'elem előnézeti kép',
|
||||
'help' => 'Például: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Egyedi dátum/idő formátum',
|
||||
'help' => 'Opcionális. Egy a <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> funkció által támogatott formátum, például: <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => 'elem dátum',
|
||||
'help' => 'Az eredményt az <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> php függvény fogja értelmezni',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'elem címe',
|
||||
'item_uid' => 'elem egyedi azonosító ID',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'elem link (URL)',
|
||||
'help' => 'Például: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'pontjelölés ehhez:',
|
||||
'relative' => 'pont jelölt útvonal (relatív az elemhez):',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'JSON Hírforrás',
|
||||
'rss' => 'RSS / Atom (alapértelmezett)',
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
|
@ -173,10 +178,10 @@ return array(
|
|||
'max_http_redir' => 'Max HTTP átirányítás',
|
||||
'max_http_redir_help' => '0 vagy üresen hagyva kikapcsolt, -1 a végtelen átirányításhoz',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'HTTP Módszer',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'A POST metódus hasznos adattartalma automatikusan támogatja az <code>application/x-www-form-urlencoded</code> és <code>application/json</code>',
|
||||
'method_postparams' => 'POST metódus adattartalma',
|
||||
'moved_category_deleted' => 'Ha kitörölsz egy kategóriát, az alá tartozó hírforrások automatikusan ide kerülnek <em>%s</em>.',
|
||||
'mute' => 'némítás',
|
||||
'no_selected' => 'Nincsen hírforrás kiválasztva.',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => 'Hírforrás eszközök',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'Adja hozzá automatikusan ezt a címkét az új cikkekhez',
|
||||
'name' => 'Név',
|
||||
'new_name' => 'Új név',
|
||||
'old_name' => 'Régi név',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Description', // TODO
|
||||
'empty' => 'This feed is empty. Please verify that it is still maintained.', // TODO
|
||||
'error' => 'This feed has encountered a problem. Please verify that it is always reachable then update it.', // TODO
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filter actions', // TODO
|
||||
'help' => 'Write one search filter per line. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // TODO
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relative to item) for:', // TODO
|
||||
'xpath' => 'XPath for:', // TODO
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (default)', // TODO
|
||||
|
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (per gli utenti avanzati con HTTPS)',
|
||||
'none' => 'Nessuno (pericoloso)',
|
||||
'title' => 'Autenticazione',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Token di autenticazione principale',
|
||||
'token_help' => 'Consente l’accesso a tutti gli output RSS dell’utente e di aggiornare i feed senza autenticazione:',
|
||||
'type' => 'Metodo di autenticazione',
|
||||
'unsafe_autologin' => 'Consenti accesso automatico non sicuro usando il formato: ',
|
||||
),
|
||||
|
|
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'Mostra per feed',
|
||||
'order' => 'Ordina per data',
|
||||
'search' => 'Espressione',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Abilita la condivisione di OPML di categorie e feed corrispondenti',
|
||||
'shareRss' => 'Abilita la condivisione di HTML & RSS',
|
||||
'state' => 'Stato',
|
||||
'tags' => 'Mostra per tag', // DIRTY
|
||||
'tags' => 'Tag',
|
||||
'type' => 'Tipo',
|
||||
),
|
||||
'get_all' => 'Mostra tutti gli articoli',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Mostra gli articoli con qualsiasi etichetta',
|
||||
'get_category' => 'Mostra la categoria “%s” ',
|
||||
'get_favorite' => 'Mostra articoli preferiti',
|
||||
'get_feed' => 'Mostra feed “%s” ',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Mostra articoli dai feed importanti',
|
||||
'get_label' => 'Mostra articoli con l’etichetta “%s”',
|
||||
'help' => 'Vedi la <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentazione per le query utente e ricondivisioine tramite HTML / RSS / OPML</a>.',
|
||||
'name' => 'Nome',
|
||||
'no_filter' => 'Nessun filtro',
|
||||
'number' => 'Ricerca n°%d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => 'Mostra prima gli articoli più nuovi',
|
||||
'search' => 'Cerca per “%s”',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Condividi questa query tramite un link',
|
||||
'help' => 'Fornisci questo link se vuoi condividere questa query con altre persone',
|
||||
'html' => 'Link condivisibile alla pagina HTML',
|
||||
'opml' => 'Link condivisibile alla lista OPML dei feed',
|
||||
'rss' => 'Link condivisibile al feed RSS',
|
||||
),
|
||||
'state_0' => 'Mostra tutti gli articoli',
|
||||
'state_1' => 'Mostra gli articoli letti',
|
||||
|
@ -209,7 +209,7 @@ return array(
|
|||
'misc' => 'Varie',
|
||||
'view' => 'Vista',
|
||||
),
|
||||
'hide_read_feeds' => 'Nascondi categorie e feeds con articoli già letti (non funziona se “Mostra tutti gli articoli” è selezionato)',
|
||||
'hide_read_feeds' => 'Nascondi categorie e feed con articoli già letti (non funziona se “Mostra tutti gli articoli” è selezionato)',
|
||||
'img_with_lazyload' => 'Usa la modalità “caricamento ritardato” per le immagini',
|
||||
'jump_next' => 'Salta al successivo feed o categoria non letto',
|
||||
'mark_updated_article_unread' => 'Segna articoli aggiornati come non letti',
|
||||
|
@ -287,7 +287,7 @@ return array(
|
|||
'mark_favorite' => 'Segna come preferito',
|
||||
'mark_read' => 'Segna come letto',
|
||||
'navigation' => 'Navigazione',
|
||||
'navigation_help' => 'Con il tasto <kbd>⇧ Shift</kbd> i comandi di navigazione verranno applicati ai feeds.<br/>Con il tasto <kbd>Alt ⎇</kbd> i comandi di navigazione verranno applicati alle categorie.',
|
||||
'navigation_help' => 'Con il tasto <kbd>⇧ Shift</kbd> i comandi di navigazione verranno applicati ai feed.<br/>Con il tasto <kbd>Alt ⎇</kbd> i comandi di navigazione verranno applicati alle categorie.',
|
||||
'navigation_no_mod_help' => 'Le seguenti scorciatoie di navigazione non supportano i modificatori.',
|
||||
'next_article' => 'Salta al contenuto successivo',
|
||||
'next_unread_article' => 'Apri il prossimo articolo non letto',
|
||||
|
|
|
@ -57,11 +57,11 @@ return array(
|
|||
),
|
||||
'import_export' => array(
|
||||
'export_no_zip_extension' => 'Estensione ZIP non presente sul server. Per favore esporta i files singolarmente.',
|
||||
'feeds_imported' => 'I tuoi feed sono stati importati e saranno aggiornati / Your feeds have been imported. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'feeds_imported_with_errors' => 'I tuoi feeds sono stati importati ma si sono verificati alcuni errori / Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'feeds_imported' => 'I tuoi feed sono stati importati e saranno aggiornati. Se hai completato l’importazione, puoi cliccare sul pulsante <i>Aggiorna feed</i>.',
|
||||
'feeds_imported_with_errors' => 'I tuoi feed sono stati importati ma si sono verificati alcuni errori. Se hai completato l’importazione, puoi cliccare sul pulsante <i>Aggiorna feed</i>.',
|
||||
'file_cannot_be_uploaded' => 'Il file non può essere caricato!',
|
||||
'no_zip_extension' => 'Estensione ZIP non presente sul server.',
|
||||
'zip_error' => 'Si è verificato un errore importando il file ZIP', // DIRTY
|
||||
'zip_error' => 'Si è verificato un errore importando il file ZIP',
|
||||
),
|
||||
'profile' => array(
|
||||
'error' => 'Il tuo profilo non può essere modificato',
|
||||
|
@ -88,7 +88,7 @@ return array(
|
|||
),
|
||||
'feed' => array(
|
||||
'actualized' => '<em>%s</em> aggiornato',
|
||||
'actualizeds' => 'RSS feeds aggiornati',
|
||||
'actualizeds' => 'Feed RSS aggiornati',
|
||||
'added' => 'RSS feed <em>%s</em> aggiunti',
|
||||
'already_subscribed' => 'Hai già sottoscritto <em>%s</em>',
|
||||
'cache_cleared' => 'La cache di <em>%s</em> è stata svuotata',
|
||||
|
@ -96,7 +96,7 @@ return array(
|
|||
'error' => 'Feed non aggiornato',
|
||||
'internal_problem' => 'Feed RSS non aggiunto. <a href="%s">Verifica i log</a> per dettagli. Puoi provare l’aggiunta forzata aggiungendo <code>#force_feed</code> all’URL.',
|
||||
'invalid_url' => 'URL <em>%s</em> non valido',
|
||||
'n_actualized' => '%d feeds aggiornati',
|
||||
'n_actualized' => '%d feed aggiornati',
|
||||
'n_entries_deleted' => '%d articoli cancellati',
|
||||
'no_refresh' => 'Nessun aggiornamento disponibile…',
|
||||
'not_added' => '<em>%s</em> non può essere aggiunto',
|
||||
|
|
|
@ -43,7 +43,7 @@ return array(
|
|||
'archiving' => 'Archiviazione',
|
||||
'auth' => array(
|
||||
'configuration' => 'Autenticazione',
|
||||
'help' => 'Accesso per feeds protetti',
|
||||
'help' => 'Accesso per feed protetti',
|
||||
'http' => 'Autenticazione HTTP',
|
||||
'password' => 'Password HTTP',
|
||||
'username' => 'Nome utente HTTP',
|
||||
|
@ -57,7 +57,7 @@ return array(
|
|||
),
|
||||
'css_cookie' => 'Usa i cookie quando viene recuperato il contenuto di un articolo',
|
||||
'css_cookie_help' => 'Esempio: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
|
||||
'css_help' => 'In caso di RSS feeds troncati (attenzione, richiede molto tempo!)',
|
||||
'css_help' => 'In caso di feed RSS troncati (attenzione, richiede molto tempo!)',
|
||||
'css_path' => 'Percorso del foglio di stile CSS del sito di origine',
|
||||
'css_path_filter' => array(
|
||||
'_' => 'Il selettore CSS degli elementi da rimuovere',
|
||||
|
@ -66,9 +66,14 @@ return array(
|
|||
'description' => 'Descrizione',
|
||||
'empty' => 'Questo feed non contiene articoli. Per favore verifica il sito direttamente.',
|
||||
'error' => 'Questo feed ha generato un errore. Per favore verifica se ancora disponibile.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Scarica',
|
||||
'help' => 'File XML',
|
||||
'label' => 'Esporta come OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Azioni di filtro',
|
||||
'help' => 'Scrivi un filtro di ricerca per riga. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
'help' => 'Scrivi un filtro di ricerca per riga. Per li operatori <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">vedi la documentazione</a>.',
|
||||
),
|
||||
'information' => 'Informazioni',
|
||||
'keep_min' => 'Numero minimo di articoli da mantenere',
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relativo all’oggetto) per:',
|
||||
'xpath' => 'XPath per:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (path con i punti)',
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'titolo feed',
|
||||
'help' => 'Esempio: <code>meta.title</code> o una stringa statica: <code>"Il mio feed personalizzato"</code>',
|
||||
),
|
||||
'help' => 'Un JSON con le path divise da punti usa dei punti fra gli oggetti e le parentesi per gli array. (es. <code>data.items[0].title</code>)',
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'ricerca nuovi <strong>elementi</strong><br /><small>(più importante)</small>',
|
||||
'help' => 'percorso JSON per l’array contenente gli elementi, es. <code>newsItems</code>',
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'link elemento (URL)',
|
||||
'help' => 'Esempio: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Percorso con i punti per:',
|
||||
'relative' => 'Percorso con i punti (relativo all’elemento) per:',
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'Feed JSON',
|
||||
'rss' => 'RSS / Atom (predefinito)',
|
||||
|
@ -189,7 +194,7 @@ return array(
|
|||
'main_stream' => 'Mostra in homepage',
|
||||
),
|
||||
'proxy' => 'Imposta un proxy per recuperare questo feed',
|
||||
'proxy_help' => 'Seleziona un protocollo (e.g: SOCKS5) ed inserisci l’indirizzo del proxy (e.g: <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)', // DIRTY
|
||||
'proxy_help' => 'Seleziona un protocollo (e.g: SOCKS5) ed inserisci l’indirizzo del proxy (es.: <kbd>127.0.0.1:1080</kbd> o <kbd>username:password@127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Mostra codice sorgente',
|
||||
'show_rendered' => 'Mostra contenuto',
|
||||
|
@ -232,7 +237,7 @@ return array(
|
|||
'import_export' => 'Importa / esporta',
|
||||
'label_management' => 'Gestione etichette',
|
||||
'stats' => array(
|
||||
'idle' => 'Feeds non aggiornati',
|
||||
'idle' => 'Feed non aggiornati',
|
||||
'main' => 'Statistiche principali',
|
||||
'repartition' => 'Ripartizione articoli',
|
||||
),
|
||||
|
@ -253,7 +258,7 @@ return array(
|
|||
'add_feed' => 'Aggiungi un feed',
|
||||
'add_label' => 'Aggiungi un’etichetta',
|
||||
'delete_label' => 'Cancella un’etichetta',
|
||||
'feed_management' => 'Gestione RSS feeds',
|
||||
'feed_management' => 'Gestione feed RSS',
|
||||
'rename_label' => 'Rinomina un’etichetta',
|
||||
'subscription_tools' => 'Strumenti di sottoscrizione',
|
||||
),
|
||||
|
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (上級者はHTTPSでも)',
|
||||
'none' => 'なし (危険)',
|
||||
'title' => '認証',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'マスター認証用のトークン',
|
||||
'token_help' => 'ユーザーのすべての RSS 出力へのアクセスと、認証なしのフィードの更新を許可します',
|
||||
'type' => '認証メソッド',
|
||||
'unsafe_autologin' => '危険な自動ログインを有効にします',
|
||||
),
|
||||
|
@ -160,8 +160,8 @@ return array(
|
|||
'_' => 'システム設定',
|
||||
'auto-update-url' => '自動アップグレードするサーバーのURL',
|
||||
'base-url' => array(
|
||||
'_' => 'Base URL', // TODO
|
||||
'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>', // TODO
|
||||
'_' => 'ベースURL',
|
||||
'recommendation' => '自動的に推薦: <kbd>%s</kbd>',
|
||||
),
|
||||
'cookie-duration' => array(
|
||||
'help' => '秒',
|
||||
|
@ -187,33 +187,33 @@ return array(
|
|||
),
|
||||
'title' => 'ユーザー登録',
|
||||
),
|
||||
'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>', // TODO
|
||||
'sensitive-parameter' => 'センシティブなパラメーターです。<kbd>./data/config.php</kbd> を手動で編集',
|
||||
'tos' => array(
|
||||
'disabled' => 'is not given', // TODO
|
||||
'enabled' => '<a href="./?a=tos">is enabled</a>', // TODO
|
||||
'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>', // TODO
|
||||
'disabled' => '無効化',
|
||||
'enabled' => '<a href="./?a=tos">有効化</a>',
|
||||
'help' => '<a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">利用規約を有効にする方法</a>',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => '<a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSubについて</a>',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
'_' => 'システムアップデート',
|
||||
'apply' => '適用',
|
||||
'changelog' => 'Changelog', // TODO
|
||||
'changelog' => '変更履歴',
|
||||
'check' => 'アップデートを確認する',
|
||||
'copiedFromURL' => 'update.php copied from %s to ./data', // TODO
|
||||
'copiedFromURL' => 'update.php が %s から ./data にコピーされました。',
|
||||
'current_version' => '現在のバージョンは',
|
||||
'last' => '最近の検証',
|
||||
'loading' => 'Updating…', // TODO
|
||||
'loading' => '更新中…',
|
||||
'none' => '更新を適用できません',
|
||||
'releaseChannel' => array(
|
||||
'_' => 'Release channel', // TODO
|
||||
'edge' => 'Rolling release (“edge”)', // TODO
|
||||
'latest' => 'Stable release (“latest”)', // TODO
|
||||
'_' => 'リリースチャンネル',
|
||||
'edge' => 'ローリングリリース (“edge”)',
|
||||
'latest' => '安定版リリース (“latest”)',
|
||||
),
|
||||
'title' => 'アップデートシステム',
|
||||
'viaGit' => 'Update via git and Github.com started', // TODO
|
||||
'viaGit' => 'gitとGithub.comによるアップデートを開始',
|
||||
),
|
||||
'user' => array(
|
||||
'admin' => '管理者',
|
||||
|
|
|
@ -33,9 +33,9 @@ return array(
|
|||
'display' => array(
|
||||
'_' => '表示',
|
||||
'darkMode' => array(
|
||||
'_' => 'Automatic dark mode (beta)', // TODO
|
||||
'auto' => 'Auto', // TODO
|
||||
'no' => 'No', // TODO
|
||||
'_' => '自動ダークモード (beta)',
|
||||
'auto' => '自動',
|
||||
'no' => '無効',
|
||||
),
|
||||
'icon' => array(
|
||||
'bottom_line' => '行の下部',
|
||||
|
@ -56,8 +56,8 @@ return array(
|
|||
'theme' => array(
|
||||
'_' => 'テーマ',
|
||||
'deprecated' => array(
|
||||
'_' => 'Deprecated', // TODO
|
||||
'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>', // TODO
|
||||
'_' => '非推奨',
|
||||
'description' => 'このテーマのサポートは終了しており、<a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">FreshRSS の将来のリリース</a>では利用できなくなります。',
|
||||
),
|
||||
),
|
||||
'theme_not_available' => '“%s”テーマはご利用いただけません。他のテーマをお選びください。',
|
||||
|
@ -68,14 +68,14 @@ return array(
|
|||
'portrait' => 'ポートレート',
|
||||
'square' => '四角',
|
||||
),
|
||||
'timezone' => 'Time zone', // TODO
|
||||
'timezone' => 'タイムゾーン',
|
||||
'title' => 'ディスプレイ',
|
||||
'website' => array(
|
||||
'full' => 'Icon and name', // TODO
|
||||
'icon' => 'Icon only', // TODO
|
||||
'label' => 'Website', // TODO
|
||||
'name' => 'Name only', // TODO
|
||||
'none' => 'None', // TODO
|
||||
'full' => 'アイコンと名前',
|
||||
'icon' => 'アイコンのみ',
|
||||
'label' => 'ウェブサイト',
|
||||
'name' => '名前のみ',
|
||||
'none' => '無し',
|
||||
),
|
||||
'width' => array(
|
||||
'content' => 'コンテンツ幅',
|
||||
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'フィードごとに表示する',
|
||||
'order' => '日付ごとにソートする',
|
||||
'search' => '式',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => '対応するカテゴリーとフィードのOPMLによる共有が可能',
|
||||
'shareRss' => 'HTMLとRSSによる共有を有効にする',
|
||||
'state' => '状態',
|
||||
'tags' => 'タグごとに表示する',
|
||||
'type' => 'タイプ',
|
||||
),
|
||||
'get_all' => 'すべての著者を表示する',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => '任意のラベルで記事を表示する',
|
||||
'get_category' => '“%s”カテゴリを表示する',
|
||||
'get_favorite' => 'お気に入りの著者を表示する',
|
||||
'get_feed' => '“%s”フィードを表示する',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => '重要なフィードからの記事を表示する',
|
||||
'get_label' => '“%s”ラベルの記事を表示する',
|
||||
'help' => 'HTML/RSS/OPMLによるユーザー照会と再共有については <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">こちら</a>をご覧ください',
|
||||
'name' => '名前',
|
||||
'no_filter' => 'フィルターはありません',
|
||||
'number' => 'クエリ n°%d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => '新しい著者を最初に表示する',
|
||||
'search' => '“%s”で検索する',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'このクエリをリンクで共有する',
|
||||
'help' => 'このクエリを誰かと共有したい場合は、このリンクを貼ってください',
|
||||
'html' => 'HTMLページへの共有可能なリンク',
|
||||
'opml' => 'フィードのOPMLリストへの共有可能なリンク',
|
||||
'rss' => 'RSSフィードへの共有可能なリンク',
|
||||
),
|
||||
'state_0' => 'すべての記事を表示する',
|
||||
'state_1' => '既読の記事を表示する',
|
||||
|
@ -217,7 +217,7 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => '記事を元のwebサイトで開いたとき',
|
||||
'article_viewed' => '記事を読んだとき',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => 'フォーカス時(重要なフィードを除く)',
|
||||
'keep_max_n_unread' => '未読の記事として残す最大数',
|
||||
'scroll' => 'スクロールしているとき (except for important feeds)', // DIRTY
|
||||
'upon_gone' => 'ニュースフィードの提供元がなくなったとき',
|
||||
|
|
|
@ -116,10 +116,10 @@ return array(
|
|||
),
|
||||
'tag' => array(
|
||||
'created' => '“%s” タグが作成されました',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'error' => 'ラベルを更新できませんでした',
|
||||
'name_exists' => 'このタグ名は既に存在します',
|
||||
'renamed' => '“%s”タグは“%s”に改名されました',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => 'ラベルが更新されました',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'FreshRSSは<strong>バージョン %s</strong>に更新されます。',
|
||||
|
|
|
@ -134,7 +134,7 @@ return array(
|
|||
'request_failed' => 'おそらくインターネット接続に問題があるため、リクエストは失敗しました。',
|
||||
'title_new_articles' => 'FreshRSS: 新規記事!',
|
||||
),
|
||||
'labels_empty' => 'No labels', // TODO
|
||||
'labels_empty' => 'ラベルがありません',
|
||||
'new_article' => '新しい記事があるのでクリックしてページをリフレッシュしてください。',
|
||||
'should_be_activated' => 'JavaScriptは有効になっている必要があります。',
|
||||
),
|
||||
|
@ -178,7 +178,7 @@ return array(
|
|||
'queries' => 'ユーザークエリ',
|
||||
'reading' => 'リーディング',
|
||||
'search' => '単語で検索するかハッシュタグで検索する',
|
||||
'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>', // TODO
|
||||
'search_help' => '高度な検索パラメータについては <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">こちら</a>を参照してください',
|
||||
'sharing' => '共有',
|
||||
'shortcuts' => 'ショートカット',
|
||||
'stats' => '統計',
|
||||
|
@ -203,7 +203,7 @@ return array(
|
|||
'clipboard' => 'クリップボード',
|
||||
'diaspora' => 'Diaspora*', // IGNORE
|
||||
'email' => 'Eメール',
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO
|
||||
'email-webmail-firefox-fix' => 'Eメール(Firefox用に修正)',
|
||||
'facebook' => 'Facebook', // IGNORE
|
||||
'gnusocial' => 'GNU social', // IGNORE
|
||||
'jdh' => 'Journal du hacker', // IGNORE
|
||||
|
|
|
@ -17,7 +17,7 @@ return array(
|
|||
'bugs_reports' => 'バグレポート',
|
||||
'credits' => 'クレジット',
|
||||
'credits_content' => 'いくつかのデザイン要素は <a href="http://twitter.github.io/bootstrap/">Bootstrap</a>から来ています。しかしFreshRSSはこのフレームワークを使用していません。 <a href="https://gitlab.gnome.org/Archive/gnome-icon-theme-symbolic">アイコン</a> は <a href="https://www.gnome.org/">GNOME プロジェクトから作られています</a>。 <em>Open Sans</em> フォントは <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson によって作成されました</a>。 FreshRSS は<a href="https://framagit.org/marienfressinaud/MINZ">Minz</a>,PHP フレームワークをもとにしています。',
|
||||
'documentation' => 'Documentation', // TODO
|
||||
'documentation' => '文書',
|
||||
'freshrss_description' => 'FreshRSSは なセルフホストできるRSSフィード収集ツールです。強力なツールになっており、軽量で簡単に使え、豊富な設定が特徴です。',
|
||||
'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">Githubへお願いします</a>',
|
||||
'license' => 'ライセンス',
|
||||
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => '現在のブックマーククエリ',
|
||||
'favorites' => 'お気に入り (%s)',
|
||||
'global_view' => 'グローバルビュー',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => '重要なフィード',
|
||||
'main_stream' => 'メイン',
|
||||
'mark_all_read' => 'すべての記事に既読をつける',
|
||||
'mark_cat_read' => 'カテゴリーに既読をつける',
|
||||
|
|
|
@ -57,15 +57,20 @@ return array(
|
|||
),
|
||||
'css_cookie' => '記事のコンテンツを読み出したとき、クッキーを使用する',
|
||||
'css_cookie_help' => '例: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
|
||||
'css_help' => '失敗したRSSフィードを再取得します (ただし、多くの時間が必要になります!)',
|
||||
'css_path' => '元のwebサイトのCSS',
|
||||
'css_help' => '省略されたRSSフィードを復元します (ただし、時間がかかります)',
|
||||
'css_path' => '元のWebサイトから記事を抽出するCSSセレクタ',
|
||||
'css_path_filter' => array(
|
||||
'_' => '削除される要素をCSSで選ぶ',
|
||||
'help' => 'CSSセレクタは: <kbd> フッターやアサイド要素をリストにできます</kbd>',
|
||||
'_' => '要素を削除するCSSセレクタ',
|
||||
'help' => 'CSSセレクタは次のようなリストです: <kbd>.footer, .aside</kbd>',
|
||||
),
|
||||
'description' => '説明',
|
||||
'empty' => 'このフィードは空です。サイトが運営されているかどうかを確認してみてください。',
|
||||
'error' => 'このフィードに問題が発生しました。ここでアクセスできるかどうかを確認して更新してみてください。',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'ダウンロード',
|
||||
'help' => 'XMLファイル',
|
||||
'label' => 'OPMLとしてエクスポート',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'フィルターアクション',
|
||||
'help' => '1行に1つの検索フィルターを設定してください Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -99,8 +104,8 @@ return array(
|
|||
'help' => '例: <code>descendant::img/@src</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'カスタム日時フォーマット',
|
||||
'help' => 'オプションです。<a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>でサポートされている、<code>d-m-Y H:i:s</code>のように使います',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => '項目の日付',
|
||||
|
@ -121,47 +126,47 @@ return array(
|
|||
'relative' => 'XPath (関連する項目):',
|
||||
'xpath' => 'XPathは:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON(ドット記法)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'フィード名',
|
||||
'help' => '例: <code>meta.title</code> または静的文字列: <code>"My custom feed"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'JSONのドット表記は、オブジェクトの間にドットを使用し、配列には括弧を使用します。例: <code>data.items[0].title</code>',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => '<strong>ニュース</strong>を探す<br /><small>(最重要)</small>',
|
||||
'help' => '項目を含む配列へのJSONパス。 例: <code>newsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'アイテム作成者',
|
||||
'item_categories' => 'アイテムタグ',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => '項目内容',
|
||||
'help' => 'コンテンツが存在するキー。例: <code>content</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'アイテムのサムネイル',
|
||||
'help' => '例: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'カスタム日時フォーマット',
|
||||
'help' => 'オプションです。<a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>でサポートされている、<code>d-m-Y H:i:s</code>のように使います',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => 'アイテム日付',
|
||||
'help' => '結果は<a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>で解析される',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'アイテム名',
|
||||
'item_uid' => 'アイテム固有ID',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'アイテムリンク(URL)',
|
||||
'help' => '例: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => ':のドット表記',
|
||||
'relative' => ':のドット表記パス(アイテムからの相対パス)。',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'JSONフィード',
|
||||
'rss' => 'RSS / Atom (標準)',
|
||||
'xml_xpath' => 'XML + XPath', // TODO
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
'maintenance' => array(
|
||||
'clear_cache' => 'キャッシュのクリア',
|
||||
|
@ -173,10 +178,10 @@ return array(
|
|||
'max_http_redir' => 'HTTPのリダイレクトの上限',
|
||||
'max_http_redir_help' => '0を設定するか、空白のままにすると無効になり、-1を設定するとリダイレクト数が無制限になります。',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'HTTPメソッド',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'POSTペイロードは <code>application/x-www-form-urlencoded</code> と <code>application/json</code> を自動的にサポートしています',
|
||||
'method_postparams' => 'POST用ペイロード',
|
||||
'moved_category_deleted' => 'カテゴリを削除したとき、フィードは自動的に<em>%s</em>下に分類されます。',
|
||||
'mute' => 'ミュート',
|
||||
'no_selected' => 'どのフィードも選択されていません',
|
||||
|
@ -185,7 +190,7 @@ return array(
|
|||
'_' => '表示する場所',
|
||||
'archived' => '非表示にする(アーカイブ)',
|
||||
'category' => 'カテゴリで表示する',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => '重要なフィードに表示する',
|
||||
'main_stream' => 'メインストリームで表示する',
|
||||
),
|
||||
'proxy' => 'フィードを読み込み時にproxyを設定してください',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => '購読ツール',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'このラベルを新しい記事に追加する',
|
||||
'name' => '名前',
|
||||
'new_name' => '新しい名前',
|
||||
'old_name' => '古い名前',
|
||||
|
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (HTTPS를 사용하는 고급 사용자용)',
|
||||
'none' => '사용하지 않음 (위험)',
|
||||
'title' => '인증',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => '마스터 인증 토큰',
|
||||
'token_help' => '인증 없이 사용자의 모든 RSS 내용과 피드 새로고침 권한을 허용합니다.:',
|
||||
'type' => '인증',
|
||||
'unsafe_autologin' => '다음과 같은 안전하지 않은 방식의 로그인을 허가합니다: ',
|
||||
),
|
||||
|
@ -160,8 +160,8 @@ return array(
|
|||
'_' => '시스템 설정',
|
||||
'auto-update-url' => '자동 업데이트 서버 URL',
|
||||
'base-url' => array(
|
||||
'_' => 'Base URL', // TODO
|
||||
'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>', // TODO
|
||||
'_' => 'Base URL', // IGNORE
|
||||
'recommendation' => '자동 추천: <kbd>%s</kbd>',
|
||||
),
|
||||
'cookie-duration' => array(
|
||||
'help' => '초',
|
||||
|
@ -187,33 +187,33 @@ return array(
|
|||
),
|
||||
'title' => '사용자 회원가입 양식',
|
||||
),
|
||||
'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>', // TODO
|
||||
'sensitive-parameter' => 'Sensitive parameter. <kbd>./data/config.php</kbd>에서 직접 수정', // DIRTY
|
||||
'tos' => array(
|
||||
'disabled' => 'is not given', // TODO
|
||||
'enabled' => '<a href="./?a=tos">is enabled</a>', // TODO
|
||||
'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>', // TODO
|
||||
'disabled' => '주어지지 않음',
|
||||
'enabled' => '<a href="./?a=tos">활성화됨</a>',
|
||||
'help' => '<a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">이용 약관 활성화</a> 하는 방법',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => '<a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a> 살펴보기',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
'_' => '업데이트',
|
||||
'apply' => '업데이트 적용하기',
|
||||
'changelog' => 'Changelog', // TODO
|
||||
'changelog' => '변경사항',
|
||||
'check' => '새 업데이트 확인하기',
|
||||
'copiedFromURL' => 'update.php copied from %s to ./data', // TODO
|
||||
'copiedFromURL' => 'update.php가 %s 에서 ./data 으로 복사됨',
|
||||
'current_version' => '현버전은 입니다',
|
||||
'last' => '마지막 확인',
|
||||
'loading' => 'Updating…', // TODO
|
||||
'loading' => '업데이트 중…',
|
||||
'none' => '적용 가능한 업데이트가 없습니다',
|
||||
'releaseChannel' => array(
|
||||
'_' => 'Release channel', // TODO
|
||||
'edge' => 'Rolling release (“edge”)', // TODO
|
||||
'latest' => 'Stable release (“latest”)', // TODO
|
||||
'_' => '릴리즈 채널',
|
||||
'edge' => '롤링 릴리즈 (“edge”)',
|
||||
'latest' => '안정 릴리즈 (“latest”)',
|
||||
),
|
||||
'title' => '업데이트',
|
||||
'viaGit' => 'Update via git and Github.com started', // TODO
|
||||
'viaGit' => 'Git 및 Github.com을 통한 업데이트 시작 됨',
|
||||
),
|
||||
'user' => array(
|
||||
'admin' => '관리자',
|
||||
|
|
|
@ -17,7 +17,7 @@ return array(
|
|||
'help' => '더 자세한 옵션은 개별 피드 설정에 있습니다',
|
||||
'keep_favourites' => '즐겨찾기 삭제 안 함',
|
||||
'keep_labels' => '라벨 삭제 안 함',
|
||||
'keep_max' => '보관할 글 최대 개수', // DIRTY
|
||||
'keep_max' => '피드별 보관할 글 최대 개수',
|
||||
'keep_min_by_feed' => '피드별 보관할 글 최소 개수',
|
||||
'keep_period' => '보관할 글 최대 기간',
|
||||
'keep_unreads' => '읽지 않은 글 삭제 안 함',
|
||||
|
@ -33,9 +33,9 @@ return array(
|
|||
'display' => array(
|
||||
'_' => '표시',
|
||||
'darkMode' => array(
|
||||
'_' => 'Automatic dark mode (beta)', // TODO
|
||||
'auto' => 'Auto', // TODO
|
||||
'no' => 'No', // TODO
|
||||
'_' => '자동 다크 모드 (베타)',
|
||||
'auto' => '자동',
|
||||
'no' => '끄기',
|
||||
),
|
||||
'icon' => array(
|
||||
'bottom_line' => '하단',
|
||||
|
@ -56,8 +56,8 @@ return array(
|
|||
'theme' => array(
|
||||
'_' => '테마',
|
||||
'deprecated' => array(
|
||||
'_' => 'Deprecated', // TODO
|
||||
'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>', // TODO
|
||||
'_' => '더 이상 사용되지 않음',
|
||||
'description' => '이 테마는 더이상 지원되지 않으며 <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">FreshRSS 이후 릴리즈</a>에서 사용할 수 없습니다.',
|
||||
),
|
||||
),
|
||||
'theme_not_available' => '“%s” 테마는 더이상 사용할 수 없습니다. 다른 테마를 선택해 주세요.',
|
||||
|
@ -68,14 +68,14 @@ return array(
|
|||
'portrait' => '세로 방향',
|
||||
'square' => '정사각형',
|
||||
),
|
||||
'timezone' => 'Time zone', // TODO
|
||||
'timezone' => '시간대',
|
||||
'title' => '표시',
|
||||
'website' => array(
|
||||
'full' => 'Icon and name', // TODO
|
||||
'icon' => 'Icon only', // TODO
|
||||
'label' => 'Website', // TODO
|
||||
'name' => 'Name only', // TODO
|
||||
'none' => 'None', // TODO
|
||||
'full' => '아이콘 및 이름',
|
||||
'icon' => '아이콘',
|
||||
'label' => '웹사이트',
|
||||
'name' => '이름',
|
||||
'none' => '없음',
|
||||
),
|
||||
'width' => array(
|
||||
'content' => '내용 표시 너비',
|
||||
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => '피드별로 표시',
|
||||
'order' => '날짜순으로 정렬',
|
||||
'search' => '정규 표현식',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => '해당 카테고리와 피드에 대한 OPML 공유 활성화',
|
||||
'shareRss' => 'HTML 및 RSS 공유 활성화',
|
||||
'state' => '상태',
|
||||
'tags' => '태그별로 표시',
|
||||
'type' => '유형',
|
||||
),
|
||||
'get_all' => '모든 글 표시',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => '라벨이 있는 글 표시',
|
||||
'get_category' => '“%s” 카테고리 표시',
|
||||
'get_favorite' => '즐겨찾기에 등록된 글 표시',
|
||||
'get_feed' => '“%s” 피드 표시',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => '중요 피드의 글 표시',
|
||||
'get_label' => '“%s” 라벨을 가진 글 표시',
|
||||
'help' => '<a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">유저 쿼리 및 HTML / RSS / OPML을 사용한 재공유 방법 문서</a> 살펴보기.',
|
||||
'name' => '이름',
|
||||
'no_filter' => '필터가 없습니다',
|
||||
'number' => '쿼리 #%d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => '최근 글 먼저 표시',
|
||||
'search' => '“%s”의 검색 결과',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => '링크로 쿼리 공유',
|
||||
'help' => '링크를 사용해서 쿼리를 공유하세요',
|
||||
'html' => 'HTML 공유 링크',
|
||||
'opml' => 'OPML 피드 목록 공유 링크',
|
||||
'rss' => 'RSS 피드 공유 링크',
|
||||
),
|
||||
'state_0' => '모든 글 표시',
|
||||
'state_1' => '읽은 글 표시',
|
||||
|
@ -217,7 +217,7 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => '글이 게재된 웹사이트를 방문했을 때',
|
||||
'article_viewed' => '글을 읽었을 때',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => '포커스 됐을 때 (중요 피드 제외)',
|
||||
'keep_max_n_unread' => '읽지 않은 상태로 유지할 최대 글 개수',
|
||||
'scroll' => '스크롤을 하며 지나갈 때 (except for important feeds)', // DIRTY
|
||||
'upon_gone' => '원본 뉴스 피드에서 글 삭제 되었을 때',
|
||||
|
|
|
@ -57,11 +57,11 @@ return array(
|
|||
),
|
||||
'import_export' => array(
|
||||
'export_no_zip_extension' => 'ZIP 확장 기능을 서버에서 찾을 수 없습니다. 파일을 하나씩 내보내세요.',
|
||||
'feeds_imported' => '피드를 성공적으로 불러왔습니다 / Your feeds have been imported. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'feeds_imported_with_errors' => '피드를 불러왔지만, 문제가 발생했습니다 / Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'feeds_imported' => '피드 불러오기가 완료됐습니다. 불러오기가 끝났다면 이제 <i>피드 업데이트</i> 버튼을 클릭해도 됩니다.',
|
||||
'feeds_imported_with_errors' => '피드를 불러왔지만, 문제가 발생했습니다. 불러오기가 끝났다면 이제 <i>피드 업데이트</i> 버튼을 클릭해도 됩니다.',
|
||||
'file_cannot_be_uploaded' => '파일을 업로드할 수 없습니다!',
|
||||
'no_zip_extension' => 'ZIP 확장 기능을 서버에서 찾을 수 없습니다.',
|
||||
'zip_error' => 'ZIP 파일을 불러오는 동안 문제가 발생했습니다.', // DIRTY
|
||||
'zip_error' => 'ZIP 처리 중 문제가 발생했습니다.',
|
||||
),
|
||||
'profile' => array(
|
||||
'error' => '프로필을 변경할 수 없습니다',
|
||||
|
@ -94,7 +94,7 @@ return array(
|
|||
'cache_cleared' => '<em>%s</em> 캐쉬 지움',
|
||||
'deleted' => '피드가 삭제되었습니다',
|
||||
'error' => '피드를 변경할 수 없습니다',
|
||||
'internal_problem' => 'RSS 피드를 추가할 수 없습니다. 자세한 내용은 <a href="%s">FreshRSS 로그</a>를 참고하세요. You can try force adding by appending <code>#force_feed</code> to the URL.', // DIRTY
|
||||
'internal_problem' => 'RSS 피드를 추가할 수 없습니다. 자세한 내용은 <a href="%s">FreshRSS 로그</a>를 참고하세요. <code>#force_feed</code>를 URL에 추가하여 강제로 추가 시도 할 수 있습니다.',
|
||||
'invalid_url' => 'URL (<em>%s</em>)이 유효하지 않습니다',
|
||||
'n_actualized' => '%d 개의 피드에서 새 글을 가져왔습니다',
|
||||
'n_entries_deleted' => '%d 개의 글을 삭제했습니다',
|
||||
|
@ -116,10 +116,10 @@ return array(
|
|||
),
|
||||
'tag' => array(
|
||||
'created' => '“%s” 태그가 생성되었습니다.',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'error' => '라벨 업데이트 실패!',
|
||||
'name_exists' => '같은 이름의 태그가 이미 존재합니다.',
|
||||
'renamed' => '“%s” 태그가 “%s” (으)로 이름이 변경되었습니다.',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => '라벨이 업데이트 됐습니다.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'FreshRSS가 <strong>%s</strong> 버전으로 업데이트됩니다.',
|
||||
|
|
|
@ -134,7 +134,7 @@ return array(
|
|||
'request_failed' => '요청한 작업을 수행할 수 없습니다. 인터넷 연결에 문제가 발생한 것 같습니다.',
|
||||
'title_new_articles' => 'FreshRSS: 새 글이 있습니다!',
|
||||
),
|
||||
'labels_empty' => 'No labels', // TODO
|
||||
'labels_empty' => '라벨 없음',
|
||||
'new_article' => '새 글이 있습니다. 여기를 클릭하면 페이지를 다시 불러옵니다.',
|
||||
'should_be_activated' => '자바스크립트를 사용하도록 설정해야합니다',
|
||||
),
|
||||
|
@ -178,7 +178,7 @@ return array(
|
|||
'queries' => '사용자 쿼리',
|
||||
'reading' => '읽기',
|
||||
'search' => '단어 또는 #태그 검색',
|
||||
'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>', // TODO
|
||||
'search_help' => '문서에서 고급 <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">검색 인자</a> 알아보기',
|
||||
'sharing' => '공유',
|
||||
'shortcuts' => '단축키',
|
||||
'stats' => '통계',
|
||||
|
@ -203,7 +203,7 @@ return array(
|
|||
'clipboard' => '클립보드',
|
||||
'diaspora' => 'Diaspora*', // IGNORE
|
||||
'email' => '메일',
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO
|
||||
'email-webmail-firefox-fix' => '이메일 (웹메일 - Firefox 전용 수정)',
|
||||
'facebook' => 'Facebook', // IGNORE
|
||||
'gnusocial' => 'GNU social', // IGNORE
|
||||
'jdh' => 'Journal du hacker', // IGNORE
|
||||
|
|
|
@ -17,7 +17,7 @@ return array(
|
|||
'bugs_reports' => '버그 제보하기',
|
||||
'credits' => '크레딧',
|
||||
'credits_content' => 'FreshRSS는 <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> 프레임워크를 사용하진 않지만, 일부 디자인 요소를 가져왔습니다. <a href="https://gitlab.gnome.org/Archive/gnome-icon-theme-symbolic">아이콘들</a>은 <a href="https://www.gnome.org/">GNOME 프로젝트</a>에서 가져왔습니다. <em>Open Sans</em> 글꼴은 <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a>가 제작하였습니다. FreshRSS는 PHP 프레임워크인 <a href="https://framagit.org/marienfressinaud/MINZ">Minz</a>에 기반하고 있습니다.',
|
||||
'documentation' => 'Documentation', // TODO
|
||||
'documentation' => '문서',
|
||||
'freshrss_description' => 'FreshRSS는 같은 셀프 호스팅 기반의 RSS 피드 수집기입니다. FreshRSS는 강력하고 다양한 설정을 할 수 있으면서도 가볍고 사용하기 쉽습니다.',
|
||||
'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">Github 저장소에 제보</a>',
|
||||
'license' => '라이센스',
|
||||
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => '현재 쿼리 북마크',
|
||||
'favorites' => '즐겨찾기 (%s)',
|
||||
'global_view' => '전체 모드',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => '중요 피드',
|
||||
'main_stream' => '메인 스트림',
|
||||
'mark_all_read' => '모두 읽음으로 표시',
|
||||
'mark_cat_read' => '카테고리를 읽음으로 표시',
|
||||
|
|
|
@ -66,9 +66,14 @@ return array(
|
|||
'description' => '설명',
|
||||
'empty' => '이 피드는 비어있습니다. 피드가 계속 운영되고 있는지 확인하세요.',
|
||||
'error' => '이 피드에 문제가 발생했습니다. 이 피드에 접근 권한이 있는지 확인하세요.',
|
||||
'export-as-opml' => array(
|
||||
'download' => '다운로드',
|
||||
'help' => 'XML 파일',
|
||||
'label' => 'OPML로 내보내기',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => '필터 동작',
|
||||
'help' => '한 줄에 한 검색 필터를 작성해 주세요. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
'help' => '한 줄에 한 검색 필터를 작성해 주세요. 실행시 <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">문서 참고</a>.',
|
||||
),
|
||||
'information' => '정보',
|
||||
'keep_min' => '최소 유지 글 개수',
|
||||
|
@ -99,8 +104,8 @@ return array(
|
|||
'help' => '예제: <code>descendant::img/@src</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => '사용자 지정 날짜/시간 형식',
|
||||
'help' => '선택 사항. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>에서 지원하는 형식(예: <code>d-m-Y H:i:s</code>)',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => '기사 날짜',
|
||||
|
@ -121,62 +126,62 @@ return array(
|
|||
'relative' => '다음의 (기사와 관련된) XPath:',
|
||||
'xpath' => '다음의 XPath:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (점 표기법)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => '피드 제목',
|
||||
'help' => '예시: <code>meta.title</code> 혹은 스태틱 문자열: <code>"나만의 커스텀 피드"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'JSON 점 표기법은 배열을 표기할 때 오브젝트와 괄호 사이에 점을 사용합니다. (예: <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => '새 뉴스 <strong>기사</strong> 찾기<br /><small>(가장 중요함)</small>',
|
||||
'help' => '기사를 포함한 배열의 JSON 경로, 예: <code>뉴스기사</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => '기사 저자',
|
||||
'item_categories' => '기사 테그',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => '기사 내용',
|
||||
'help' => 'Key under which the content is found, 예: <code>내용</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => '기사 섬네일',
|
||||
'help' => '예시: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => '사용자 지정 날짜/시간 형식',
|
||||
'help' => '선택 사항. <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>에서 지원하는 형식(예: <code>d-m-Y H:i:s</code>)',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => '기사 날짜',
|
||||
'help' => '결과 값은 <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>를 통해 파싱됩니다.',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => '기사 제목',
|
||||
'item_uid' => '기사 고유 ID',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => '기사 링크 (URL)',
|
||||
'help' => '예시: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'JSON 경로:',
|
||||
'relative' => 'JSON 상대 경로(기사 기준):',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'JSON 피드',
|
||||
'rss' => 'RSS / Atom (기본값)',
|
||||
'xml_xpath' => 'XML + XPath', // TODO
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
'maintenance' => array(
|
||||
'clear_cache' => '캐쉬 지우기',
|
||||
'clear_cache_help' => '이 피드의 캐쉬 지우기.',
|
||||
'reload_articles' => '글 다시 로드',
|
||||
'reload_articles_help' => '글 다시 로드하고 셀렉터가 정의 되었을 경우에 모든 컨텐츠 가져오기.', // DIRTY
|
||||
'reload_articles_help' => '선택자가 지정된 경우 해당하는 수의 기사를 다시 불러오고 전체 내용을 가져옵니다.',
|
||||
'title' => '유지 보수',
|
||||
),
|
||||
'max_http_redir' => '최대 HTTP 리다이렉션',
|
||||
'max_http_redir_help' => '값을 비워두거나 0으로 설정하면 비활성화하며, -1으로 설정하면 무제한 리다이렉션합니다',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'HTTP 메서드',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'POST 페이로드는 <code>application/x-www-form-urlencoded</code> 및 <code>application/json</code>을 자동으로 지원합니다.',
|
||||
'method_postparams' => 'POST용 페이로드',
|
||||
'moved_category_deleted' => '카테고리를 삭제하면, 해당 카테고리 아래에 있던 피드들은 자동적으로 <em>%s</em> 아래로 분류됩니다.',
|
||||
'mute' => '무기한 새로고침 금지',
|
||||
'no_selected' => '선택된 피드가 없습니다.',
|
||||
|
@ -185,11 +190,11 @@ return array(
|
|||
'_' => '표시',
|
||||
'archived' => '표시하지 않음 (보관됨)',
|
||||
'category' => '피드가 속한 카테고리에만 표시하기',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => '중요 피드에서 표시',
|
||||
'main_stream' => '메인 스트림에 표시하기',
|
||||
),
|
||||
'proxy' => '이 피드를 가져올 때 사용할 프록시 설정',
|
||||
'proxy_help' => '프로토콜 선택 (예: SOCKS5) 그리고 프록시 주소 입력 (예: <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)', // DIRTY
|
||||
'proxy_help' => '프로토콜 선택 (예: SOCKS5) 그리고 프록시 주소 입력 (예: <kbd>127.0.0.1:1080</kbd> 혹은 <kbd>username:password@127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => '소스코드 표시',
|
||||
'show_rendered' => '콘텐츠 표시',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => '구독 도구',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => '새 기사에 이 라벨 추가',
|
||||
'name' => '이름',
|
||||
'new_name' => '새 이름',
|
||||
'old_name' => '이전 이름',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Apraksts',
|
||||
'empty' => 'Šī barotne ir tukša. Lūdzu, pārbaudiet, vai tā joprojām tiek uzturēta.',
|
||||
'error' => 'Šajā barotnē ir radusies problēma. Lūdzu, pārbaudiet, vai tā vienmēr ir sasniedzama, un pēc tam to atjauniniet.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filtra darbības',
|
||||
'help' => 'Uzrakstiet vienu meklēšanas filtru katrā rindā. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relatīvs rakstam) priekš:',
|
||||
'xpath' => 'XPath priekš:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (noklusējums)',
|
||||
|
|
|
@ -19,8 +19,8 @@ return array(
|
|||
'http' => 'HTTP (voor gevorderde gebruikers met HTTPS)',
|
||||
'none' => 'Geen (gevaarlijk)',
|
||||
'title' => 'Authenticatie',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Hoofdauthenticatietoken',
|
||||
'token_help' => 'Geeft toegang tot alle RSS-uitvoer van de gebruiker en kan feeds verversen zonder authenticatie:',
|
||||
'type' => 'Authenticatie methode',
|
||||
'unsafe_autologin' => 'Sta onveilige automatische log in toe met het volgende formaat: ',
|
||||
),
|
||||
|
@ -194,7 +194,7 @@ return array(
|
|||
'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">algemene voorwaarden inschakelen</a>',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => 'Over <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
|
|
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'Weergeven op feed',
|
||||
'order' => 'Sorteren op datum',
|
||||
'search' => 'Expressie',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Via OPML delen van bijbehorende categorieën en feeds aanzetten',
|
||||
'shareRss' => 'Via HTML & RSS delen aanzetten',
|
||||
'state' => 'Status',
|
||||
'tags' => 'Weergeven op label',
|
||||
'type' => 'Type', // IGNORE
|
||||
),
|
||||
'get_all' => 'Toon alle artikelen',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Artikelen met elk label tonen',
|
||||
'get_category' => 'Toon „%s” categorie',
|
||||
'get_favorite' => 'Toon favoriete artikelen',
|
||||
'get_feed' => 'Toon „%s” feed',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Artikelen van belangrijke feeds tonen',
|
||||
'get_label' => 'Artikelen met het label „%s” tonen',
|
||||
'help' => 'Zie de <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentatie voor gebruikersqueries en delen via HTML / RSS / OPML</a>.',
|
||||
'name' => 'Naam',
|
||||
'no_filter' => 'Geen filter',
|
||||
'number' => 'Query n°%d', // IGNORE
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => 'Toon nieuwste artikelen eerst',
|
||||
'search' => 'Zoek naar „%s”',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Deze query delen via een link',
|
||||
'help' => 'Geef deze link als je deze query met iemand wilt delen',
|
||||
'html' => 'Deelbare link naar de HTML-pagina',
|
||||
'opml' => 'Deelbare link naar de OPML-lijst van feeds',
|
||||
'rss' => 'Deelbare link naar de RSS-feed',
|
||||
),
|
||||
'state_0' => 'Toon alle artikelen',
|
||||
'state_1' => 'Toon gelezen artikelen',
|
||||
|
@ -217,9 +217,9 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => 'als het artikel wordt geopend op de originele website',
|
||||
'article_viewed' => 'als het artikel wordt bekeken',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => 'wanneer gefocust (behalve voor belangrijke feeds)',
|
||||
'keep_max_n_unread' => 'Max aantal artikelen ongelezen houden',
|
||||
'scroll' => 'tijdens het scrollen (except for important feeds)', // DIRTY
|
||||
'scroll' => 'tijdens het scrollen (behalve voor belangrijke feeds)',
|
||||
'upon_gone' => 'als het niet langer in de nieuwsfeed staat',
|
||||
'upon_reception' => 'bij ontvangst van het artikel',
|
||||
'when' => 'Markeer artikel als gelezen…',
|
||||
|
|
|
@ -116,10 +116,10 @@ return array(
|
|||
),
|
||||
'tag' => array(
|
||||
'created' => 'Label „%s” aangemaakt.',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'error' => 'Label kon niet worden bijgewerkt!',
|
||||
'name_exists' => 'Label bestaat al.',
|
||||
'renamed' => 'Label „%s” hernoemd naar „%s”.',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => 'Label bijgewerkt.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'FreshRSS word nu bijgewerkt naar <strong>versie %s</strong>.',
|
||||
|
|
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => 'Huidige query opslaan',
|
||||
'favorites' => 'Favorieten (%s)',
|
||||
'global_view' => 'Globale weergave',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => 'Belangrijke feeds',
|
||||
'main_stream' => 'Overzicht',
|
||||
'mark_all_read' => 'Markeer alles als gelezen',
|
||||
'mark_cat_read' => 'Markeer categorie als gelezen',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Omschrijving',
|
||||
'empty' => 'Deze feed is leeg. Controleer of deze nog actueel is.',
|
||||
'error' => 'Deze feed heeft problemen. Verifieer a.u.b het doeladres en actualiseer het.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Downloaden',
|
||||
'help' => 'XML-bestand',
|
||||
'label' => 'Als OPML exporteren',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filteracties',
|
||||
'help' => 'Voer één zoekfilter per lijn in. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -121,45 +126,45 @@ return array(
|
|||
'relative' => 'XPath (relatief naar bericht) voor:',
|
||||
'xpath' => 'XPath voor:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (puntnotatie)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'feed-titel',
|
||||
'help' => 'Voorbeeld: <code>meta.titel</code> of een statische reeks tekst: <code>"Mijn aangepaste feed"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'JSON-puntnotatie gebruikt punten tussen objecten en vierkante haakjes voor arrays (bv. <code>data.items[0].titel</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => 'nieuws-<strong>items</strong> vinden<br /><small>(het belangrijkst)</small>',
|
||||
'help' => 'JSON-puntnotatiepad naar de array met de items, bv. <code>nieuwsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'item-auteur',
|
||||
'item_categories' => 'item-tags',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => 'item-inhoud',
|
||||
'help' => 'De sleutel waaronder de inhoude te vinden is, bv. <code>content</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'item-miniatuur',
|
||||
'help' => 'Voorbeeld: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Aangepast datum-/tijdformaat',
|
||||
'help' => 'Optioneel. Een formaat ondersteund door <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> zoals <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => 'item-datum',
|
||||
'help' => 'Het resultaat zal worden geparst door <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'item-titel',
|
||||
'item_uid' => 'uniek item-id',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'item-link (url)',
|
||||
'help' => 'Voorbeeld: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'puntnotatie voor:',
|
||||
'relative' => 'puntnotatiepad (relatief aan item) voor:',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'JSON Feed', // IGNORE
|
||||
'rss' => 'RSS / Atom (standaard)',
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
|
@ -173,10 +178,10 @@ return array(
|
|||
'max_http_redir' => 'Max HTTP redirects', // IGNORE
|
||||
'max_http_redir_help' => 'Stel in op 0 of laat leeg om uit te schakelen, -1 voor ongelimiteerde redirects',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'HTTP-methode',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'De POST-payload ondersteunt automatisch <code>application/x-www-form-urlencoded</code> en <code>application/json</code>',
|
||||
'method_postparams' => 'Payload voor POST',
|
||||
'moved_category_deleted' => 'Als u een categorie verwijderd, worden de feeds automatisch geclassificeerd onder <em>%s</em>.',
|
||||
'mute' => 'demp',
|
||||
'no_selected' => 'Geen feed geselecteerd.',
|
||||
|
@ -185,7 +190,7 @@ return array(
|
|||
'_' => 'Zichtbaarheid',
|
||||
'archived' => 'Niet weergeven (gearchiveerd)',
|
||||
'category' => 'Toon in categorie',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => 'In belangrijke feeds tonen',
|
||||
'main_stream' => 'Zichtbaar in het overzicht',
|
||||
),
|
||||
'proxy' => 'Proxy instellen om deze feed op te halen',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => 'Hulpmiddelen voor abonnementen',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'Dit label aan nieuwe artikelen toevoegen',
|
||||
'name' => 'Naam',
|
||||
'new_name' => 'Nieuwe naam',
|
||||
'old_name' => 'Oude naam',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Descripcion', // IGNORE
|
||||
'empty' => 'Aqueste flux es void. Assegurats-vos qu’es totjorn mantengut.',
|
||||
'error' => 'Aqueste flux a rescontrat un problèma. Volgatz verificar que siá totjorn accessible puèi actualizatz-lo.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Filtre d’accion',
|
||||
'help' => 'Escrivètz una recèrca per linha. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (relatiu a l’element) per :',
|
||||
'xpath' => 'XPath per :',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (defaut)',
|
||||
|
|
|
@ -19,10 +19,10 @@ return array(
|
|||
'http' => 'HTTP (dla zaawansowanych użytkowników, z wykorzystaniem HTTPS)',
|
||||
'none' => 'Brak (niebezpieczna)',
|
||||
'title' => 'Uwierzytelnianie',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Główny token uwierzytelniania',
|
||||
'token_help' => 'Umożliwia dostęp do wszystkich kanałów RSS użytkownika, jak również odświeżanie kanałów bez uwierzytelnienia:',
|
||||
'type' => 'Metoda uwierzytelniania',
|
||||
'unsafe_autologin' => 'Pozwól na niebezpieczne automatyczne logowanie następującym schematem: -> todo',
|
||||
'unsafe_autologin' => 'Pozwól na niebezpieczne automatyczne logowanie następującym schematem: ',
|
||||
),
|
||||
'check_install' => array(
|
||||
'cache' => array(
|
||||
|
@ -160,8 +160,8 @@ return array(
|
|||
'_' => 'Konfiguracja serwisu',
|
||||
'auto-update-url' => 'Adres serwera automatycznej aktualizacji',
|
||||
'base-url' => array(
|
||||
'_' => 'Base URL', // TODO
|
||||
'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>', // TODO
|
||||
'_' => 'Baza URL-a',
|
||||
'recommendation' => 'Automatyczne zalecenie: <kbd>%s</kbd>',
|
||||
),
|
||||
'cookie-duration' => array(
|
||||
'help' => 'w sekundach',
|
||||
|
@ -187,33 +187,33 @@ return array(
|
|||
),
|
||||
'title' => 'Formularz rejestracji użytkowników',
|
||||
),
|
||||
'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>', // TODO
|
||||
'sensitive-parameter' => 'Czuły parametr. Należy go ustawić ręcznie w <kbd>./data/config.php</kbd>',
|
||||
'tos' => array(
|
||||
'disabled' => 'is not given', // TODO
|
||||
'enabled' => '<a href="./?a=tos">is enabled</a>', // TODO
|
||||
'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>', // TODO
|
||||
'disabled' => 'nie zostały ustalone',
|
||||
'enabled' => '<a href="./?a=tos">włączone</a>',
|
||||
'help' => 'W jaki sposób włączyć <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">Warunki użytkowania</a>',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => 'O protokole <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
'_' => 'Aktualizacja',
|
||||
'apply' => 'Zastosuj',
|
||||
'changelog' => 'Changelog', // TODO
|
||||
'changelog' => 'lista zmian',
|
||||
'check' => 'Szukaj uaktualnień',
|
||||
'copiedFromURL' => 'update.php copied from %s to ./data', // TODO
|
||||
'copiedFromURL' => 'update.php skopiowany z %s do ./data',
|
||||
'current_version' => 'Używana wersja',
|
||||
'last' => 'Ostatnie sprawdzenie',
|
||||
'loading' => 'Updating…', // TODO
|
||||
'loading' => 'Aktualizowanie…',
|
||||
'none' => 'Brak nowych aktualizacji',
|
||||
'releaseChannel' => array(
|
||||
'_' => 'Release channel', // TODO
|
||||
'edge' => 'Rolling release (“edge”)', // TODO
|
||||
'latest' => 'Stable release (“latest”)', // TODO
|
||||
'_' => 'Kanał aktualizacji',
|
||||
'edge' => 'Wersja rozwojowa (“edge”)',
|
||||
'latest' => 'Wersja stabilna (“latest”)',
|
||||
),
|
||||
'title' => 'Aktualizacja',
|
||||
'viaGit' => 'Update via git and Github.com started', // TODO
|
||||
'viaGit' => 'Rozpoczęto aktualizację gitem do najnowszej wersji z Githuba',
|
||||
),
|
||||
'user' => array(
|
||||
'admin' => 'Administrator', // IGNORE
|
||||
|
|
|
@ -33,9 +33,9 @@ return array(
|
|||
'display' => array(
|
||||
'_' => 'Wyświetlanie',
|
||||
'darkMode' => array(
|
||||
'_' => 'Automatic dark mode (beta)', // TODO
|
||||
'auto' => 'Auto', // TODO
|
||||
'no' => 'No', // TODO
|
||||
'_' => 'Tryb ciemny (beta)',
|
||||
'auto' => 'Automatyczny',
|
||||
'no' => 'Wyłączony',
|
||||
),
|
||||
'icon' => array(
|
||||
'bottom_line' => 'Dolny margines',
|
||||
|
@ -56,8 +56,8 @@ return array(
|
|||
'theme' => array(
|
||||
'_' => 'Motyw',
|
||||
'deprecated' => array(
|
||||
'_' => 'Deprecated', // TODO
|
||||
'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>', // TODO
|
||||
'_' => 'Przestarzały',
|
||||
'description' => 'Ten motyw nie jest już wspierany i zostanie usunięty w <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">przyszłej wersji FreshRSS</a>',
|
||||
),
|
||||
),
|
||||
'theme_not_available' => 'Motyw “%s” nie jest już dostępny. Wybierz inny motyw.',
|
||||
|
@ -68,14 +68,14 @@ return array(
|
|||
'portrait' => 'Portret',
|
||||
'square' => 'Kwadrat',
|
||||
),
|
||||
'timezone' => 'Time zone', // TODO
|
||||
'timezone' => 'Strefa czasowa',
|
||||
'title' => 'Wyświetlanie',
|
||||
'website' => array(
|
||||
'full' => 'Icon and name', // TODO
|
||||
'icon' => 'Icon only', // TODO
|
||||
'label' => 'Website', // TODO
|
||||
'name' => 'Name only', // TODO
|
||||
'none' => 'None', // TODO
|
||||
'full' => 'Ikona i nazwa',
|
||||
'icon' => 'Tylko ikona',
|
||||
'label' => 'Strona źródłowa',
|
||||
'name' => 'Tylko nazwa',
|
||||
'none' => 'Ukryj',
|
||||
),
|
||||
'width' => array(
|
||||
'content' => 'Rozmiar treści',
|
||||
|
@ -120,20 +120,20 @@ return array(
|
|||
'feeds' => 'Według kanału',
|
||||
'order' => 'Sortowanie wg daty',
|
||||
'search' => 'Wyrażenie',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Włącz udostępnianie OPML-i zawierających kategorie i kanały',
|
||||
'shareRss' => 'Włącz udostępnianie przez HTML i RSS',
|
||||
'state' => 'Stan',
|
||||
'tags' => 'Według tagu',
|
||||
'type' => 'Rodzaj',
|
||||
),
|
||||
'get_all' => 'Wyświetlenie wszystkich wiadomości',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Wyświetl wiadomości z dowolnymi etykietami',
|
||||
'get_category' => 'Wyświetlenie kategorii “%s”',
|
||||
'get_favorite' => 'Wyświetlenie ulubionych wiadomości',
|
||||
'get_feed' => 'Wyświetlenie kanału “%s”',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Wyświetl wiadomości z ważnych kanałów',
|
||||
'get_label' => 'Wyświetl wiadomości z etykietą “%s”',
|
||||
'help' => 'Zapytania i dzielenie się nimi przez HTML / RSS / OPML opisane są w <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentacji</a>.',
|
||||
'name' => 'Nazwa',
|
||||
'no_filter' => 'Brak filtrów',
|
||||
'number' => 'Zapytanie nr %d',
|
||||
|
@ -141,11 +141,11 @@ return array(
|
|||
'order_desc' => 'Wyświetl najpierw najnowsze wiadomości',
|
||||
'search' => 'Szukaj “%s”',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Udostępnij to zapytanie',
|
||||
'help' => 'Posłuż się tym odnośnikiem, aby podzielić się zapytaniem',
|
||||
'html' => 'Odnośnik do strony HTML',
|
||||
'opml' => 'Odnośnik do listy kanałów (OPML)',
|
||||
'rss' => 'Odnośnik do kanału RSS',
|
||||
),
|
||||
'state_0' => 'Wyświetl wszystkie wiadomości',
|
||||
'state_1' => 'Wyświetl przeczytane wiadomości',
|
||||
|
@ -217,9 +217,9 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => 'gdy wiadomość jest otworzona na pierwotnej stronie',
|
||||
'article_viewed' => 'gdy wiadomość jest otworzona',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => 'kiedy ma focus (z wyłączeniem ważnych kanałów)',
|
||||
'keep_max_n_unread' => 'Maksymalna liczba nieprzeczytanych wiadomości',
|
||||
'scroll' => 'podczas przewijania (except for important feeds)', // DIRTY
|
||||
'scroll' => 'podczas przewijania (z wyłączeniem ważnych kanałów)',
|
||||
'upon_gone' => 'gdy nie jest już listowana w źródle kanału',
|
||||
'upon_reception' => 'po otrzymaniu wiadomości',
|
||||
'when' => 'Oznacz wiadomość jako przeczytaną…',
|
||||
|
|
|
@ -57,11 +57,11 @@ return array(
|
|||
),
|
||||
'import_export' => array(
|
||||
'export_no_zip_extension' => 'Rozszerzenie ZIP nie jest dostępne na serwerze. Spróbuj eksportować pliki pojedynczo.',
|
||||
'feeds_imported' => 'Kanały zostały zaimportowane i zostaną teraz zaktualizowane / Your feeds have been imported. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'feeds_imported_with_errors' => 'Kanały zostały zaimportowane, jednakże wystąpiło kilka błędów / Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'feeds_imported' => 'Kanały zostały zaimportowane. Jeżeli skończyłeś, kliknij guzik <i>Aktualizuj kanały</i>.',
|
||||
'feeds_imported_with_errors' => 'Kanały zostały zaimportowane, jednakże wystąpiło kilka błędów. Jeżeli skończyłeś, kliknij guzik <i>Aktualizuj kanały</i>.',
|
||||
'file_cannot_be_uploaded' => 'Plik nie może zostać wgrany!',
|
||||
'no_zip_extension' => 'Rozszerzenie ZIP nie jest dostępne na serwerze.',
|
||||
'zip_error' => 'Wystąpił błąd podczas importu pliku ZIP.', // DIRTY
|
||||
'zip_error' => 'Wystąpił błąd podczas przetwarzania pliku ZIP.',
|
||||
),
|
||||
'profile' => array(
|
||||
'error' => 'Nie można modyfikować profilu',
|
||||
|
@ -116,10 +116,10 @@ return array(
|
|||
),
|
||||
'tag' => array(
|
||||
'created' => 'Etykieta “%s” została stworzona.',
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'error' => 'Etykieta nie może zostać zmieniona!',
|
||||
'name_exists' => 'Etykieta o podanej nazwie już istnieje.',
|
||||
'renamed' => 'Etykieta “%s” została zmieniona na “%s”.',
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'updated' => 'Etykieta została zmieniona.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'FreshRSS zostanie zaktualizowany do <strong>wersji %s</strong>.',
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
return array(
|
||||
'action' => array(
|
||||
'actualize' => 'Aktualizuj kanałów',
|
||||
'actualize' => 'Aktualizuj kanały',
|
||||
'add' => 'Dodaj',
|
||||
'back' => '← Wróć',
|
||||
'back_to_rss_feeds' => '← Wróć do subskrybowanych kanałów RSS',
|
||||
|
@ -119,7 +119,7 @@ return array(
|
|||
'wed' => 'Śr.',
|
||||
'yesterday' => 'Wczorajsze',
|
||||
),
|
||||
'dir' => 'ltr', // TODO
|
||||
'dir' => 'ltr', // IGNORE
|
||||
'freshrss' => array(
|
||||
'_' => 'FreshRSS', // IGNORE
|
||||
'about' => 'O serwisie FreshRSS',
|
||||
|
@ -134,7 +134,7 @@ return array(
|
|||
'request_failed' => 'Zapytanie nie powiodło się. Może to być spowodowane problemami z łącznością z internetem.',
|
||||
'title_new_articles' => 'FreshRSS: nowe wiadomości!',
|
||||
),
|
||||
'labels_empty' => 'No labels', // TODO
|
||||
'labels_empty' => 'Brak tagów',
|
||||
'new_article' => 'Dostępne są nowe wiadomości. Kliknij, aby odświeżyć stronę.',
|
||||
'should_be_activated' => 'JavaScript musi być włączony',
|
||||
),
|
||||
|
@ -178,7 +178,7 @@ return array(
|
|||
'queries' => 'Zapisane zapytania',
|
||||
'reading' => 'Czytanie',
|
||||
'search' => 'Wyszukaj wyrazy lub #tagi',
|
||||
'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>', // TODO
|
||||
'search_help' => 'Zaawansowane <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">parametry wyszukiwania</a> opisane są w dokumentacji',
|
||||
'sharing' => 'Podawanie dalej',
|
||||
'shortcuts' => 'Skróty klawiszowe',
|
||||
'stats' => 'Statystyki',
|
||||
|
@ -203,7 +203,7 @@ return array(
|
|||
'clipboard' => 'Schowek',
|
||||
'diaspora' => 'Diaspora*', // IGNORE
|
||||
'email' => 'E-mail',
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - poprawka dla Firefoksa)',
|
||||
'facebook' => 'Facebook', // IGNORE
|
||||
'gnusocial' => 'GNU social', // IGNORE
|
||||
'jdh' => 'Journal du hacker', // IGNORE
|
||||
|
|
|
@ -17,7 +17,7 @@ return array(
|
|||
'bugs_reports' => 'Zgłaszanie problemów',
|
||||
'credits' => 'Uznanie autorstwa',
|
||||
'credits_content' => 'Niektóre elementy designu pochodzą z <a href="http://twitter.github.io/bootstrap/">Bootstrapa</a>, przy czym FreshRSS nie używa tego frameworku. <a href="https://gitlab.gnome.org/Archive/gnome-icon-theme-symbolic">Ikony</a> zostały pierwotnie stworzone dla <a href="https://www.gnome.org/">projektu GNOME</a>. Font <em>Open Sans</em> jest autorstwa <a href="https://fonts.google.com/specimen/Open+Sans">Steve’a Mattesona</a>. FreshRSS opiera się na <a href="https://framagit.org/marienfressinaud/MINZ">Minz</a>, frameworku PHP.',
|
||||
'documentation' => 'Documentation', // TODO
|
||||
'documentation' => 'Dokumentacja',
|
||||
'freshrss_description' => 'FreshRSS jest agregatorem kanałów RSS przeznaczonym do zainstalowania na własnym serwerze. Jest lekki i łatwy do schowania w kieszeni, pozostając przy tym potężnym i konfigurowalnym narzędziem.',
|
||||
'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">na Githubie</a>',
|
||||
'license' => 'Licencja',
|
||||
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => 'Zapisz bieżące zapytanie',
|
||||
'favorites' => 'Ulubione (%s)',
|
||||
'global_view' => 'Widok globalny',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => 'Ważne kanały',
|
||||
'main_stream' => 'Kanał główny',
|
||||
'mark_all_read' => 'Oznacz wszystkie jako przeczytane',
|
||||
'mark_cat_read' => 'Oznacz kategorię jako przeczytaną',
|
||||
|
|
|
@ -66,9 +66,14 @@ return array(
|
|||
'description' => 'Opis',
|
||||
'empty' => 'Ten kanał jest pusty. Należy sprawdzić czy kanał w dalszym ciągu działa.',
|
||||
'error' => 'Napotkano problem podczas dostępu do tego kanału. Należy sprawdzić czy kanał jest zawsze dostępny, a następnie go odświeżyć.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Pobierz',
|
||||
'help' => 'Plik XML',
|
||||
'label' => 'Eksportuj OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Akcje filtrowania',
|
||||
'help' => 'Jedno zapytanie na linię. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
'help' => 'Jedno zapytanie na linię. Operatory opisane są w <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">dokumentacji</a>.',
|
||||
),
|
||||
'information' => 'Informacja',
|
||||
'keep_min' => 'Minimalna liczba wiadomości do do przechowywania',
|
||||
|
@ -99,8 +104,8 @@ return array(
|
|||
'help' => 'Przykład: <code>descendant::img/@src</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Własny format daty/czasu',
|
||||
'help' => 'Opcjonalne. Format wspierany przez <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, przykładowo <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'daty',
|
||||
|
@ -121,47 +126,47 @@ return array(
|
|||
'relative' => 'XPath (względem wiadomości) dla:',
|
||||
'xpath' => 'XPath dla:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // IGNORE
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'Tytuł kanału',
|
||||
'help' => 'Przykład: <code>meta.title</code>, lub stały ciąg: <code>"Mój kanał"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'JSON oddzielający obiekty kropkami i używający nawiasów kwadratowych dla tablic (na przykład <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => 'odnajdywanie <strong>wiadomości</strong><br /><small>(najważniejsze)</small>',
|
||||
'help' => 'Ścieżka w JSON-ie do tablicy zawierającej wiadomości, na przykład <code>newsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'autor wiadomości',
|
||||
'item_categories' => 'tagi wiadomości',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => 'zawartość wiadomości',
|
||||
'help' => 'Klucz pod którym można znaleźć zawartość, przykładowo <code>content</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'miniaturka wiadomości',
|
||||
'help' => 'Przykład: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Własny format daty/czasu',
|
||||
'help' => 'Opcjonalne. Format wspierany przez <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, przykładowo <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
'_' => 'czas wiadomości',
|
||||
'help' => 'Wartość będzie przetwarzana funkcją <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'tytuł wiadomości',
|
||||
'item_uid' => 'unikalny identyfikator wiadomości',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'adres URL wiadomości',
|
||||
'help' => 'Przykład: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'ścieżka do:',
|
||||
'relative' => 'ścieżka do (względem wiadomości):',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'Kanał JSON',
|
||||
'rss' => 'RSS / Atom (domyślne)',
|
||||
'xml_xpath' => 'XML + XPath', // TODO
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
'maintenance' => array(
|
||||
'clear_cache' => 'Wyczyść pamięć podręczną',
|
||||
|
@ -173,10 +178,10 @@ return array(
|
|||
'max_http_redir' => 'Limit przekierowań HTTP',
|
||||
'max_http_redir_help' => 'Ustaw na 0, albo pozostaw puste, by zabronić przekierowywania. Wartość -1 wyłącza limit.',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'Medoda HTTP',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'Ładunek w POST automatycznie wspiera <code>application/x-www-form-urlencoded</code> oraz <code>application/json</code>',
|
||||
'method_postparams' => 'Ładunek w POST',
|
||||
'moved_category_deleted' => 'Po usunięciu kategorii znajdujące się w niej kanały zostaną automatycznie przeniesione do <em>%s</em>.',
|
||||
'mute' => 'wycisz',
|
||||
'no_selected' => 'Brak kanałów.',
|
||||
|
@ -185,11 +190,11 @@ return array(
|
|||
'_' => 'Widoczność',
|
||||
'archived' => 'Nie pokazuj (zarchiwizowany)',
|
||||
'category' => 'Pokaż w kategorii kanału',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => 'Pokaż w ważnych kanałach',
|
||||
'main_stream' => 'Pokaż w kanale głównym',
|
||||
),
|
||||
'proxy' => 'Użyj mechanizmu proxy podczas pobierania kanału',
|
||||
'proxy_help' => 'Wybierz protokół (np. SOCKS5) i podaj adres serwera proxy (np. <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)', // DIRTY
|
||||
'proxy_help' => 'Wybierz protokół (np. SOCKS5) i podaj adres serwera proxy (np. <kbd>127.0.0.1:1080</kbd> lub <kbd>username:password@127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Pokaż źródło',
|
||||
'show_rendered' => 'Pokaż zawartość',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => 'Narzędzia subskrypcji',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'Dodaj tę etykietę do nowych wiadomości',
|
||||
'name' => 'Nazwa',
|
||||
'new_name' => 'Nowa nazwa',
|
||||
'old_name' => 'Poprzednia nazwa',
|
||||
|
|
|
@ -12,17 +12,17 @@
|
|||
|
||||
return array(
|
||||
'auth' => array(
|
||||
'allow_anonymous' => 'Permitir a leitura anónima dos artigos pelo usuário padrão (%s)',
|
||||
'allow_anonymous_refresh' => 'Permitir atualização anónima dos artigos',
|
||||
'allow_anonymous' => 'Permitir a leitura anônima dos artigos pelo usuário padrão (%s)',
|
||||
'allow_anonymous_refresh' => 'Permitir atualização anônima dos artigos',
|
||||
'api_enabled' => 'Permitir acesso à <abbr>API</abbr> <small>(Necessáiro para aplicativos móveis)</small>',
|
||||
'form' => 'Formulário Web(tradicional, Necessita de JavaScript)',
|
||||
'http' => 'HTTP (Para usuários avançados com HTTPS)',
|
||||
'none' => 'Nenhum (Perigoso)',
|
||||
'title' => 'Autenticação',
|
||||
'token' => 'Master authentication token', // TODO
|
||||
'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:', // TODO
|
||||
'token' => 'Token de autenticação principal',
|
||||
'token_help' => 'Permite acesso a todos as saídas RSS do usuário bem como atualização dos feeds sem autenticação:',
|
||||
'type' => 'Método de autenticação',
|
||||
'unsafe_autologin' => 'Permitir login automática insegura usando o seguinte formato: ',
|
||||
'unsafe_autologin' => 'Permitir login automático inseguro usando o seguinte formato: ',
|
||||
),
|
||||
'check_install' => array(
|
||||
'cache' => array(
|
||||
|
@ -154,14 +154,14 @@ return array(
|
|||
'status_total' => 'Total', // IGNORE
|
||||
'status_unread' => 'Não lidos',
|
||||
'title' => 'Estatísticas',
|
||||
'top_feed' => 'Top10 feeds',
|
||||
'top_feed' => 'Top10 Feeds',
|
||||
),
|
||||
'system' => array(
|
||||
'_' => 'Configuração do sistema',
|
||||
'auto-update-url' => 'URL do servidor para atualização automática',
|
||||
'base-url' => array(
|
||||
'_' => 'Base URL', // TODO
|
||||
'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>', // TODO
|
||||
'_' => 'URL Base',
|
||||
'recommendation' => 'Recomendação automática: <kbd>%s</kbd>',
|
||||
),
|
||||
'cookie-duration' => array(
|
||||
'help' => 'em segundos',
|
||||
|
@ -177,8 +177,8 @@ return array(
|
|||
'label' => 'Formulário de Registro',
|
||||
'option' => array(
|
||||
'noform' => 'Desativado: Sem formulário de registro',
|
||||
'nolimit' => 'Atividado: Sem limites de contas',
|
||||
'setaccountsnumber' => 'Definir o máximo de número de contas',
|
||||
'nolimit' => 'Ativado: Sem limites de contas',
|
||||
'setaccountsnumber' => 'Definir o máximo número de contas',
|
||||
),
|
||||
),
|
||||
'status' => array(
|
||||
|
@ -187,33 +187,33 @@ return array(
|
|||
),
|
||||
'title' => 'Formulário de Cadastro de Usuário',
|
||||
),
|
||||
'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>', // TODO
|
||||
'sensitive-parameter' => 'Parâmetro sensível. Edite manualmente em <kbd>./data/config.php</kbd>',
|
||||
'tos' => array(
|
||||
'disabled' => 'is not given', // TODO
|
||||
'enabled' => '<a href="./?a=tos">is enabled</a>', // TODO
|
||||
'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>', // TODO
|
||||
'disabled' => 'não fornecido',
|
||||
'enabled' => '<a href="./?a=tos">está ativado</a>',
|
||||
'help' => 'Como <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">habilitar os Termos de Serviço</a>',
|
||||
),
|
||||
'websub' => array(
|
||||
'help' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>', // TODO
|
||||
'help' => 'Sobre <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
|
||||
),
|
||||
),
|
||||
'update' => array(
|
||||
'_' => 'Atualização do sistema',
|
||||
'apply' => 'Aplicar',
|
||||
'changelog' => 'Changelog', // TODO
|
||||
'changelog' => 'Registro de alterações',
|
||||
'check' => 'Buscar por novas atualizações',
|
||||
'copiedFromURL' => 'update.php copied from %s to ./data', // TODO
|
||||
'copiedFromURL' => 'update.php copiado de %s para ./data',
|
||||
'current_version' => 'Sua versão',
|
||||
'last' => 'Última verificação',
|
||||
'loading' => 'Updating…', // TODO
|
||||
'loading' => 'Atualizando…',
|
||||
'none' => 'Nenhuma atualização para se aplicar',
|
||||
'releaseChannel' => array(
|
||||
'_' => 'Release channel', // TODO
|
||||
'edge' => 'Rolling release (“edge”)', // TODO
|
||||
'latest' => 'Stable release (“latest”)', // TODO
|
||||
'_' => 'Canal de Release',
|
||||
'edge' => 'Release contínua (“edge”)',
|
||||
'latest' => 'Release estável (“latest”)',
|
||||
),
|
||||
'title' => 'Sistema de atualização',
|
||||
'viaGit' => 'Update via git and Github.com started', // TODO
|
||||
'viaGit' => 'Atualização via git e Github.com iniciada',
|
||||
),
|
||||
'user' => array(
|
||||
'admin' => 'Administrador',
|
||||
|
|
|
@ -16,9 +16,9 @@ return array(
|
|||
'exception' => 'Regras de exceção da limpeza',
|
||||
'help' => 'Mais opções estão disponíveis nas configurações individuais do Feed',
|
||||
'keep_favourites' => 'Nunca deletar os favoritos',
|
||||
'keep_labels' => 'Nunca deletar etiquetas',
|
||||
'keep_labels' => 'Nunca deletar tags',
|
||||
'keep_max' => 'Número máximo de artigos para manter no feed',
|
||||
'keep_min_by_feed' => 'Número mínimo de artigos para deixar no feed',
|
||||
'keep_min_by_feed' => 'Número mínimo de artigos para manter no feed',
|
||||
'keep_period' => 'Idade máxima dos artigos a serem mantidos',
|
||||
'keep_unreads' => 'Nunca apagar os não lidos',
|
||||
'maintenance' => 'Manutenção',
|
||||
|
@ -33,9 +33,9 @@ return array(
|
|||
'display' => array(
|
||||
'_' => 'Exibição',
|
||||
'darkMode' => array(
|
||||
'_' => 'Automatic dark mode (beta)', // TODO
|
||||
'auto' => 'Auto', // TODO
|
||||
'no' => 'No', // TODO
|
||||
'_' => 'Modo noturno automático (beta)',
|
||||
'auto' => 'Automático',
|
||||
'no' => 'Não',
|
||||
),
|
||||
'icon' => array(
|
||||
'bottom_line' => 'Linha inferior',
|
||||
|
@ -56,8 +56,8 @@ return array(
|
|||
'theme' => array(
|
||||
'_' => 'Tema',
|
||||
'deprecated' => array(
|
||||
'_' => 'Deprecated', // TODO
|
||||
'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>', // TODO
|
||||
'_' => 'Depreciado',
|
||||
'description' => 'Este tema não é mais suportado e não estará mais disponível em <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">uma versão futura do FreshRSS</a>',
|
||||
),
|
||||
),
|
||||
'theme_not_available' => 'O tema “%s” não está mais disponível. Por favor escolha outro tema.',
|
||||
|
@ -68,14 +68,14 @@ return array(
|
|||
'portrait' => 'Modo retrato',
|
||||
'square' => 'Modo quadrado',
|
||||
),
|
||||
'timezone' => 'Time zone', // TODO
|
||||
'timezone' => 'Fuso horário',
|
||||
'title' => 'Exibição',
|
||||
'website' => array(
|
||||
'full' => 'Icon and name', // TODO
|
||||
'icon' => 'Icon only', // TODO
|
||||
'label' => 'Website', // TODO
|
||||
'name' => 'Name only', // TODO
|
||||
'none' => 'None', // TODO
|
||||
'full' => 'Ícone e nome',
|
||||
'icon' => 'Apenas ícone',
|
||||
'label' => 'Site',
|
||||
'name' => 'Apenas nome',
|
||||
'none' => 'Nenhum',
|
||||
),
|
||||
'width' => array(
|
||||
'content' => 'Largura do conteúdo',
|
||||
|
@ -112,7 +112,7 @@ return array(
|
|||
'title' => 'Perfil',
|
||||
),
|
||||
'query' => array(
|
||||
'_' => 'Queries do usuário',
|
||||
'_' => 'Consultas do usuário',
|
||||
'deprecated' => 'Esta não é mais válida. A categoria ou feed relacionado foi deletado.',
|
||||
'filter' => array(
|
||||
'_' => 'Filtro aplicado:',
|
||||
|
@ -120,32 +120,32 @@ return array(
|
|||
'feeds' => 'Exibir por feed',
|
||||
'order' => 'Ordenar por data',
|
||||
'search' => 'Expressão',
|
||||
'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds', // TODO
|
||||
'shareRss' => 'Enable sharing by HTML & RSS', // TODO
|
||||
'shareOpml' => 'Habilita o compartilhamento por OPML de categorias e feeds correspondentes',
|
||||
'shareRss' => 'Habilita o compartilhamento por HTML & RSS',
|
||||
'state' => 'Estado',
|
||||
'tags' => 'Exibir por tag', // DIRTY
|
||||
'tags' => 'Exibir por tag',
|
||||
'type' => 'Tipo',
|
||||
),
|
||||
'get_all' => 'Mostrar todos os artigos',
|
||||
'get_all_labels' => 'Display articles with any label', // TODO
|
||||
'get_all_labels' => 'Exibir artigos com qualquer rótulo',
|
||||
'get_category' => 'Visualizar “%s” categoria',
|
||||
'get_favorite' => 'Visualizar artigos favoritos',
|
||||
'get_feed' => 'Visualizar “%s” feed',
|
||||
'get_important' => 'Display articles from important feeds', // TODO
|
||||
'get_label' => 'Display articles with “%s” label', // TODO
|
||||
'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.', // TODO
|
||||
'get_important' => 'Exibir artigos de feeds importantes',
|
||||
'get_label' => 'Exibir artigos com rótulo “%s”',
|
||||
'help' => 'Veja a <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentação para consultas de usuários e recompartilhamentos por HTML / RSS / OPML</a>.',
|
||||
'name' => 'Nome',
|
||||
'no_filter' => 'Sem filtro',
|
||||
'number' => 'Query n°%d', // IGNORE
|
||||
'number' => 'Consulta n°%d',
|
||||
'order_asc' => 'Exibir artigos mais antigos primeiro',
|
||||
'order_desc' => 'Exibir artigos mais novos primeiro',
|
||||
'search' => 'Busca por “%s”',
|
||||
'share' => array(
|
||||
'_' => 'Share this query by link', // TODO
|
||||
'help' => 'Give this link if you want to share this query with anyone', // TODO
|
||||
'html' => 'Shareable link to the HTML page', // TODO
|
||||
'opml' => 'Shareable link to the OPML list of feeds', // TODO
|
||||
'rss' => 'Shareable link to the RSS feed', // TODO
|
||||
'_' => 'Compartilhar esta consulta por link',
|
||||
'help' => 'Forneça este link se quiser compartilhar esta consulta com alguém',
|
||||
'html' => 'Link compartilhável para a página HTML',
|
||||
'opml' => 'Link compartilhável para a lista de feeds OPML',
|
||||
'rss' => 'Link compartilhável para o feed RSS',
|
||||
),
|
||||
'state_0' => 'Exibir todos os artigos',
|
||||
'state_1' => 'Exibir artigos lidos',
|
||||
|
@ -163,7 +163,7 @@ return array(
|
|||
'state_13' => 'Exibir artigos lidos',
|
||||
'state_14' => 'Exibir artigos não lidos',
|
||||
'state_15' => 'Exibir todos os artigos',
|
||||
'title' => 'Queries de usuários',
|
||||
'title' => 'Consultas de usuários',
|
||||
),
|
||||
'reading' => array(
|
||||
'_' => 'Leitura',
|
||||
|
@ -178,21 +178,21 @@ return array(
|
|||
'none' => 'Nenhum',
|
||||
),
|
||||
'feed_name' => array(
|
||||
'above_title' => 'Acima do titulo/etiqueta',
|
||||
'above_title' => 'Acima do título/etiqueta',
|
||||
'none' => 'Nenhum',
|
||||
'with_authors' => 'Com autores e data',
|
||||
),
|
||||
'feed_title' => 'Titulo do Feed',
|
||||
'feed_title' => 'Título do Feed',
|
||||
'tags' => array(
|
||||
'_' => 'Etiqueta',
|
||||
'_' => 'Tag',
|
||||
'both' => 'No cabeçalho e rodapé',
|
||||
'footer' => 'No rodapé',
|
||||
'header' => 'No cabeçalho',
|
||||
'none' => 'Nenhum',
|
||||
),
|
||||
'tags_max' => array(
|
||||
'_' => 'Número máximo de etiquetas exibidas',
|
||||
'help' => '0 significa: mostrar todas as etiquetas e não recolhê-las',
|
||||
'_' => 'Número máximo de tags exibidas',
|
||||
'help' => '0 significa: mostrar todas as tags e não recolhê-las',
|
||||
),
|
||||
),
|
||||
'articles_per_page' => 'Número de artigos por página',
|
||||
|
@ -217,9 +217,9 @@ return array(
|
|||
'read' => array(
|
||||
'article_open_on_website' => 'quando o artigo é aberto no site original',
|
||||
'article_viewed' => 'Quando o artigo é visualizado',
|
||||
'focus' => 'when focused (except for important feeds)', // TODO
|
||||
'focus' => 'quando focado (exceto por feeds importantes)',
|
||||
'keep_max_n_unread' => 'Número máximo de artigos para manter como não lido',
|
||||
'scroll' => 'enquanto scrolling (except for important feeds)', // DIRTY
|
||||
'scroll' => 'enquanto faz a rolagem (exceto por feeds importantes)',
|
||||
'upon_gone' => 'Quando não estiver mais no feed de notícias principais',
|
||||
'upon_reception' => 'ao receber um artigo',
|
||||
'when' => 'Marcar artigo como lido…',
|
||||
|
@ -235,7 +235,7 @@ return array(
|
|||
'remember_categories' => 'lembrar de abrir as categorias',
|
||||
'unread' => 'Exibir apenas não lido',
|
||||
),
|
||||
'show_fav_unread_help' => 'Aplicar também nas etiquetas',
|
||||
'show_fav_unread_help' => 'Aplicar também nas tags',
|
||||
'sides_close_article' => 'Clicando fora da área do texto do artigo fecha o mesmo',
|
||||
'sort' => array(
|
||||
'_' => 'Ordem de visualização',
|
||||
|
@ -260,7 +260,7 @@ return array(
|
|||
'email' => 'E-mail',
|
||||
'facebook' => 'Facebook', // IGNORE
|
||||
'more_information' => 'Mais informação',
|
||||
'print' => 'Imprimir', // IGNORE
|
||||
'print' => 'Imprimir',
|
||||
'raindrop' => 'Raindrop.io', // IGNORE
|
||||
'remove' => 'Remover método de compartilhamento',
|
||||
'shaarli' => 'Shaarli', // IGNORE
|
||||
|
|
|
@ -61,7 +61,7 @@ return array(
|
|||
'feeds_imported_with_errors' => 'Seus feeds foram importados, mas alguns erros ocorreram / Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.', // DIRTY
|
||||
'file_cannot_be_uploaded' => 'Arquivo não pôde ser enviado',
|
||||
'no_zip_extension' => 'extensão ZIP não está presente em seu servidor.',
|
||||
'zip_error' => 'Um erro ocorreu durante a importação do arquivo ZIP.', // DIRTY
|
||||
'zip_error' => 'Um erro ocorreu durante a importação do arquivo ZIP.',
|
||||
),
|
||||
'profile' => array(
|
||||
'error' => 'Seu perfil não pode ser editado',
|
||||
|
@ -92,7 +92,7 @@ return array(
|
|||
'added' => 'O feed RSS <em>%s</em> foi adicionado',
|
||||
'already_subscribed' => 'Você já está inscrito no <em>%s</em>',
|
||||
'cache_cleared' => 'O cache do feed <em>%s</em> foi limpo',
|
||||
'deleted' => 'o Feed foi deletado',
|
||||
'deleted' => 'o feed foi deletado',
|
||||
'error' => 'O feed não pode ser atualizado',
|
||||
'internal_problem' => 'O feed RSS não pôde ser adicionado. <a href="%s">Verifique os logs do FreshRSS</a> para detalhes. You can try force adding by appending <code>#force_feed</code> to the URL.', // DIRTY
|
||||
'invalid_url' => 'URL <em>%s</em> é inválida',
|
||||
|
@ -115,11 +115,11 @@ return array(
|
|||
'purge_completed' => 'Limpeza completa (%d artigos deletados)',
|
||||
),
|
||||
'tag' => array(
|
||||
'created' => 'A Tag “%s” foi criada.', // DIRTY
|
||||
'error' => 'Label could not be updated!', // TODO
|
||||
'name_exists' => 'O nome da tag já existe.', // DIRTY
|
||||
'renamed' => 'A Tag “%s” foi renomeada para “%s”.', // DIRTY
|
||||
'updated' => 'Label has been updated.', // TODO
|
||||
'created' => 'A Tag “%s” foi criada.',
|
||||
'error' => 'Etiqueta não pode ser atualizada!',
|
||||
'name_exists' => 'O nome da tag já existe.',
|
||||
'renamed' => 'A Tag “%s” foi renomeada para “%s”.',
|
||||
'updated' => 'Etiqueta foi atualizada.',
|
||||
),
|
||||
'update' => array(
|
||||
'can_apply' => 'O FreshRSS será atualizado para a <strong>versão %s</strong>.',
|
||||
|
|
|
@ -203,7 +203,7 @@ return array(
|
|||
'clipboard' => 'Área de transferência',
|
||||
'diaspora' => 'Diaspora*', // IGNORE
|
||||
'email' => 'E-mail',
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)', // TODO
|
||||
'email-webmail-firefox-fix' => 'Email (webmail - correção para o Firefox)',
|
||||
'facebook' => 'Facebook', // IGNORE
|
||||
'gnusocial' => 'GNU social', // IGNORE
|
||||
'jdh' => 'Journal du hacker', // IGNORE
|
||||
|
|
|
@ -17,7 +17,7 @@ return array(
|
|||
'bugs_reports' => 'Reportar Bugs',
|
||||
'credits' => 'Créditos',
|
||||
'credits_content' => 'Alguns elementos de design vieram do <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> Embora FreshRRS não utiliza este framework. <a href="https://gitlab.gnome.org/Archive/gnome-icon-theme-symbolic">Ícones</a> vieram do <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> font police foi criada por <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a>. FreshRSS é baseado no <a href="https://framagit.org/marienfressinaud/MINZ">Minz</a>, um framework PHP.',
|
||||
'documentation' => 'Documentation', // TODO
|
||||
'documentation' => 'Documentação',
|
||||
'freshrss_description' => 'FreshRSS é um RSS feeds aggregator para um host próprio. É leve e fácil de utilizar enquanto é uma ferramenta poderosa e configurável. ',
|
||||
'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">no Github</a>',
|
||||
'license' => 'licença',
|
||||
|
@ -45,7 +45,7 @@ return array(
|
|||
'bookmark_query' => 'Salvar pesquisa atual',
|
||||
'favorites' => 'Favoritos (%s)',
|
||||
'global_view' => 'Visualização global',
|
||||
'important' => 'Important feeds', // TODO
|
||||
'important' => 'Feeds importantes',
|
||||
'main_stream' => 'Stream principal',
|
||||
'mark_all_read' => 'Marcar todos como lidos',
|
||||
'mark_cat_read' => 'Marcar categoria como lida',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Descrição',
|
||||
'empty' => 'Este feed está vazio. Por favor verifique ele ainda é mantido.',
|
||||
'error' => 'Este feed encontra-se com problema. Por favor verifique se ele ainda está disponível e atualize-o.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // IGNORE
|
||||
'help' => 'Arquivo XML',
|
||||
'label' => 'Exportar como OPML',
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Ações do filtro',
|
||||
'help' => 'Escreva um filtro de pesquisa por linha. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -121,62 +126,62 @@ return array(
|
|||
'relative' => 'XPath (relativo do item) para:',
|
||||
'xpath' => 'XPath para:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (notação de ponto)',
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
'_' => 'título do feed',
|
||||
'help' => 'Exemplo: <code>meta.title</code> ou uma string estática: <code>"Meu feed customizado"</code>',
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'Um JSON na notação de ponto usa pontos entre os objetos e colchetes para arrays (e.g. <code>data.items[0].title</code>)',
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
'_' => 'encontrando novidades <strong>itens</strong><br /><small>(mais importante)</small>',
|
||||
'help' => 'Caminho do JSON para o array contendo os itens, e.g. <code>newsItems</code>',
|
||||
),
|
||||
'item_author' => 'item author', // TODO
|
||||
'item_categories' => 'item tags', // TODO
|
||||
'item_author' => 'autor do item',
|
||||
'item_categories' => 'tags dos itens',
|
||||
'item_content' => array(
|
||||
'_' => 'item content', // TODO
|
||||
'help' => 'Key under which the content is found, e.g. <code>content</code>', // TODO
|
||||
'_' => 'conteúdo do item',
|
||||
'help' => 'Chave sob na qual o conteúdo é encontrado, e.g. <code>content</code>',
|
||||
),
|
||||
'item_thumbnail' => array(
|
||||
'_' => 'item thumbnail', // TODO
|
||||
'help' => 'Example: <code>image</code>', // TODO
|
||||
'_' => 'miniatura do item',
|
||||
'help' => 'Exemplo: <code>image</code>',
|
||||
),
|
||||
'item_timeFormat' => array(
|
||||
'_' => 'Custom date/time format', // TODO
|
||||
'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>', // TODO
|
||||
'_' => 'Formato de data/hora customizado',
|
||||
'help' => 'Opcional. Um formato suportado por <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> assim como <code>d-m-Y H:i:s</code>',
|
||||
),
|
||||
'item_timestamp' => array(
|
||||
'_' => 'item date', // TODO
|
||||
'_' => 'data do item',
|
||||
'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>', // TODO
|
||||
),
|
||||
'item_title' => 'item title', // TODO
|
||||
'item_uid' => 'item unique ID', // TODO
|
||||
'item_title' => 'título do item',
|
||||
'item_uid' => 'ID único do item',
|
||||
'item_uri' => array(
|
||||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
'_' => 'Link do item (URL)',
|
||||
'help' => 'Exemplo: <code>permalink</code>',
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'notação de ponto para:',
|
||||
'relative' => 'notação de ponto (relativa ao item) para:',
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'jsonfeed' => 'JSON Feed', // IGNORE
|
||||
'rss' => 'RSS / Atom (padrão)',
|
||||
'xml_xpath' => 'XML + XPath', // TODO
|
||||
'xml_xpath' => 'XML + XPath', // IGNORE
|
||||
),
|
||||
'maintenance' => array(
|
||||
'clear_cache' => 'Limpar o cache',
|
||||
'clear_cache_help' => 'Limpar o cache em disco deste feed',
|
||||
'reload_articles' => 'Recarregar artigos',
|
||||
'reload_articles_help' => 'Recarregar artigos e buscar conteúdo completo', // DIRTY
|
||||
'reload_articles_help' => 'Recarregar artigos e buscar conteúdo completo',
|
||||
'title' => 'Manutenção',
|
||||
),
|
||||
'max_http_redir' => 'Quantidade máxima de redirecionamentos HTTP',
|
||||
'max_http_redir_help' => 'Defina como 0 ou deixe em branco para desabilitar, -1 para redirecionamentos ilimitados',
|
||||
'method' => array(
|
||||
'_' => 'HTTP Method', // TODO
|
||||
'_' => 'Método HTTP',
|
||||
),
|
||||
'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>', // TODO
|
||||
'method_postparams' => 'Payload for POST', // TODO
|
||||
'method_help' => 'O conteúdo do POST tem suporte automático para <code>application/x-www-form-urlencoded</code> e <code>application/json</code>',
|
||||
'method_postparams' => 'Conteúdo do POST',
|
||||
'moved_category_deleted' => 'Quando você deleta uma categoria, seus feeds são automaticamente classificados como <em>%s</em>.',
|
||||
'mute' => 'silenciar',
|
||||
'no_selected' => 'Nenhum feed selecionado.',
|
||||
|
@ -185,11 +190,11 @@ return array(
|
|||
'_' => 'Visibilidade',
|
||||
'archived' => 'Não exibir (arquivado)',
|
||||
'category' => 'Mostrar na sua categoria',
|
||||
'important' => 'Show in important feeds', // TODO
|
||||
'important' => 'Mostrar feeds importantes',
|
||||
'main_stream' => 'Mostrar na tela principal',
|
||||
),
|
||||
'proxy' => 'Defina um proxy para buscar esse feed',
|
||||
'proxy_help' => 'Selecione um protocolo (e.g: SOCKS5) e digite o endereço do proxy (e.g: <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)', // DIRTY
|
||||
'proxy_help' => 'Selecione um protocolo (e.g: SOCKS5) e digite o endereço do proxy (e.g: <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)',
|
||||
'selector_preview' => array(
|
||||
'show_raw' => 'Mostrar fonte',
|
||||
'show_rendered' => 'Mostrar conteúdo',
|
||||
|
@ -240,7 +245,7 @@ return array(
|
|||
'subscription_tools' => 'Ferramentas de inscrição',
|
||||
),
|
||||
'tag' => array(
|
||||
'auto_label' => 'Add this label to new articles', // TODO
|
||||
'auto_label' => 'Adicione esta etiqueta para novos artigos',
|
||||
'name' => 'Nome',
|
||||
'new_name' => 'Nome novo',
|
||||
'old_name' => 'Nome antigo',
|
||||
|
|
|
@ -66,6 +66,11 @@ return array(
|
|||
'description' => 'Описание',
|
||||
'empty' => 'Лента пустая. Пожалуйста, убедитесь, что её до сих пор обслуживают.',
|
||||
'error' => 'С этой лентой возникла проблема. Пожалуйста, убедитесь, что она всегда досягаема. Затем снова обновите её.',
|
||||
'export-as-opml' => array(
|
||||
'download' => 'Download', // TODO
|
||||
'help' => 'XML file', // TODO
|
||||
'label' => 'Export as OPML', // TODO
|
||||
),
|
||||
'filteractions' => array(
|
||||
'_' => 'Действия фильтрации',
|
||||
'help' => 'Введите по одному поисковому фильтру в строке. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.', // DIRTY
|
||||
|
@ -121,13 +126,13 @@ return array(
|
|||
'relative' => 'XPath (относительно элемента) для:',
|
||||
'xpath' => 'XPath для:',
|
||||
),
|
||||
'json_dotpath' => array(
|
||||
'_' => 'JSON (Dotted paths)', // TODO
|
||||
'json_dotnotation' => array(
|
||||
'_' => 'JSON (dot notation)', // TODO
|
||||
'feed_title' => array(
|
||||
'_' => 'feed title', // TODO
|
||||
'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>', // TODO
|
||||
),
|
||||
'help' => 'A JSON dotted path uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)', // TODO
|
||||
'item' => array(
|
||||
'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>', // TODO
|
||||
'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>', // TODO
|
||||
|
@ -156,8 +161,8 @@ return array(
|
|||
'_' => 'item link (URL)', // TODO
|
||||
'help' => 'Example: <code>permalink</code>', // TODO
|
||||
),
|
||||
'json' => 'Dotted Path for:', // TODO
|
||||
'relative' => 'Dotted Path (relative to item) for:', // TODO
|
||||
'json' => 'dot notation for:', // TODO
|
||||
'relative' => 'dot notated path (relative to item) for:', // TODO
|
||||
),
|
||||
'jsonfeed' => 'JSON Feed', // TODO
|
||||
'rss' => 'RSS / Atom (по умолчанию)',
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue