fluent-reader Documentation

Modern desktop RSS reader built with Electron, React, and Fluent UI

9,725 stars TypeScript TypeScript 1 file ยท ~44,641 tokens #electron#linux#macos#react#rss#rss-reader#typescript#windows
RAW Doc

File: README.md

Fluent Reader


Download

For Windows 10 users, the recommended way of installation is through Microsoft Store.
This enables auto-update and experimental ARM64 support.
macOS users can also get Fluent Reader from the Mac App Store.

If you are using Linux or an older version of Windows, you can get Fluent Reader from GitHub releases.

Mobile App

The repo of the mobile version of this app can be found here.

Features

  • A modern UI inspired by Fluent Design System with full dark mode support.
  • Read locally or sync with self-hosted services compatible with Fever or Google Reader API.
  • Sync with RSS Services including Inoreader, Feedbin, The Old Reader, BazQux Reader, and more.
  • Importing or exporting OPML files, full application data backup & restoration.
  • Read the full content with the built-in article view or load webpages by default.
  • Search for articles with regular expressions or filter by read status.
  • Organize your subscriptions with folder-like groupings.
  • Single-key keyboard shortcuts.
  • Hide, mark as read, or star articles automatically as they arrive with regular expression rules.
  • Fetch articles in the background and send push notifications.

Support for other RSS services are under fundraising.

Development

Contribute

Help make Fluent Reader better by reporting bugs or opening feature requests through GitHub issues.

You can also help internationalize the app by providing translations into additional languages.
Refer to the repo of react-intl-universal to get started on internationalization.

If you enjoy using this app, consider supporting its development by donating through GitHub Sponsors, Paypal, or Alipay.

Build from source

bash
# Install dependencies
npm install

# Compile ts & dependencies
npm run build

# Start the application
npm run electron

# Generate certificate for signature
electron-builder create-self-signed-cert
# Package the app for Windows
npm run package-win

Developed with

License

BSD


File: AGENTS.md

Fluent Reader

Overview

Fluent Reader is a modern desktop RSS reader built with Electron + React + Redux + TypeScript. It targets Windows, macOS (including Mac App Store), and Linux. The UI uses Microsoft's Fluent UI (v7) component library. Article and source data is stored in a SQLite database (via better-sqlite3 in the main process, accessed from the renderer via drizzle-orm sqlite-proxy). Settings are persisted with electron-store. Articles are parsed with Mercury Parser and fetched via rss-parser.

The repository is ~80 TypeScript/TSX source files under src/. There is no ESLint โ€” formatting is handled solely by Prettier.

Build & Validate

Always run commands from the repository root.

Install dependencies

bash
npm install

Run this before every build. The lockfile (package-lock.json) is gitignored (.lock in .gitignore), so npm install resolves from package.json each time.

Build (compile TypeScript via Webpack)

bash
npm run build

This runs webpack --config ./webpack.config.js, which produces three bundles in dist/:

  • electron.js โ€” Electron main process (from src/electron.ts)
  • preload.js โ€” Preload script (from src/preload.ts)
  • index.js + index.html โ€” Renderer/React app (from src/index.tsx)

Build takes ~30 seconds. A successful build ends with three "compiled successfully" lines โ€” one per webpack config entry.

Generate DB migrations (only needed when schema changes)

bash
npm run drizzle:generate

This runs drizzle-kit generate using drizzle.config.ts and writes SQL migration files to dist/drizzle/. Run this whenever src/db/schema.ts changes, then commit the generated files. The dist/drizzle/ directory is not gitignored โ€” migration files are tracked as source.

Run the app

bash
npm run electron

Or combined install + build + run:

bash
npm run start

Format check (Prettier)

bash
npx prettier --check .

To auto-fix formatting:

bash
npm run format

The Prettier config is in .prettierrc.yml: 4-space tabs, no semicolons, JSX bracket on same line, arrow parens avoided, consistent quote props. .prettierignore excludes dist/, bin/, node_modules/, HTML, Markdown, and most JSON (except src/**/*.json).

Tests

A private suite of E2E tests is available for project maintainers. Run the suite from the repository root:

bash
npm --prefix tests/e2e test

See tests/README.md for test setup details.

Packaging (not needed for typical changes)

  • Windows: npm run package-win
  • macOS: npm run package-mac
  • Linux: npm run package-linux
  • Mac App Store: npm run package-mas (requires provisioning profile and entitlements in build/)

CI/CD

Two GitHub Actions workflows in .github/workflows/:

  • release-main.yml โ€” Triggered on version tags (v*). Runs on windows-latest. Steps: npm install โ†’ npm run build โ†’ npm run package-win-ci. Uploads .exe and .zip to a draft GitHub release.
  • release-linux.yml โ€” Triggered when a release is published. Runs on ubuntu-latest. Steps: npm install โ†’ npm run build โ†’ npm run package-linux. Uploads .AppImage.

Both CI pipelines run npm install then npm run build. There are no lint or test steps in CI.

Project Layout

Root files

File Purpose
package.json Dependencies, scripts, metadata (v1.2.2)
webpack.config.js Three webpack configs: main, preload, renderer
tsconfig.json TypeScript: JSX=react, target=ES2019, module=CommonJS, resolveJsonModule
drizzle.config.ts Drizzle Kit config โ€” schema at src/db/schema.ts, migrations output to dist/drizzle/
electron-builder.yml Electron Builder config for Win/Mac/Linux distribution
electron-builder-mas.yml Electron Builder config for Mac App Store
.prettierrc.yml Prettier formatting rules
.prettierignore Files excluded from Prettier

`src/` โ€” All source code

Path Description
electron.ts Electron main process entry. Creates app menu, initializes WindowManager, calls initDB.
preload.ts Preload script. Exposes settingsBridge, utilsBridge, and dbBridge via contextBridge.
index.tsx Renderer entry. Mounts React <Root> with Redux ``.
schema-types.ts Shared TypeScript enums and types (ViewType, ThemeSettings, StoredRule, etc.)
db/schema.ts Drizzle schema โ€” defines sourcesTable and itemsTable for better-sqlite3.
bridges/ IPC bridges between renderer and main process (settings.ts, utils.ts, db.ts).
main/ Electron main-process modules: window.ts (BrowserWindow), settings.ts (electron-store + IPC handlers), db.ts (SQLite init, migrations, IPC handler for db:execute, export/import), utils.ts (IPC utilities), touchbar.ts, update-scripts.ts.
scripts/ Renderer-side logic (runs in browser context).
scripts/reducer.ts Root Redux store โ€” combines: sources, items, feeds, groups, page, service, app.
scripts/settings.ts Theme management, locale setup, Fluent UI theming.
scripts/db.ts Drizzle sqlite-proxy database instance (database). Also contains the one-time Lovefieldโ†’SQLite migration (init()), which reads Lovefield IndexedDB, inserts into SQLite via drizzle proxy, then deletes the IndexedDB databases.
scripts/utils.ts Shared utilities and type helpers.
scripts/models/ Redux slices: app.ts, feed.ts, group.ts, item.ts, page.ts, rule.ts, service.ts, source.ts, plus services/ for RSS service integrations.
scripts/i18n/ Internationalization. _locales.ts maps locale codes to JSON files. 19 languages. Translations are JSON files (e.g., en-US.json). Uses react-intl-universal.
components/ React UI components. root.tsx is the top-level layout. Sub-dirs: cards/ (article card variants), feeds/ (feed list views), settings/ (settings panels), utils/ (shared UI helpers).
containers/ Redux-connected container components that map state/dispatch to component props.

`dist/` โ€” Build output + static assets

The dist/ directory contains both webpack output and checked-in static assets. Files like dist/icons/, dist/article/, dist/styles/, dist/index.css, dist/fonts.vbs, dist/fontlist, and dist/drizzle/ are static and tracked in git. The webpack-generated files (*.js, *.js.map, *.html, *.LICENSE.txt) are gitignored.

`build/` โ€” Packaging resources

Contains app icons (build/icons/), macOS entitlements plists, provisioning profiles, and resignAndPackage.sh for Mac App Store builds. Also has build/appx/ for Windows Store assets.

Architecture Notes

  • IPC pattern: The renderer never imports Electron directly. All Electron APIs are accessed through src/bridges/ which are exposed via contextBridge in preload.ts. Settings state flows: renderer โ†’ bridge (ipcRenderer) โ†’ main/settings.ts (ipcMain handlers) โ†’ electron-store.
  • Database: SQLite via better-sqlite3 in the main process. The renderer accesses it through a single db:execute IPC handler using drizzle-orm's sqlite-proxy pattern. The drizzle instance in the renderer (database from scripts/db.ts) sends all queries through window.db.execute(sql, params, method). Schema is defined in src/db/schema.ts; migrations live in dist/drizzle/ and are applied at startup via migrate() in main/db.ts. The SQLite file is colocated with electron-store's config.json (i.e., path.dirname(store.path)).
  • Rules storage: Rules are stored in electron-store under the sourceRules key as a StoredRules map. Each value is an ordered StoredRule[]. setRulesForTarget() replaces one target's rules in the main process; an empty array removes that entry. getAllRules() loads the map. Source entries are attached to RSSSource.rules during initSources().
  • State management: Redux with redux-thunk for async actions. The store shape is defined by RootState in scripts/reducer.ts. Each model file in scripts/models/ exports its own reducer, action types, and thunk action creators.
  • i18n: To add or modify translations, edit JSON files in src/scripts/i18n/. Register new locales in _locales.ts.
  • RSS service integrations: Located in src/scripts/models/services/ (logic) and src/components/settings/services/ (UI). Supported: Fever, Google Reader API (GReader), Inoreader, Feedbin, Miniflux, Nextcloud.

Key Conventions

  • All source is TypeScript (.ts/.tsx). No plain JavaScript in src/.
  • No semicolons. 4-space indentation. See .prettierrc.yml.
  • Enums use const enum pattern in schema-types.ts.
  • Components use both class components and function components (no strict rule).
  • Redux containers in containers/ use connect() from react-redux.
  • Griffel styling: Use makeStyles from @griffel/react for component-scoped styles. Import mergeClasses for combining classes. Prefer Griffel over adding new CSS rules to dist/styles/.
  • styleClass prop convention: Reusable components expose a styleClass?: string prop applied to the component's main element, allowing parents to pass Griffel-generated class overrides. If a component has multiple customizable elements, use element-specific prop names (e.g., buttonStyleClass?: string). Combine base and override classes with mergeClasses.
  • Flat button components: FlatButton, FlatButtonGroup, and FlatButtonSeparator in src/components/utils/ implement the Griffel + styleClass pattern. Use these instead of raw / with CSS class names for toolbar-style buttons.

Validation Checklist

After any code change, always run:

bash
npm install && npm run build && npx prettier --check .

All three must succeed. If the build fails, fix TypeScript errors. If prettier fails, run npm run format then verify.

Run the E2E test suite if available at the end of sessions to check for regressions, and update the test suite to cover any new features built.

Trust these instructions. Only search the codebase if information here is incomplete or found to be incorrect.


File: electron-builder-mas.yml

appId: me.hyliu.fluent-reader-mas
buildVersion: 34
productName: Fluent Reader
copyright: Copyright ยฉ 2020 Haoyuan Liu
files:
- "./dist//*"
- "!./dist/fonts.vbs"
- "!
/.js.map"
- "!node_modules/better-sqlite3/prebuilds/linux
.node"
- "!node_modules/better-sqlite3/prebuilds/win32-.node"
asarUnpack:
- "./dist/fontlist"
- "node_modules/better-sqlite3/**/
"
forceCodeSigning: true
directories:
output: "./bin/${platform}/${arch}/"
mac:
extendInfo:
ElectronTeamID: P2CG8QD3BP
# Both builds contain both prebuilds; better-sqlite3 selects process.arch.
x64ArchFiles: "Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/prebuilds/darwin-*.node"
darkModeSupport: true
target:
- dmg
category: public.app-category.news
electronLanguages:
- zh_CN
- zh_TW
- en
- fr
- es
- de
- tr
- ja
- sv
- uk
- it
- nl
- ko
- ru
- pt_BR
- pt_PT
- cs
- pl
minimumSystemVersion: 13.0.0
mas:
identity: "Haoyuan Liu (P2CG8QD3BP)"
artifactName: "${productName}-mac_store.pkg"
entitlements: build/entitlements.mas.plist
entitlementsInherit: build/entitlements.mas.inherit.plist
entitlementsLoginHelper: build/entitlements.mas.loginhelper.plist
# Preserve the entitlements used by the previous manual signing flow.
# Automatically added identity entitlements require a matching profile.
preAutoEntitlements: false
hardenedRuntime: false
gatekeeperAssess: false


File: electron-builder.yml

appId: me.hyliu.fluentreader
productName: Fluent Reader
copyright: Copyright ยฉ 2020 Haoyuan Liu
files:
- "./dist//*"
- "!./dist/fontlist"
- "!
/.js.map"
directories:
output: "./bin/${platform}/${arch}/"
mac:
files:
- "./dist/**/
"
- "!./dist/fontlist"
- "!**/.js.map"
- "!node_modules/better-sqlite3/prebuilds/linux
.node"
- "!node_modules/better-sqlite3/prebuilds/win32-.node"
# Both builds contain both prebuilds; better-sqlite3 selects process.arch.
x64ArchFiles: "Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/prebuilds/darwin-
.node"
minimumSystemVersion: 13.0.0
darkModeSupport: true
hardenedRuntime: true
gatekeeperAssess: false
entitlements: "./build/entitlements.mac.plist"
entitlementsInherit: "./build/entitlements.mac.plist"
notarize: true
target:
- dmg
category: public.app-category.news
electronLanguages:
- zh_CN
- zh_TW
- en
- fr
- es
- de
- tr
- ja
- sv
- uk
- it
- nl
- ko
- ru
- pt_BR
- pt_PT
- cs
- pl
win:
target:
- nsis
- zip
appx:
applicationId: FluentReader
identityName: 25286HaoyuanLiu.FluentReader
publisher: CN=FD70E7FA-E5AC-41C4-B9C4-6E8708A6616A
backgroundColor: transparent
languages:
- zh-CN
- zh-TW
- en-US
- fr-FR
- es
- de
- tr
- ja
- sv
- uk
- it
- nl
- ko
- ru
- pt-BR
- pt-PT
- cs
- pl
showNameOnTiles: true
setBuildNumber: true
nsis:
oneClick: false
perMachine: true
allowToChangeInstallationDirectory: true
deleteAppDataOnUninstall: true
linux:
target:
- AppImage
icon: build/icons
category: Utility
desktop:
entry:
StartupWMClass: fluent-reader


File: package.json

{
"name": "fluent-reader",
"version": "1.3.1",
"description": "Modern desktop RSS reader",
"main": "./dist/electron.js",
"scripts": {
"build": "webpack --config ./webpack.config.js",
"electron": "electron ./dist/electron.js",
"start": "npm run build && npm run electron",
"format": "prettier --write --list-different .",
"drizzle:generate": "drizzle-kit generate",
"update:mercury": "node build/update-mercury.js",
"postinstall": "install-electron && electron-builder install-app-deps",
"package-win": "electron-builder -w appx:x64 && electron-builder -w appx:arm64",
"package-win-ci": "electron-builder -w --x64 -p never",
"package-mac": "electron-builder --mac --universal",
"package-mas": "bash build/resignAndPackage.sh",
"package-linux": "electron-builder --linux --x64 -p never"
},
"keywords": [],
"author": "Haoyuan Liu",
"license": "BSD-3-Clause",
"sideEffects": [
"*.css"
],
"repository": "github:yang991178/fluent-reader",
"devDependencies": {
"@fluentui/react": "^7.126.2",
"@fluentui/react-components": "^9.73.7",
"@fluentui/react-migration-v8-v9": "^9.10.9",
"@fluentui/react-shared-contexts": "^9.26.2",
"@griffel/react": "^1.6.1",
"@griffel/webpack-plugin": "^4.0.3",
"@jocmp/mercury-parser": "^3.1.1",
"@types/lovefield": "^2.1.3",
"@types/nedb": "^1.8.9",
"@types/react": "^16.9.35",
"@types/react-dom": "^16.9.8",
"@types/react-redux": "^7.1.9",
"css-loader": "^7.1.4",
"drizzle-kit": "^0.31.0",
"drizzle-orm": "^0.45.2",
"electron": "^44.7.0",
"electron-builder": "^26.15.3",
"electron-react-devtools": "^0.5.3",
"electron-store": "^11.0.0",
"electron-window-state": "^5.0.3",
"font-list": "^1.4.2",
"html-webpack-plugin": "^5.5.3",
"js-md5": "^0.7.3",
"lovefield": "^2.1.12",
"mini-css-extract-plugin": "^2.10.2",
"node-polyfill-webpack-plugin": "^4.0.0",
"prettier": "2.3.2",
"qrcode.react": "^1.0.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-intl-universal": "^2.2.5",
"react-redux": "^7.2.0",
"redux": "^4.0.5",
"redux-devtools": "^3.5.0",
"redux-thunk": "^2.3.0",
"reselect": "^4.0.0",
"rss-parser": "^3.13.0",
"ts-loader": "^9.5.7",
"typescript": "^6.0.2",
"webpack": "^5.105.4",
"webpack-cli": "^7.0.2"
},
"dependencies": {
"better-sqlite3": "^13.0.3"
}
}


File: tsconfig.json

{
"compilerOptions": {
"jsx": "react",
"resolveJsonModule": true,
"esModuleInterop": true,
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Bundler",
"strict": false
},
"exclude": ["node_modules", "tests"]
}


File: .prettierrc.yml

tabWidth: 4
semi: false
jsxBracketSameLine: true
arrowParens: "avoid"
quoteProps: "consistent"


File: src/scripts/i18n/README.md

Internationalization

Currently, Fluent Reader supports the following languages.

Locale Language Credit
en-US English @yang991178
cs ฤŒeลกtina @vikdevelop
es Espaรฑol @kant
fr-FR Franรงais @Toinane
fi-FI Suomi @SUPERHAMSTERI
zh-CN ไธญๆ–‡๏ผˆ็ฎ€ไฝ“๏ผ‰ @yang991178
zh-TW ไธญๆ–‡๏ผˆ็น้ซ”๏ผ‰ @jerryc127
ja ๆ—ฅๆœฌ่ชž @tiancheng2000
de Deutsch @NoNamePro0
sv Svenska @eson57
tr Tรผrkรงe @mustafagenc
uk Ukrainian @thevllad
nl Nederlands @Vistaus
it Italiano @andrewasd
pt-BR Portuguรชs do Brasil @fabianski7
pt-PT Portuguรชs de Portugal @0x1336
ko ํ•œ๊ธ€ @1drive
ru Russian @nxblnd
pl Polish @Zwatotem

Refer to the repo of react-intl-universal to get started on internationalization.


File: src/scripts/i18n/cs.json

{
"allArticles": "Vลกechny ฤlรกnky",
"add": "Pล™idat",
"create": "Vytvoล™it",
"icon": "Ikona",
"name": "Nรกzev",
"openExternal": "Otevล™รญt externฤ›",
"emptyName": "Toto pole nesmรญ bรฝt prรกzdnรฉ.",
"emptyField": "Toto pole nesmรญ bรฝt prรกzdnรฉ.",
"edit": "Upravit",
"delete": "Odstranit",
"followSystem": "Podle systรฉmu",
"more": "Vรญce",
"close": "Zavล™รญt",
"search": "Hledat",
"loadMore": "Naฤรญst vรญce",
"dangerButton": "Potvrdit {action}?",
"confirmMarkAll": "Opravdu chcete oznaฤit vลกechny ฤlรกnky na tรฉto strรกnce jako pล™eฤtenรฉ?",
"confirm": "Potvrdit",
"cancel": "Zruลกit",
"default": "Vรฝchozรญ",
"time": {
"now": "nynรญ",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, =1 {# minute} other {# minutes}}",
"hour": "{h, plural, =1 {# hour} other {# hours}}",
"day": "{d, plural, =1 {# day} other {# days}}"
},
"log": {
"empty": "ลฝรกdnรฉ notifikace",
"fetchFailure": "Nepodaล™ilo se naฤรญst zdroj "{name}".",
"fetchSuccess": "รšspฤ›ลกnฤ› naฤten {count, plural, =1 {# article} other {# articles}}.",
"networkError": "Doลกlo k chybฤ› sรญtฤ›.",
"parseError": "Pล™i analรฝze kanรกlu XML doลกlo k chybฤ›.",
"syncFailure": "Doลกlo k chybฤ› pล™i synchronizaci se sluลพbou"
},
"nav": {
"menu": "Menu",
"refresh": "Naฤรญst znovu",
"markAllRead": "Oznaฤit vลกe jako pล™eฤtenรฉ",
"notifications": "Notifikace",
"view": "Zobrazit",
"settings": "Nastavenรญ",
"minimize": "Maximalizovat",
"maximize": "Minimalizovat"
},
"menu": {
"close": "Zavล™รญt menu",
"subscriptions": "Odbฤ›ry"
},
"article": {
"error": "Nepodaล™ilo se naฤรญst ฤlรกnek.",
"reload": "Naฤรญst znovu?",
"empty": "ลฝรกdnรฉ ฤlรกnky",
"untitled": "(Bez titulku)",
"hide": "Skrรฝt ฤlรกnek",
"unhide": "Odkrรฝt ฤlรกnek",
"markRead": "Oznaฤit jako pล™eฤtenรฉ",
"markUnread": "Oznaฤit jako nepล™eฤtenรฉ",
"markAbove": "Oznaฤte vรฝลกe uvedenรฉ jako pล™eฤtenรฉ",
"markBelow": "Oznaฤte nรญลพe uvedenรฉ jako pล™eฤtenรฉ",
"star": "Ohvฤ›zdiฤkovat",
"unstar": "Odstranit hvฤ›zdu",
"fontSize": "Velikost pรญsma",
"loadWebpage": "Naฤรญst webovou strรกnku",
"loadFull": "Naฤรญst vลกechen obsah",
"notify": "Upozornit, pokud je naฤteno na pozadรญ",
"dontNotify": "Neupozorลˆovat",
"textDir": "Smฤ›r textu",
"LTR": "Zleva doprava",
"RTL": "Zprava doleva",
"Vertical": "Vertikรกlnฤ›",
"font": "Pรญsmo"
},
"context": {
"share": "Sdรญlet",
"read": "ฤŒรญst",
"copyTitle": "Kopรญrovat titulek",
"copyURL": "Kopรญrovat odkaz",
"copy": "Kopรญrovat",
"search": "Hledat "{text}" on {engine}",
"view": "Zobrazit",
"cardView": "Karty",
"listView": "Seznam",
"magazineView": "ฤŒasopis",
"compactView": "Kompaktnรญ",
"filter": "Filtrovรกnรญ",
"unreadOnly": "Jen nepล™eฤtenรฉ",
"starredOnly": "Jen ohvฤ›zdiฤkovanรฉ",
"fullSearch": "Vyhledat v plnรฉm textu",
"showHidden": "Zobrazit skrytรฉ ฤlรกnky",
"manageSources": "Spravovat zdroje",
"saveImageAs": "Uloลพit obrรกzek jako โ€ฆ",
"copyImage": "Kopรญrovat obrรกzek",
"copyImageURL": "Kopรญrovat adresu obrรกzku",
"caseSensitive": "Rozliลกovat velkรก a malรก pรญsmena",
"showCover": "Zobrazit kryt",
"showSnippet": "Zobrazit รบryvek",
"fadeRead": " Vyblednout ฤtennรฉ ฤlรกnky"
},
"searchEngine": {
"name": "Vyhledรกvaฤ",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Doลกlo k chybฤ› pล™i zapisovรกnรญ souboru.",
"name": "Nastavenรญ",
"fetching": "Probรญhรก aktualizace zdrojลฏ, prosรญm vyฤkejte โ€ฆ",
"exit": "Opustit nastavenรญ",
"sources": "Zdroje",
"grouping": "Skupiny",
"rules": "Pravidla",
"service": "Sluลพba",
"app": "Pล™edvolby",
"about": "O aplikaci",
"version": "Verze",
"shortcuts": "Zkratky",
"openSource": "Otevล™enรฝ zdrojovรฝ kรณd",
"feedback": "Zpฤ›tnรก vazba"
},
"sources": {
"serviceWarning": "Zde importovanรฉ nebo pล™idanรฉ zdroje nebudou synchronizovรกny s vaลกรญ sluลพbou.",
"serviceManaged": "Tento zdroj spravuje vaลกe sluลพba.",
"untitled": "Zdroj",
"errorAdd": "Doลกlo k chybฤ› pล™i pล™idรกvรกnรญ zdroje.",
"errorParse": "Pล™i analรฝze souboru OPML doลกlo k chybฤ›.",
"errorParseHint": "Ujistฤ›te se, ลพe soubor nenรญ poลกkozenรฝ a je kรณdovรกn pomocรญ UTF-8.",
"errorImport": "Objevila se chyba pล™i importovรกnรญ {count, plural, =1 {# source} other {# sources}}.",
"exist": "Tento zdroj jiลพ existuje.",
"opmlFile": "Soubor OPML",
"name": "Nรกzev zdroje",
"editName": "Upravit nรกzev",
"fetchFrequency": "Limit frekvence naฤรญtรกnรญ",
"unlimited": "Neomezenรฉ",
"openTarget": "Vรฝchozรญ otevล™enรฝ cรญl pro ฤlรกnky",
"delete": "Odstranit zdroj",
"add": "Pล™idat zdroj",
"import": "Importovat",
"export": "Exportovat",
"rssText": "Celรฝ text RSS",
"loadWebpage": "Naฤรญst webovou strรกnku",
"inputUrl": "Zadejte URL adresu",
"badIcon": "Nesprรกvnรก ikona",
"badUrl": "Nesprรกvnรก URL adresa",
"deleteWarning": "Zdroj a vลกechny uloลพenรฉ ฤlรกnky budou odstranฤ›ny.",
"selected": "Vybranรฝ zdroj",
"selectedMulti": "Vybrat vรญce zdrojลฏ",
"hidden": "Ukryto v "all articles""
},
"groups": {
"exist": "Tato skupina jiลพ existuje",
"type": "Typ",
"group": "Skupina",
"source": "Zdroj",
"capacity": "Kapacita",
"exitGroup": "Zpฤ›t na skupiny",
"deleteSource": "Odstranit ze skupiny",
"sourceHint": "Pล™etaลพenรญm zdrojลฏ zmฤ›nรญte jejich poล™adรญ.",
"selectAllSources": "Vybrat vลกechny zdroje",
"create": "Vytvoล™it skupinu",
"selectedGroup": "Vybranรก skupina",
"selectedSource": "Vybranรฝ zdroj",
"enterName": "Zadejte nรกzev",
"editName": "Editovat nรกzev",
"editGroup": "Upravit skupinu",
"deleteGroup": "Odstranit skupinu",
"chooseGroup": "Vybrat skupinu",
"addToGroup": "Pล™idat do ...",
"groupHint": "Dvojklikem na skupinu upravรญte zdroje. Pล™etaลพenรญm zmฤ›nรญte poล™adรญ."
},
"rules": {
"intro": "Automatickรฉ oznaฤovรกnรญ ฤlรกnkลฏ nebo odesรญlรกnรญ oznรกmenรญ pomocรญ regulรกrnรญch vรฝrazลฏ.",
"help": "Zjistit vรญce",
"target": "Cรญl",
"selectTarget": "Vyberte cรญl",
"new": "Novรฉ pravidlo",
"title": "Titulek",
"content": "Obsah",
"fullSearch": "Titulek nebo obsah",
"creator": "Autor",
"match": "odpovรญdรก",
"notMatch": "neodpovรญdรก",
"regex": "Pravidelnรฝ vรฝraz",
"badRegex": "Nesprรกvnรฝ pravidelnรฝ vรฝraz.",
"action": "Akce",
"selectAction": "Vybrat akce",
"hint": "Pravidla se pouลพijรญ na novฤ› naฤtenรฉ ฤlรกnky: vลกechny ฤlรกnky โ†’ skupina โ†’ zdroj. Provรกdฤ›jรญ se shora dolลฏ; pozdฤ›jลกรญ akce majรญ pล™ednost. Poล™adรญ zmฤ›ลˆte pล™etaลพenรญm. Testy zahrnujรญ pravidla ลกirลกรญch cรญlลฏ.",
"test": "Testovacรญ pravidla",
"searchField": "Pole hledรกnรญ",
"matchCondition": "Podmรญnka shody",
"save": "Uloลพit pravidlo",
"selectAll": "Vybrat vลกechna pravidla",
"selectRule": "Vybrat pravidlo",
"saveError": "Pravidla se nepodaล™ilo uloลพit. Zkuste to znovu."
},
"service": {
"intro": "Synchronizace mezi zaล™รญzenรญmi pomocรญ sluลพeb RSS.",
"select": "Vyberte sluลพbu",
"suggest": "Navrhnout novou sluลพbu",
"overwriteWarning": "Mรญstnรญ zdroje budou odstranฤ›ny, pokud ve sluลพbฤ› existujรญ.",
"groupsWarning": "Skupiny nejsou automaticky synchronizovรกny se sluลพbou.",
"rateLimitWarning": "Abyste se vyhnuli omezovรกnรญ rychlosti, musรญte si vytvoล™it vlastnรญ klรญฤ API.",
"removeAd": "Odstranit reklamu",
"endpoint": "Koncovรฝ bod",
"username": "Uลพivatelskรฉ jmรฉno",
"password": "Heslo",
"unchanged": "Nezmฤ›nฤ›no",
"fetchLimit": "Limit synchronizace",
"fetchLimitNum": "{count} nejnovฤ›jลกรญch ฤlรกnkลฏ",
"importGroups": "Importovat skupiny",
"failure": "Nedaล™รญ se pล™ipojit ke sluลพbฤ›",
"failureHint": "Zkontrolujte konfiguraci sluลพby nebo stav sรญtฤ›.",
"fetchUnlimited": "Neomezenรฝ (nedoporuฤuje se)",
"exportToLite": "Exportovat do Fluent reader Lite"
},
"app": {
"cleanup": "Vyฤistit",
"cache": "Vyฤistit mezipamฤ›ลฅ",
"cacheSize": "Velikost {size} dat v mezipamฤ›ti",
"deleteChoices": "Odstranit ฤlรกnky pล™ed ... dny",
"confirmDelete": "Odstranit",
"daysAgo": "{days, plural, =1 {# day} other {# days}} ago",
"deleteAll": "Odstranit vฤ›echny ฤlรกnky",
"calculatingSize": "Probรญhรก vรฝpoฤet velikosti...",
"itemSize": "Pล™ibliลพnฤ› {size} mรญstnรญho รบloลพiลกtฤ› zabรญrajรญ ฤlรกnky",
"confirmImport": "Opravdu chcete importovat data ze zรกloลพnรญho souboru? Vลกechna aktuรกlnรญ data budou vymazรกna.",
"data": "Data aplikace",
"backup": "Zรกloha",
"restore": "Obnovit",
"frData": "Data aplikace Fluent Reader",
"language": "Zobrazovanรฝ jazyk",
"theme": "Motiv",
"lightTheme": "Svฤ›tlรฝ motiv",
"darkTheme": "Tmavรฝ motiv",
"enableProxy": "Povolit Proxy",
"badUrl": "Nesprรกvnรก URL",
"pac": "PAC Adresa",
"setPac": "Nastavit PAC",
"pacHint": "U proxy serverลฏ Socks se doporuฤuje, aby PAC vracel "SOCKS5" pro DNS na stranฤ› proxy serveru. Vypnutรญ proxy vyลพaduje restart.",
"fetchInterval": "Automatickรฝ interval naฤรญtรกnรญ",
"never": "Nikdy"
}
}


File: src/scripts/i18n/de.json

{
"allArticles": "Alle Artikel",
"add": "Hinzufรผgen",
"create": "Erstellen",
"icon": "Icon",
"name": "Name",
"openExternal": "Extern รถffnen",
"emptyName": "Dieses Feld darf nicht leer sein.",
"emptyField": "Dieses Feld darf nicht leer sein.",
"edit": "Bearbeiten",
"delete": "Entfernen",
"followSystem": "Systemstandard verwenden",
"more": "Mehr",
"close": "SchlieรŸen",
"search": "Suchen",
"loadMore": "Mehr laden",
"dangerButton": "Wirklich {action}?",
"confirmMarkAll": "Mรถchtest du wirklich alle Artikel als gelesen markieren?",
"confirm": "Bestรคtigen",
"cancel": "Abbrechen",
"time": {
"now": "gerade eben",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, =1 {# minute} other {# minutes}}",
"hour": "{h, plural, =1 {# hour} other {# hours}}",
"day": "{d, plural, =1 {# day} other {# days}}"
},
"log": {
"empty": "Keine Benachrichtigungen",
"fetchFailure": "Fehler beim Laden von "{name}".",
"fetchSuccess": "Erfolgreich {count, plural, =1 {# Artikel} other {# Artikel}} geladen.",
"networkError": "Netzwerk-Fehler aufgetreten.",
"parseError": "Fehler beim Lesen des XML-Feeds.",
"syncFailure": "Fehler beim Synchronisieren."
},
"nav": {
"menu": "Menรผ",
"refresh": "Neu laden",
"markAllRead": "Alles als gelesen markieren",
"notifications": "Benachrichtigungen",
"view": "Ansicht",
"settings": "Einstellungen",
"minimize": "Minimieren",
"maximize": "Maximieren"
},
"menu": {
"close": "Menรผ schlieรŸen",
"subscriptions": "Abonnements"
},
"article": {
"error": "Fehler beim Laden des Artikels.",
"reload": "Neu laden?",
"empty": "Keine Artikel vorhanden",
"untitled": "(Unbenannt)",
"hide": "Artikel ausblenden",
"unhide": "Artikel wieder anzeigen",
"markRead": "Als gelesen markieren",
"markUnread": "Als ungelesen markieren",
"markAbove": "Darรผber als gelesen markieren",
"markBelow": "Darunter als gelesen markieren",
"star": "Favorisieren",
"unstar": "Favorit entfernen",
"fontSize": "SchriftgrรถรŸe",
"loadWebpage": "Internetseite laden",
"loadFull": "Kompletten Inhalt laden",
"notify": "Benachrichtigen, wenn im Hintergrund geladen",
"dontNotify": "Nicht benachrichtigen"
},
"context": {
"share": "Teilen",
"read": "Lesen",
"copyTitle": "Titel kopieren",
"copyURL": "Link kopieren",
"copy": "Kopieren",
"search": ""{text}" mit {engine} suchen",
"view": "Ansicht",
"cardView": "Karten",
"listView": "Liste",
"magazineView": "Magazin",
"compactView": "Kompakt",
"filter": "Filter",
"unreadOnly": "Nur ungelesene",
"starredOnly": "Nur Favoriten",
"fullSearch": "Suche im kompletten Text",
"showHidden": "Ausgeblendete Artikel anzeigen",
"manageSources": "Feeds verwalten",
"saveImageAs": "Bild speichern unter โ€ฆ",
"copyImage": "Bild kopieren",
"copyImageURL": "Bild-Link kopieren",
"caseSensitive": "GroรŸ-/Kleinschreibung beachten",
"showCover": "Cover anzeigen",
"showSnippet": "Ausschnitt anzeigen",
"fadeRead": "Gelesene Artikel ausblenden"
},
"searchEngine": {
"name": "Suchmaschine",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Fehler beim Schreiben der Datei.",
"name": "Einstellungen",
"fetching": "Aktualisiere Feeds, bitte warten โ€ฆ",
"exit": "Einstellungen schlieรŸen",
"sources": "Feeds",
"grouping": "Gruppen",
"rules": "Regeln",
"service": "Server",
"app": "Einstellungen",
"about": "Info",
"version": "Version",
"shortcuts": "Verknรผpfungen",
"openSource": "Open Source",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Feeds, die hier importiert oder hinzugefรผgt werden, kรถnnen nicht mit dem Server synchronisiert werden.",
"serviceManaged": "Dieser Feed wird vom Server verwaltet.",
"untitled": "Feed",
"errorAdd": "Beim Hinzufรผgen des Feeds ist ein Fehler aufgetreten.",
"errorParse": "Beim Lesen der OPML-Datei ist ein Fehler aufgetreten.",
"errorParseHint": "Bitte รผberprรผfe, ob die Datei nicht beschรคdigt und mit UTF-8 formatiert ist.",
"errorImport": "Fehler beim Importieren von {count, plural, =1 {# Feed} other {# Feeds}}.",
"exist": "Dieser Feed existiert bereits.",
"opmlFile": "OPML-Datei",
"name": "Name des Feeds",
"editName": "Name bearbeiten",
"fetchFrequency": "Abrufhรคufigkeit begrenzen",
"unlimited": "Unbegrenzt",
"openTarget": "Standard-Ziel fรผr Artikel",
"delete": "Feed entfernen",
"add": "Feed hinzufรผgen",
"import": "Importieren",
"export": "Exportieren",
"rssText": "RSS-Volltext",
"loadWebpage": "Internetseite laden",
"inputUrl": "URL einfรผgen",
"badIcon": "Ungรผltiges Icon",
"badUrl": "Ungรผltige URL",
"deleteWarning": "Der Feed und alle gespeicherten Artikel werden entfernt.",
"selected": "Ausgewรคhlter Feed",
"selectedMulti": "Ausgewรคhlte Feeds"
},
"groups": {
"exist": "Diese Gruppe existiert bereits.",
"type": "Typ",
"group": "Gruppe",
"source": "Feed",
"capacity": "GrรถรŸe",
"exitGroup": "Zurรผck zu Gruppen",
"deleteSource": "Aus Gruppe entfernen",
"sourceHint": "Gruppen mit Drag & Drop sortieren.",
"selectAllSources": "Alle Quellen auswรคhlen",
"create": "Gruppe erstelllen",
"selectedGroup": "Ausgewรคhlte Gruppe",
"selectedSource": "Ausgewรคhlte Feeds",
"enterName": "Name eingeben",
"editName": "Name speichern",
"editGroup": "Gruppe bearbeiten",
"deleteGroup": "Gruppe lรถschen",
"chooseGroup": "Wรคhle ein Gruppe aus",
"addToGroup": "Zur Gruppe hinzufรผgen",
"groupHint": "Doppelklicke auf die Gruppe um die Feeds zu bearbeiten. Drag & Drop zum Sortieren."
},
"rules": {
"intro": "Artikel automatisch markieren oder Benachrichtigungen senden mit Hilfe regulรคrer Ausdrรผcke.",
"help": "Mehr erfahren",
"target": "Ziel",
"selectTarget": "Ziel auswรคhlen",
"new": "Neue Regel",
"title": "Titel",
"content": "Inhalt",
"fullSearch": "Titel oder Inhalt",
"creator": "Autor/-in",
"match": "enspricht",
"notMatch": "entspricht nicht",
"regex": "regulรคrer Ausdruck",
"badRegex": "Ungรผltiger regulรคrer Ausdruck.",
"action": "Aktionen",
"selectAction": "Aktionen wรคhlen",
"hint": "Regeln gelten fรผr neu abgerufene Artikel: alle Artikel โ†’ Gruppe โ†’ Quelle. Sie werden von oben nach unten ausgefรผhrt; spรคtere Aktionen haben Vorrang. Zum Sortieren ziehen und ablegen. Tests berรผcksichtigen Regeln รผbergeordneter Ziele.",
"test": "Regeln testen",
"searchField": "Suchfeld",
"matchCondition": "รœbereinstimmungsbedingung",
"save": "Regel speichern",
"selectAll": "Alle Regeln auswรคhlen",
"selectRule": "Regel auswรคhlen",
"saveError": "Regeln konnten nicht gespeichert werden. Bitte erneut versuchen."
},
"service": {
"intro": "Mit RSS-Server รผber mehrere Gerรคte hinweg synchronisieren.",
"select": "Wรคhle ein Anbieter aus",
"suggest": "Schlage einen anderen Anbieter vor",
"overwriteWarning": "Lokale Feeds werden gelรถscht, wenn sie auf dem Server schon existieren.",
"groupsWarning": "Gruppen werden nicht automatisch mit dem Server synchronisiert.",
"rateLimitWarning": "Um Abruf-Begrenzungen zu vermeiden, musst du einen eigenen API-Schlรผssel erstellen.",
"removeAd": "Werbung entfernen",
"endpoint": "Endpoint",
"username": "Nutzername",
"password": "Passwort",
"unchanged": "Unverรคndert",
"fetchLimit": "Synchronisations-Limit",
"fetchLimitNum": "{count} Artikel",
"importGroups": "Gruppen importieren",
"failure": "Fehler beim Verbinden zum Server",
"failureHint": "Bitte รผberprรผfe die Server-Konfiguration oder deinen Netzwerk-Status.",
"fetchUnlimited": "Unbegrenzt (nicht empfohlen)",
"exportToLite": "Fรผr Fluent Reader Lite exportieren"
},
"app": {
"cleanup": "Aufrรคumen",
"cache": "Cache leeren",
"cacheSize": "{size} Daten gecacht",
"deleteChoices": "Entferne Artikel รคlter als ... Tage",
"confirmDelete": "Lรถschen",
"daysAgo": "{days} Tage",
"deleteAll": "Alle Artikel entfernen",
"calculatingSize": "Berechne GrรถรŸe...",
"itemSize": "Ungefรคhr {size} lokaler Speicher wird fรผr Artikel genutzt.",
"confirmImport": "Mรถchtest du deine Daten wirklich neu importieren? Deine aktuellen Daten werden gelรถscht.",
"data": "App-Daten",
"backup": "Sichern",
"restore": "Wiederherstellen",
"frData": "Fluent Reader - Daten",
"language": "Anzeigesprache",
"theme": "Darstellung",
"lightTheme": "Hell",
"darkTheme": "Dunkel",
"enableProxy": "Proxy aktivieren",
"badUrl": "Ungรผltige URL",
"pac": "PAC-Adresse",
"setPac": "PAC-Adresse festlegen",
"pacHint": "Fรผr SOCKS-Proxies wird empfohlen, fรผr proxy-seitiges DNS im PAC "SOCKS5" zurรผckzugeben. Das Deaktivieren des Proxies erfordert einen Neustart.",
"fetchInterval": "Automatisches Abrufintervall",
"never": "Nie"
}
}


File: src/scripts/i18n/en-US.json

{
"allArticles": "All articles",
"add": "Add",
"create": "Create",
"icon": "Icon",
"name": "Name",
"openExternal": "Open externally",
"emptyName": "This field cannot be empty.",
"emptyField": "This field cannot be empty.",
"edit": "Edit",
"delete": "Delete",
"followSystem": "Follow system",
"more": "More",
"close": "Close",
"search": "Search",
"loadMore": "Load more",
"dangerButton": "Confirm {action}?",
"confirmMarkAll": "Do you really want to mark all articles on this page as read?",
"confirm": "Confirm",
"cancel": "Cancel",
"default": "Default",
"time": {
"now": "now",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, =1 {# minute} other {# minutes}}",
"hour": "{h, plural, =1 {# hour} other {# hours}}",
"day": "{d, plural, =1 {# day} other {# days}}"
},
"log": {
"empty": "No notifications",
"fetchFailure": "Failed to load source "{name}".",
"fetchSuccess": "Successfully fetched {count, plural, =1 {# article} other {# articles}}.",
"networkError": "A network error has occurred.",
"parseError": "An error has occurred when parsing the XML feed.",
"syncFailure": "Failed to sync with service"
},
"nav": {
"menu": "Menu",
"refresh": "Refresh",
"markAllRead": "Mark all as read",
"notifications": "Notifications",
"view": "View",
"settings": "Settings",
"minimize": "Minimize",
"maximize": "Maximize"
},
"menu": {
"close": "Close menu",
"subscriptions": "Subscriptions"
},
"article": {
"error": "Failed to load article.",
"reload": "Reload?",
"empty": "No articles",
"untitled": "(Untitled)",
"hide": "Hide article",
"unhide": "Unhide article",
"markRead": "Mark as read",
"markUnread": "Mark as unread",
"markAbove": "Mark above as read",
"markBelow": "Mark below as read",
"star": "Star",
"unstar": "Remove star",
"fontSize": "Font size",
"loadWebpage": "Load webpage",
"loadFull": "Load full content",
"notify": "Notify if fetched in background",
"dontNotify": "Don't notify",
"textDir": "Text direction",
"LTR": "Left-to-right",
"RTL": "Right-to-left",
"Vertical": "Vertical",
"font": "Font"
},
"context": {
"share": "Share",
"read": "Read",
"copyTitle": "Copy title",
"copyURL": "Copy link",
"copy": "Copy",
"search": "Search "{text}" on {engine}",
"view": "View",
"cardView": "Card view",
"listView": "List view",
"magazineView": "Magazine view",
"compactView": "Compact view",
"filter": "Filtering",
"unreadOnly": "Unread only",
"starredOnly": "Starred only",
"fullSearch": "Search in full text",
"showHidden": "Show hidden articles",
"manageSources": "Manage sources",
"saveImageAs": "Save image as โ€ฆ",
"copyImage": "Copy image",
"copyImageURL": "Copy image link",
"caseSensitive": "Case sensitive",
"showCover": "Show cover",
"showSnippet": "Show snippet",
"fadeRead": "Fade read articles"
},
"searchEngine": {
"name": "Search engine",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "An error has occurred while writing the file.",
"name": "Settings",
"fetching": "Updating sources, please wait โ€ฆ",
"exit": "Exit settings",
"sources": "Sources",
"grouping": "Groups",
"rules": "Rules",
"service": "Service",
"app": "Preferences",
"about": "About",
"version": "Version",
"shortcuts": "Shortcuts",
"openSource": "Open source",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Sources imported or added here will not be synced with your service.",
"serviceManaged": "This source is managed by your service.",
"untitled": "Source",
"errorAdd": "An error has occured when adding the source.",
"errorParse": "An error has occurred when parsing the OPML file.",
"errorParseHint": "Please ensure that the file isn't corrupted and is encoded with UTF-8.",
"errorImport": "Error importing {count, plural, =1 {# source} other {# sources}}.",
"exist": "This source already exists.",
"opmlFile": "OPML File",
"name": "Source name",
"editName": "Edit name",
"fetchFrequency": "Fetch frequency limit",
"unlimited": "Unlimited",
"openTarget": "Default open target for articles",
"delete": "Delete source",
"add": "Add source",
"import": "Import",
"export": "Export",
"rssText": "RSS full text",
"loadWebpage": "Load webpage",
"inputUrl": "Enter URL",
"badIcon": "Invalid icon",
"badUrl": "Invalid URL",
"deleteWarning": "The source and all saved articles will be removed.",
"selected": "Selected source",
"selectedMulti": "Selected multiple sources",
"hidden": "Hide in "all articles""
},
"groups": {
"exist": "This group already exists.",
"type": "Type",
"group": "Group",
"source": "Source",
"capacity": "Capacity",
"exitGroup": "Back to groups",
"deleteSource": "Delete from group",
"sourceHint": "Drag and drop sources to reorder.",
"selectAllSources": "Select all sources",
"create": "Create group",
"selectedGroup": "Selected group",
"selectedSource": "Selected source",
"enterName": "Enter name",
"editName": "Edit name",
"editGroup": "Edit group",
"deleteGroup": "Delete group",
"chooseGroup": "Select a group",
"addToGroup": "Add to ...",
"groupHint": "Double click on group to edit sources. Drag and drop to reorder."
},
"rules": {
"intro": "Automatically mark articles or send notifications with regular expressions.",
"help": "Learn more",
"target": "Target",
"selectTarget": "Select a target",
"new": "New rule",
"title": "Title",
"content": "Content",
"fullSearch": "Title or content",
"creator": "Author",
"match": "matches",
"notMatch": "doesn't match",
"regex": "Regular expression",
"badRegex": "Invalid regular expression.",
"action": "Actions",
"selectAction": "Select actions",
"hint": "Rules apply to newly fetched articles: all articles โ†’ group โ†’ source. Rules run from top to bottom; later actions take precedence. Drag and drop to reorder. Tests include rules from broader targets.",
"test": "Test rules",
"searchField": "Search field",
"matchCondition": "Match condition",
"save": "Save rule",
"selectAll": "Select all rules",
"selectRule": "Select rule",
"saveError": "Could not save rules. Please try again."
},
"service": {
"intro": "Sync across devices with RSS services.",
"select": "Select a service",
"suggest": "Suggest a new service",
"overwriteWarning": "Local sources will be deleted if they exist in the service.",
"groupsWarning": "Groups aren't automatically synced with the service.",
"rateLimitWarning": "To avoid rate limiting, you need to create your own API Key.",
"removeAd": "Remove Ad",
"endpoint": "Endpoint",
"username": "Username",
"password": "Password",
"unchanged": "Unchanged",
"fetchLimit": "Sync limit",
"fetchLimitNum": "{count} latest articles",
"importGroups": "Import groups",
"failure": "Cannot connect to service",
"failureHint": "Please check the service configuration or network status.",
"fetchUnlimited": "Unlimited (not recommended)",
"exportToLite": "Export to Fluent Reader Lite"
},
"app": {
"cleanup": "Clean up",
"cache": "Clear cache",
"cacheSize": "Cached {size} of data",
"deleteChoices": "Delete articles from ... days ago",
"confirmDelete": "Delete",
"daysAgo": "{days, plural, =1 {# day} other {# days}} ago",
"deleteAll": "Delete all articles",
"calculatingSize": "Calculating size...",
"itemSize": "Around {size} of local storage is occupied by articles",
"confirmImport": "Do you really want to import data from the backup file? All current data will be wiped.",
"data": "Application Data",
"backup": "Backup",
"restore": "Restore",
"frData": "Fluent Reader Data",
"language": "Display language",
"theme": "Theme",
"lightTheme": "Light mode",
"darkTheme": "Dark mode",
"enableProxy": "Enable Proxy",
"badUrl": "Invalid URL",
"pac": "PAC Address",
"setPac": "Set PAC",
"pacHint": "For Socks proxies, it is recommended for PAC to return "SOCKS5" for proxy-side DNS. Turning off proxy requires restart.",
"fetchInterval": "Automatic fetch interval",
"never": "Never"
}
}


File: src/scripts/i18n/es.json

{
"allArticles": "Todos los artรญculos",
"add": "Agregar",
"create": "Crear",
"icon": "Icono",
"name": "Nombre",
"openExternal": "Abrir de modo externo",
"emptyName": "Este campo no puede estar vacรญo.",
"emptyField": "Este campo no puede estar vacรญo.",
"edit": "Modificar",
"delete": "Eliminar",
"followSystem": "Seguir sistema",
"more": "Mรกs",
"close": "Cerrar",
"search": "Buscar",
"loadMore": "Cargar mรกs",
"dangerButton": "Confirmar {action}?",
"confirmMarkAll": "ยฟDesea realmente marcar todos los artรญculos en esta pรกgina como leรญdos?",
"confirm": "Confirmar",
"cancel": "Cancelar",
"time": {
"now": "ahora",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, =1 {# minuto} other {# minutos}}",
"hour": "{h, plural, =1 {# hora} other {# horas}}",
"day": "{d, plural, =1 {# dรญa} other {# dรญas}}"
},
"log": {
"empty": "Sin notificaciones",
"fetchFailure": "Fallรณ al cargar fuente "{name}".",
"fetchSuccess": "Recuperado exitosamente {count, plural, =1 {# artรญculo} other {# artรญculos}}."
},
"nav": {
"menu": "Menรบ",
"refresh": "Actualizar",
"markAllRead": "Marcar todo como leรญdo",
"notifications": "Notificaciones",
"view": "Ver",
"settings": "Configuraciones",
"minimize": "Minimizar",
"maximize": "Maximizar"
},
"menu": {
"close": "Cerrar menรบ",
"subscriptions": "Suscripciones"
},
"article": {
"empty": "Sin artรญculos",
"untitled": "(sin tรญtulo)",
"hide": "Ocultar artรญculo",
"unhide": "Mostar artรญculo",
"markRead": "Marcar como leรญdo",
"markUnread": "Marcar como no leรญdo",
"star": "Destacar",
"unstar": "Quitar destacado",
"fontSize": "Tamaรฑo de la fuente",
"loadWebpage": "Cargar pรกgina web"
},
"context": {
"share": "Compartir",
"read": "Leer",
"copyTitle": "Copiar tรญtulo",
"copyURL": "Copiar enlace",
"copy": "Copiar",
"search": "Buscar "{text}" en {engine}",
"view": "Ver",
"cardView": "Vista en modo tarjeta",
"listView": "Vista en modo listado",
"magazineView": "Vista en modo revista",
"compactView": "Vista en modo compacta",
"filter": "Filtrando",
"unreadOnly": "Solo no leรญdos",
"starredOnly": "Solo destacados",
"fullSearch": "Buscar en todo el texto",
"showHidden": "Mostrar artรญculos ocultos",
"manageSources": "Gestionar fuentes"
},
"settings": {
"writeError": "Se produjo un error al escribir el archivo.",
"name": "Configuraciones",
"fetching": "Actualizando fuentes, por favor espere โ€ฆ",
"exit": "Salir de Configuraciones",
"sources": "Fuentes",
"grouping": "Agrupamiento",
"rules": "Reglas",
"app": "Preferencias",
"about": "Acerca",
"version": "Versiรณn",
"shortcuts": "Atajos",
"openSource": "Abrir fuente",
"feedback": "Reacciones"
},
"sources": {
"untitled": "Fuente",
"errorAdd": "Se ha producido un error al agregar la fuente.",
"errorParse": "Se produjo un error al analizar el archivo OPML.",
"errorParseHint": "Por favor asegรบrese que el archivo no estรก corrupto y codificado en formato UTF-8.",
"errorImport": "Error en la importaciรณn {count, plural, =1 {# fuente} other {# fuentes}}.",
"opmlFile": "Archivo OPML",
"name": "Nombre de la fuente",
"editName": "Modificar nombre",
"fetchFrequency": "Lรญmite en la frecuencia de recolecciรณn de las fuentes",
"unlimited": "Ilimitado",
"openTarget": "Lugar predeterminado de apertura de los artรญculos",
"delete": "Eliminar fuente",
"add": "Agregar fuente",
"import": "Importar",
"export": "Exportar",
"rssText": "RSS texto completo",
"loadWebpage": "Cargar pรกgina web",
"inputUrl": "Ingresar direcciรณn URL",
"badUrl": "URL no vรกlida",
"deleteWarning": "Se eliminarรกn la fuente y todos los artรญculos guardados..",
"selected": "Fuente seleccionada",
"selectedMulti": "Mรบltiples fuentes seleccionadas"
},
"groups": {
"type": "Tipo",
"group": "Grupo",
"source": "Fuente",
"capacity": "Capacidad",
"exitGroup": "Volver a los grupos",
"deleteSource": "Eliminar del grupo",
"sourceHint": "Arrastrar y soltar fuentes para reordenar.",
"selectAllSources": "Seleccionar todas las fuentes",
"create": "Crear grupo",
"selectedGroup": "Grupo seleccionado",
"selectedSource": "Fuente seleccionada",
"enterName": "Ingresar nombre",
"editName": "Modificar nombre",
"editGroup": "Editar grupo",
"deleteGroup": "Eliminar grupo",
"chooseGroup": "Seleccionar un grupo",
"addToGroup": "Agregar a ...",
"groupHint": "Doble clic sobre un grupo para modificar las fuentes. Arrastrar y soltar para reordenar."
},
"rules": {
"target": "Destino",
"selectTarget": "Seleccionar un destino",
"new": "Nueva regla",
"title": "Tรญtulo",
"content": "Contenido",
"fullSearch": "Tรญtulo o contenido",
"match": "coincidencias",
"notMatch": "no coincide",
"regex": "Expresiรณn regular",
"badRegex": "Expresiรณn regular no vรกlida.",
"action": "Acciones",
"selectAction": "Seleccionar acciones",
"hint": "Las reglas se aplican a artรญculos reciรฉn obtenidos: todos los artรญculos โ†’ grupo โ†’ fuente. Se ejecutan de arriba abajo; las acciones posteriores tienen prioridad. Arrastra para cambiar el orden. Las pruebas incluyen reglas de destinos mรกs amplios.",
"test": "Probar reglas",
"searchField": "Campo de bรบsqueda",
"matchCondition": "Condiciรณn de coincidencia",
"save": "Guardar regla",
"selectAll": "Seleccionar todas las reglas",
"selectRule": "Seleccionar regla",
"saveError": "No se pudieron guardar las reglas. Intรฉntalo de nuevo."
},
"app": {
"cleanup": "Limpiar",
"cache": "Limpiar cachรฉ",
"cacheSize": "{size} cachรฉ de datos",
"deleteChoices": "Eliminar artรญculos de hace ... dรญas atrรกs",
"confirmDelete": "Eliminar",
"daysAgo": "hace {days} atrรกs",
"deleteAll": "Eliminar todos los artรญculos",
"calculatingSize": "Calculando tamaรฑo...",
"itemSize": "Alrededor de {size} del almacenamiento local estรก ocupado por artรญculos",
"confirmImport": "ยฟRealmente desea importar datos desde el archivo de resguardo? Todos los actuales datos serรกn eliminados.",
"data": "Datos de la aplicaciรณn",
"backup": "Resguardo",
"restore": "Restaurar",
"frData": "Lector de datos",
"language": "Mostrar idioma",
"theme": "Tema",
"lightTheme": "Modo claro",
"darkTheme": "Modo oscuro",
"enableProxy": "Habilitar proxy",
"badUrl": "URL no vรกlida",
"pac": "Direcciรณn PAC",
"setPac": "Establecer PAC",
"pacHint": "Para proxies de tipo Socks proxies, se recomienda que PAC devuelva "SOCKS5" respecto del DNS del proxy. Desactivar el proxy requiere reiniciar."
}
}


File: src/scripts/i18n/fi-FI.json

{
"add": "Lisรครค",
"allArticles": "Kaikki artikkelit",
"app": {
"backup": "Varmuuskopiointi",
"badUrl": "Virheellinen URL",
"cache": "Tyhjennรค vรคlimuisti",
"cacheSize": "Vรคlimuistissa on {size} dataa",
"calculatingSize": "Lasketaan kokoa...",
"cleanup": "Siivoa",
"confirmDelete": "Poista",
"confirmImport": "Haluatko tuoda tiedot varmuuskopiosta? Kaikki nykyinen data poistetaan.",
"darkTheme": "Tumma tila",
"data": "Sovelluksen Data",
"daysAgo": "{days, plural, =1 {# pรคivรค} other {# pรคivรครค}} sitten",
"deleteAll": "Poista kaikki artikkelit",
"deleteChoices": "Poista ... pรคivรครค vanhemmat artikkelit",
"enableProxy": "Kรคytรค vรคlityspalvelinta",
"fetchInterval": "Automaattinen pรคivitys",
"frData": "Fluent Reader Data",
"itemSize": "Artikkelit kรคyttรคvรคt {size} paikallista tallennustilaa",
"language": "Nรคyttรถkieli",
"lightTheme": "Vaalea tila",
"never": "Ei koskaan",
"pac": "PAC Osoite",
"pacHint": "Socks -vรคlityspalvelimille on suositeltavaa asettaa PAC palauttamaan "SOCKS5" vรคlityspalvelminen DNS:tรค. Vรคlityspalvelimen laittaminen pois pรครคltรค vaatii uudelleenkรคynnistyksen,",
"restore": "Palauta",
"setPac": "Aseta PAC",
"theme": "Teema"
},
"article": {
"dontNotify": "ร„lรค ilmoita",
"empty": "Ei artikkeleita",
"error": "Artikkelin lataaminen epรคonnistui.",
"fontSize": "Fonttikoko",
"hide": "Piilota artikkeli",
"loadFull": "Lataa koko sisรคltรถ",
"loadWebpage": "Lataa verkkosivu",
"markAbove": "Merkitse ylemmรคt luetuksi",
"markBelow": "Merkitse alemmat luetuksi",
"markRead": "Merkitse luetuksi",
"markUnread": "Merkitse lukemattomaksi",
"notify": "Ilmoita, jos haetaan taustalla",
"reload": "Ladataanko uudelleen?",
"star": "Tรคhti",
"unhide": "Nรคytรค artikkeli",
"unstar": "Poista tรคhti",
"untitled": "(Nimetรถn)"
},
"cancel": "Peruuta",
"close": "Sulje",
"confirm": "Vahvista",
"confirmMarkAll": "Haluatko todella merkitรค kaikki tรคmรคn sivun artikkelit luetuiksi?",
"context": {
"cardView": "Kortit",
"caseSensitive": "Vain sama merkkikoko",
"compactView": "Kompakti",
"copy": "Kopioi",
"copyImage": "Kopioi kuva",
"copyImageURL": "Kopioi kuvalinkki",
"copyTitle": "Kopioi otsikko",
"copyURL": "Kopioi linkki",
"fadeRead": "Hรคivytรค luetut artikkelit",
"filter": "Suodatus",
"fullSearch": "Hae koko tekstistรค",
"listView": "Lista",
"magazineView": "Lehti",
"manageSources": "Hallitse lรคhteitรค",
"read": "Luettu",
"saveImageAs": "Tallenna kuva nimellรคโ€ฆ",
"search": "Hae "{text}" {engine}lla",
"share": "Jaa",
"showCover": "Nรคytรค artikkelin kuva",
"showHidden": "Nรคytรค piilotetut artikkelit",
"showSnippet": "Nรคytรค katkelma",
"starredOnly": "Vain tรคhdellรค merkityt",
"unreadOnly": "Vain lukemattomat",
"view": "Nรคkymรค"
},
"create": "Luo",
"dangerButton": "Vahvistetaanko {action}?",
"delete": "Poista",
"edit": "Muokkaa",
"emptyField": "Tรคmรค kenttรค ei voi olla tyhjรค.",
"emptyName": "Tรคmรค kenttรค ei voi olla tyhjรค.",
"followSystem": "Kรคytรค jรคrjestelmรคn teemaa",
"groups": {
"addToGroup": "Lisรครค ...",
"capacity": "Mรครคrรค",
"chooseGroup": "Valitse ryhmรค",
"create": "Luo ryhmรค",
"deleteGroup": "Poista ryhmรค",
"deleteSource": "Poista ryhmรคstรค",
"editName": "Muokkaa nimeรค",
"editGroup": "Muokkaa ryhmรครค",
"enterName": "Anna nimi",
"exist": "Tรคmรค ryhmรค on jo olemassa.",
"exitGroup": "Takaisin ryhmiin",
"group": "Ryhmรค",
"groupHint": "Kaksoisnapsauta ryhmรครค muokataksesi sen lรคhteitรค. Jรคrjestรค uudelleen vetรคmรคllรค ja pudottamalla.",
"selectedGroup": "Valittu ryhmรค",
"selectedSource": "Valittu lรคhde",
"source": "Lรคhde",
"sourceHint": "Jรคrjestรค uudelleen vetรคmรคllรค ja pudottamalla lรคhteitรค.",
"selectAllSources": "Valitse kaikki lรคhteet",
"type": "Tyyppi"
},
"icon": "Kuvake",
"loadMore": "Lataa lisรครค",
"log": {
"empty": "Ei ilmoituksia",
"fetchFailure": "Lรคhteen "{name}" lataaminen epรคonnistui.",
"fetchSuccess": "Noudettiin onnistuneesti {count, plural, =1 {# artikkeli} other {# artikkelia}}.",
"networkError": "Tapahtui verkkovirhe.",
"parseError": "XML-syรถtteen jรคsentรคmisessรค tapahtui virhe.",
"syncFailure": "Palvelun kanssa synkronointi epรคonnistui"
},
"menu": {
"close": "Sulje valikko",
"subscriptions": "Tilaukset"
},
"more": "Lisรครค",
"name": "Nimi",
"nav": {
"markAllRead": "Merkitse kaikki luetuksi",
"maximize": "Laajenna",
"menu": "Valikko",
"minimize": "Pienennรค",
"notifications": "Ilmoitukset",
"refresh": "Pรคivitรค",
"settings": "Asetukset",
"view": "Nรคkymรค"
},
"openExternal": "Avaa selaimessa",
"rules": {
"action": "Toiminto",
"badRegex": "Virheellinen sรครคntรถ.",
"content": "Sisรคltรถ",
"creator": "Kirjoittaja",
"fullSearch": "Otsikko tai sisรคltรถ",
"help": "Lisรคtietoja",
"hint": "Sรครคntรถjรค sovelletaan uusiin haettuihin artikkeleihin: kaikki artikkelit โ†’ ryhmรค โ†’ lรคhde. Sรครคnnรถt suoritetaan ylhรครคltรค alas; myรถhemmรคt toiminnot ovat etusijalla. Muuta jรคrjestystรค vetรคmรคllรค. Testit sisรคltรคvรคt laajempien kohteiden sรครคnnรถt.",
"intro": "Merkitse artikkelit automaattisesti tai lรคhetรค ilmoituksia sรครคnnรถllisin lausekkein.",
"match": "tรคsmรครค",
"new": "Uusi sรครคntรถ",
"notMatch": "ei tรคsmรครค",
"regex": "Sรครคnnรถllinen lauseke",
"selectAction": "Valitse toiminnot",
"selectTarget": "Valitse kohde",
"target": "Kohde",
"test": "Testaa sรครคntรถรค",
"title": "Otsikko",
"searchField": "Hakukenttรค",
"matchCondition": "Vastaavuusehto",
"save": "Tallenna sรครคntรถ",
"selectAll": "Valitse kaikki sรครคnnรถt",
"selectRule": "Valitse sรครคntรถ",
"saveError": "Sรครคntรถjรค ei voitu tallentaa. Yritรค uudelleen."
},
"search": "Hae",
"searchEngine": {
"baidu": "Baidu",
"bing": "Bing",
"duckduckgo": "DuckDuckGo",
"google": "Google",
"name": "Hakukone"
},
"service": {
"endpoint": "Osoite",
"exportToLite": "Vie Fluent Reader Lite -ohjelmaan",
"failure": "Palveluun ei voi muodostaa yhteyttรค",
"failureHint": "Tarkista palvelun asetukset tai verkkoyhteytesi.",
"fetchLimit": "Synkronointiraja",
"fetchLimitNum": "{count} viimeisintรค artikkelia",
"fetchUnlimited": "Rajoittamaton (ei suositella)",
"groupsWarning": "Ryhmiรค ei synkronoida automaattisesti palvelun kanssa.",
"importGroups": "Tuo ryhmรคt",
"intro": "Synkronoi laitteiden vรคlillรค RSS-palveluiden kanssa.",
"overwriteWarning": "Paikalliset lรคhteet poistetaan, jos niitรค on palvelussa.",
"password": "Salasana",
"rateLimitWarning": "Rajapintakรคytรถn rajoituksien vรคlttรคmiseksi sinun on luotava oma API-avain.",
"removeAd": "Poista mainos",
"select": "Valitse palvelu",
"suggest": "Ehdota uutta palvelua",
"unchanged": "Ei muutoksia",
"username": "Kรคyttรคjรคtunnus"
},
"settings": {
"about": "Tietoja",
"app": "Asetukset",
"exit": "Poistu asetuksista",
"feedback": "Palaute",
"fetching": "Pรคivitetรครคn lรคhteitรค, odotaโ€ฆ",
"grouping": "Ryhmรคt",
"name": "Asetukset",
"openSource": "Avoin lรคhdekoodi",
"rules": "Sรครคnnรถt",
"service": "Palvelu",
"shortcuts": "Pikakomennot",
"sources": "Lรคhteet",
"version": "Versio",
"writeError": "Tiedostoa kirjoitettaessa tapahtui virhe."
},
"sources": {
"add": "Lisรครค lรคhde",
"badIcon": "Virheellinen kuvake",
"badUrl": "Virheellinen URL",
"delete": "Poista lรคhde",
"deleteWarning": "Lรคhde ja kaikki tallennetut artikkelit poistetaan.",
"editName": "Muokkaa nimeรค",
"errorAdd": "Lรคhdettรค lisรคttรคessรค tapahtui virhe.",
"errorImport": "Virhe tuotaessa {count, plural, =1 {# lรคhdettรค} other {# lรคhteitรค}}.",
"errorParse": "OPML -tiedoston jรคsentรคmisessรค tapahtui virhe.",
"errorParseHint": "Varmista, ettรค tiedosto ei ole vioittunut ja ettรค se on koodattu UTF-8: lla.",
"exist": "Tรคmรค lรคhde on jo olemassa.",
"export": "Vie",
"fetchFrequency": "Tietojen hakemisen raja",
"import": "Tuo",
"inputUrl": "Syรถtรค URL",
"loadWebpage": "Lataa verkkosivu",
"name": "Lรคhteen nimi",
"openTarget": "Avaa artikkelit oletuksena",
"opmlFile": "OPML -tiedosto",
"rssText": "RSS koko teksti",
"selected": "Valittu lรคhde",
"selectedMulti": "Valittu useita lรคhteitรค",
"serviceManaged": "Palvelu hallinnoi tรคtรค lรคhdettรค.",
"serviceWarning": "Tรครคltรค tuotuja tai lisรคttyjรค lรคhteitรค ei synkronoida palvelusi kanssa.",
"unlimited": "Rajoittamaton",
"untitled": "Lรคhde"
},
"time": {
"d": "pv",
"day": "{d, plural, =1 {# pรคivรค} other {# pรคivรครค}}",
"h": "h",
"hour": "{h, plural, =1 {# tunti} other {# tuntia}}",
"m": "min",
"minute": "{m, plural, =1 {# minutti} other {# minuttia}}",
"now": "nyt"
}
}


File: src/scripts/i18n/fr-FR.json

{
"allArticles": "Tous les articles",
"add": "Ajouter",
"create": "Crรฉer",
"icon": "Icรดne",
"name": "Nom",
"openExternal": "Ouvrir dans le navigateur",
"emptyName": "Ce champ ne peut pas รชtre vide.",
"emptyField": "Ce champ ne peut pas รชtre vide.",
"edit": "Modifier",
"delete": "Supprimer",
"followSystem": "Suivre le systรจme",
"more": "Plus",
"close": "Fermer",
"search": "Rechercher",
"loadMore": "Charger plus",
"dangerButton": "Confirmer {action} ?",
"confirmMarkAll": "Voulez-vous vraiment marquer tous les articles de cette page comme lus ?",
"confirm": "Confirmer",
"cancel": "Annuler",
"time": {
"now": "maintenant",
"m": "m",
"h": "h",
"d": "j",
"minute": "{m, plural, =1 {# minute} other {# minutes}}",
"hour": "{h, plural, =1 {# heure} other {# heures}}",
"day": "{d, plural, =1 {# jour} other {# jours}}"
},
"log": {
"empty": "Aucune notification",
"fetchFailure": "ร‰chec du chargement de la source "{name}".",
"fetchSuccess": "Rรฉcupรฉration rรฉussi de {count, plural, =1 {# article} other {# articles}}.",
"networkError": "Une erreur de rรฉseau s'est produite.",
"parseError": "Une erreur s'est produite lors de l'analyse du flux XML.",
"syncFailure": "ร‰chec de synchronisation avec le service"
},
"nav": {
"menu": "Menu",
"refresh": "Actualiser",
"markAllRead": "Marquer tout comme lu",
"notifications": "Notifications",
"view": "Affichage",
"settings": "Paramรจtres",
"minimize": "Rรฉduire",
"maximize": "Agrandir"
},
"menu": {
"close": "Fermer le menu",
"subscriptions": "Abonnements"
},
"article": {
"error": "Impossible de charger l'article.",
"reload": "Recharger ?",
"empty": "Pas d'articles",
"untitled": "(Sans titre)",
"hide": "Masquer l'article",
"unhide": "Afficher l'article",
"markRead": "Marquer comme lu",
"markUnread": "Marquer comme non lu",
"markAbove": "Marquer ci-dessus comme lu",
"markBelow": "Marquer ci-dessous comme lu",
"star": "Mettre en favori",
"unstar": "Supprimer le favori",
"fontSize": "Taille de la police",
"loadWebpage": "Charger la page web",
"loadFull": "Charger tout le contenu",
"notify": "Notifier le chargement en arriรจre-plan",
"dontNotify": "Ne pas notifier"
},
"context": {
"share": "Partager",
"read": "Lire",
"copyTitle": "Copier le titre",
"copyURL": "Copier le lien",
"copy": "Copier",
"search": "Rechercher "{text}" sur {engine}",
"view": "Affichage",
"cardView": "Vue par carte",
"listView": "Vue par liste",
"magazineView": "Vue par magazine",
"compactView": "Vue par compact",
"filter": "Filtrer",
"unreadOnly": "Non lu uniquement",
"starredOnly": "Favoris uniquement",
"fullSearch": "Recherche dans le texte complet",
"showHidden": "Afficher les articles cachรฉs",
"manageSources": "Gรฉrer les sources",
"saveImageAs": "Enregistrer l'image sousโ€ฆ",
"copyImage": "Copier l'image",
"copyImageURL": "Copier l'adresse de l'image",
"caseSensitive": "Sensible ร  la casse",
"showCover": "Afficher couverture",
"showSnippet": "Afficher extrait",
"fadeRead": "Attรฉnuer les articles lus"
},
"searchEngine": {
"name": "Moteur de recherche",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Une erreur s'est produite lors de l'รฉcriture du fichier.",
"name": "Paramรจtres",
"fetching": "Mise ร  jour des sources, veuillez patienterโ€ฆ",
"exit": "Fermer les paramรจtres",
"sources": "Sources",
"grouping": "Groupes",
"rules": "Rรจgles",
"service": "Service",
"app": "Prรฉfรฉrences",
"about": "ร€ propos",
"version": "Version",
"shortcuts": "Raccourcis",
"openSource": "Open source",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Les sources importรฉes ou ajoutรฉes ici ne seront pas synchronisรฉes avec votre service.",
"serviceManaged": "Cette source est gรฉrรฉe par votre service.",
"untitled": "Source",
"errorAdd": "Une erreur s'est produite lors de l'ajout de la source.",
"errorParse": "Une erreur s'est produite lors de l'analyse du fichier OPML.",
"errorParseHint": "Veuillez vous assurer que le fichier n'est pas corrompu et qu'il est encodรฉ en UTF-8.",
"errorImport": "Erreur d'importation pour {count, plural, =1 {# source} other {# sources}}.",
"exist": "Cette source existe dรฉjร .",
"opmlFile": "Fichier OPML",
"name": "Nom de la source",
"editName": "Modifier le nom",
"fetchFrequency": "Limitation de la frรฉquence de collecte des donnรฉes",
"unlimited": "Illimitรฉ",
"openTarget": "Mode d'ouverture par dรฉfaut des articles",
"delete": "Supprimer la source",
"add": "Ajouter la source",
"import": "Importer",
"export": "Exporter",
"rssText": "Texte complet RSS",
"loadWebpage": "Charger la page web",
"inputUrl": "Saisissez l'adresse URL",
"badIcon": "Icรดne invalide",
"badUrl": "Adresse URL invalide",
"deleteWarning": "La source et tous les articles sauvegardรฉs seront supprimรฉs.",
"selected": "Source sรฉlectionnรฉe",
"selectedMulti": "Sources multiples sรฉlectionnรฉes"
},
"groups": {
"exist": "Ce groupe existe dรฉjร .",
"type": "Type",
"group": "Groupe",
"source": "Source",
"capacity": "Contenu",
"exitGroup": "Retour aux groupes",
"deleteSource": "Supprimer du groupe",
"sourceHint": "Glisser-dรฉposer les sources pour les rรฉorganiser.",
"selectAllSources": "Sรฉlectionner toutes les sources",
"create": "Crรฉer un groupe",
"selectedGroup": "Groupe sรฉlectionnรฉ",
"selectedSource": "Source sรฉlectionnรฉe",
"enterName": "Saisissez un nom",
"editName": "Modifier le nom",
"editGroup": "Modifier le groupe",
"deleteGroup": "Supprimer le groupe",
"chooseGroup": "Selectionner un groupe",
"addToGroup": "Ajouter ร  ...",
"groupHint": "Double-cliquez sur le groupe pour modifier ses sources. Faites un glisser-dรฉposer pour rรฉorganiser les sources."
},
"rules": {
"intro": "Marquez automatiquement les articles ou envoyez des notifications avec des expressions rรฉguliรจres.",
"help": "En savoir plus",
"target": "Cible",
"selectTarget": "Sรฉlectionner une cible",
"new": "Nouvelle rรจgle",
"title": "Titre",
"content": "Contenu",
"fullSearch": "Titre ou contenu",
"creator": "Auteur",
"match": "correspond ร ",
"notMatch": "ne correspond pas ร ",
"regex": "Expression rรฉguliรจre",
"badRegex": "Expression rรฉguliรจre invalide.",
"action": "Actions",
"selectAction": "Sรฉlectionner action",
"hint": "Les rรจgles sโ€™appliquent aux nouveaux articles rรฉcupรฉrรฉs : tous les articles โ†’ groupe โ†’ source. Elles sโ€™exรฉcutent de haut en bas ; les actions suivantes ont prioritรฉ. Glissez pour rรฉordonner. Les tests incluent les rรจgles des cibles plus larges.",
"test": "Tester les rรจgles",
"searchField": "Champ de recherche",
"matchCondition": "Condition de correspondance",
"save": "Enregistrer la rรจgle",
"selectAll": "Sรฉlectionner toutes les rรจgles",
"selectRule": "Sรฉlectionner la rรจgle",
"saveError": "Impossible dโ€™enregistrer les rรจgles. Veuillez rรฉessayer."
},
"service": {
"intro": "Synchronisation entre les appareils avec des services RSS.",
"select": "Sรฉlectionner un service",
"suggest": "Proposer un nouveau service",
"overwriteWarning": "Les sources locales seront supprimรฉes si elles existent dans le service.",
"groupsWarning": "Les groupes ne sont pas automatiquement synchronisรฉs avec le service.",
"endpoint": "Adresse",
"username": "Pseudo",
"password": "Mot de passe",
"unchanged": "Inchangรฉ",
"fetchLimit": "Limite de synchronisation",
"fetchLimitNum": "{count} articles rรฉcents",
"importGroups": "Importer des groupes",
"failure": "Impossible de se connecter au service",
"failureHint": "Veuillez vรฉrifier la configuration du service ou l'รฉtat du rรฉseau.",
"fetchUnlimited": "Illimitรฉ (non recommandรฉ)"
},
"app": {
"cleanup": "Nettoyage",
"cache": "Supprimer le cache",
"cacheSize": "{size} de donnรฉes mises en cache",
"deleteChoices": "Supprimer les articles antรฉrieurs ร  ... jours",
"confirmDelete": "Supprimer",
"daysAgo": "{days, plural, =1 {# jour} other {# jours}}",
"deleteAll": "Supprimer tous les articles",
"calculatingSize": "Calcul de la taille...",
"itemSize": "Environ {size} du stockage local est occupรฉ par des articles",
"confirmImport": "Voulez-vous vraiment importer des donnรฉes du fichier de sauvegarde ? Toutes les donnรฉes actuelles seront effacรฉes.",
"data": "Donnรฉes de l'appplication",
"backup": "Sauvegarder",
"restore": "Restorer",
"frData": "Donnรฉes de Fluent Reader",
"language": "Langue d'affichage",
"theme": "Thรจme",
"lightTheme": "Mode jour",
"darkTheme": "Mode nuit",
"enableProxy": "Activer le Proxy",
"badUrl": "Adresse URL invalide",
"pac": "Adresse PAC",
"setPac": "Dรฉfinir PAC",
"pacHint": "Pour les proxies Sockets, il est recommandรฉ que le PAC retourne "SOCKS5" pour le DNS cรดtรฉ proxies. La dรฉsactivation du proxy nรฉcessite un redรฉmarrage.",
"fetchInterval": "Intervalle de rรฉcupรฉration automatique",
"never": "Jamais"
}
}


File: src/scripts/i18n/it.json

{
"allArticles": "Tutti gli articoli",
"add": "Aggiungi",
"create": "Crea",
"icon": "Icona",
"name": "Nome",
"openExternal": "Apri Esternamente",
"emptyName": "Questo campo non puo essere vuoto",
"emptyField": "Questo campo non puo essere vuoto",
"edit": "Modifica",
"delete": "Elimina",
"followSystem": "segui impostazioni di sistema",
"more": "di piรน",
"close": "Chiudi",
"search": "Cerca",
"loadMore": "Carica piu feed",
"dangerButton": "Confermi di {action}?",
"confirmMarkAll": "Vuoi veramente segnare tutti i feed di questa pagina come letti?",
"confirm": "Confema",
"cancel": "Anulla",
"time": {
"now": "ora",
"m": "m",
"h": "h",
"d": "g",
"minute": "{m, plural, =1 {# minuto} other {# minuti}}",
"hour": "{h, plural, =1 {# ora} other {# ore}}",
"day": "{d, plural, =1 {# giorno} other {# giorni}}"
},
"log": {
"empty": "Non ci sono notifiche",
"fetchFailure": "Errore nel caricare la fonte "{name}".",
"fetchSuccess": "{count, plural, =1 {# articolo} other {# articoli}} caricato con successo",
"networkError": "รจ occorso un errore di rete",
"parseError": "รจ occorso un errore nel anallizzare il feed rss",
"syncFailure": "Errore nel sicronizzarsi con il servizio"
},
"nav": {
"menu": "Menu",
"refresh": "Aggiorna",
"markAllRead": "Segna tutti come letti",
"notifications": "Notifiche",
"view": "View",
"settings": "Impostazioni",
"minimize": "Riduci a Icona",
"maximize": "Ingrandisci"
},
"menu": {
"close": "Chiudi menu",
"subscriptions": "Iscrizioni"
},
"article": {
"error": "Errore nel caricare articolo",
"reload": "Aggiorna?",
"empty": "Non ci sono articoli",
"untitled": "(Senza titolo)",
"hide": "Nascondi articolo",
"unhide": "Mostra articolo",
"markRead": "Segna come letto",
"markUnread": "Segna come non letto",
"markAbove": "Segna precedenti come letti",
"markBelow": "Segna successivi come letti",
"star": "salva",
"unstar": "rimuovi dai salvati",
"fontSize": "Dimensione testo",
"loadWebpage": "Carica pagina",
"loadFull": "Carica tutto il contenuto",
"notify": "Notifica se caricato in background",
"dontNotify": "Non notificare"
},
"context": {
"share": "Convidi",
"read": "Leggi",
"copyTitle": "Copia titolo",
"copyURL": "Copia link",
"copy": "Copia",
"search": "Cerca "{text}" on {engine}",
"view": "Visualizza",
"cardView": "Card view",
"listView": "List view",
"magazineView": "Magazine view",
"compactView": "Compact view",
"filter": "Filtra",
"unreadOnly": "Solo non letti",
"starredOnly": "Solo Salvati",
"fullSearch": "Cerca in tutto il lesto",
"showHidden": "Visualizza articoli nascosti",
"manageSources": "Gestisci fonti",
"saveImageAs": "Salva immagine come โ€ฆ",
"copyImage": "Copia immagine",
"copyImageURL": "Copia immagine link",
"caseSensitive": "Case sensitive",
"showCover": "Mostra copertina",
"showSnippet": "Show snippet",
"fadeRead": "Scolorisci articoli letti"
},
"searchEngine": {
"name": "Motore di ricerca",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "รจ occorso un errore nello scrivere il file",
"name": "Impostazioni",
"fetching": "Aggiornamento delle fonti..Attendi",
"exit": "Esci dalle Impostazioni",
"sources": "Fonti",
"grouping": "Gruppi",
"rules": "Regole",
"service": "Servizio",
"app": "Preferenze",
"about": "Informazioni",
"version": "Versione",
"shortcuts": "Shortcuts",
"openSource": "Open source",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "le fonti importate o aggiunte qui non saranno sincronizzate con il tuo servizio",
"serviceManaged": "la fonte รจ gesita dal tuo servizio",
"untitled": "Fonte",
"errorAdd": "Un errore รจ occorso nel caricare la fonte",
"errorParse": "Un errore รจ occorso nell analizzare il file OPML",
"errorParseInt": "Assicurati che il file non sia corrotto รจ sia in formato utf-8",
"errorImport": "Errore nel importare {count, plural, =1 {# fonte} other {# fonti}}.",
"exist": "Questa fonte รจ gia stata aggiunta",
"opmlFile": "OPML File",
"name": "Nome fonte",
"editName": "Modifica Nome",
"fetchFrequency": "Limite frecquenza di aggiornamento",
"unlimited": "Senza limite",
"openTarget": "Luogo predefinito di apertura degli articoli",
"delete": "Elimina fonte",
"add": "Aggiungi fonte",
"import": "Importa",
"export": "Esporta",
"rssText": "RSS visualizza tutto il testo",
"loadWebpage": "Carica pagina",
"inputUrl": "Inserisci URL",
"badIcon": "Icona non valida",
"badUrl": "URL non valido",
"deleteWarning": "La fonte รจ tutti i relativi articoli salvati verranno eliminati",
"selected": "Seleziona fonte",
"selectedMulti": "Seleziona piรน fonti"
},
"groups": {
"exist": "Questo gruppo giร  esiste",
"type": "Tipo",
"group": "Gruppo",
"source": "Fonte",
"capacity": "Capacita",
"exitGroup": "Ritorna ai gruppi",
"deleteSource": "Rimuovi dal gruppo",
"sourceHint": "Clicca e trascina le fonti per ordinarle",
"selectAllSources": "Seleziona tutte le fonti",
"create": "Crea gruppo",
"selectedGroup": "Seleziona gruppo",
"selectedSource": "Seleziona fonte",
"enterName": "Inserisci nome",
"editName": "Modificaname",
"editGroup": "Modifica gruppo",
"deleteGroup": "Elimina Gruppo",
"chooseGroup": "Seleziona un gruppo",
"addToGroup": "Aggiungi a ...",
"groupHint": "Doppio-Click sul gruppo per modificare le fonti. Clicca e trascina le fonti per ordinarle"
},
"rules": {
"intro": "automaticamentente seleziona articoli o manda notifiche tramite Regex",
"help": "Per saperne di piรน",
"target": "Destinazione",
"selectTarget": "Seleziona una destinazione",
"new": "Nuova Regola",
"title": "Titolo",
"content": "Contenuto",
"fullSearch": "Titolo o Contenuto",
"creator": "Autore",
"match": "Risultati",
"notMatch": "Non ci sono risultati",
"regex": "Espressione Regolare",
"badRegex": "Espressione Regolare Invalida",
"action": "Azioni",
"selectAction": "Seleziona azioni",
"hint": "Le regole si applicano agli articoli appena recuperati: tutti gli articoli โ†’ gruppo โ†’ fonte. Vengono eseguite dallโ€™alto in basso; le azioni successive hanno la precedenza. Trascina per riordinare. I test includono le regole delle destinazioni piรน ampie.",
"test": "Prova le regole",
"searchField": "Campo di ricerca",
"matchCondition": "Condizione di corrispondenza",
"save": "Salva regola",
"selectAll": "Seleziona tutte le regole",
"selectRule": "Seleziona regola",
"saveError": "Impossibile salvare le regole. Riprova."
},
"service": {
"intro": "Sincronizza attraverso i dispositivi i servizi RSS",
"select": "Seleziona un servizio",
"suggest": "Suggerisci un nuovo servizio",
"overwriteWarning": "Le fonti locali verranno eliminate se sono gia presenti nel servizio ",
"groupsWarning": "I gruppi non sono automaticamente sincronizzati con il servizio",
"rateLimitWarning": "Per evitare un limite nella frecquenza di aggiornamento dei avere una API key personalizzata",
"removeAd": "Rimuovi Annuncio",
"endpoint": "Indirizzo",
"username": "Username",
"password": "Password",
"unchanged": "Non modificato",
"fetchLimit": "Limite di Sincronizzazione",
"fetchLimitNum": "{count} articoli recenti",
"importGroups": "Importa gruppi",
"failure": "Impossibile connettersi al servizio",
"failureHint": "Controlla le impostazioni del servizio o se ci sono problemi di connessione",
"fetchUnlimited": "Illimitato (non Raccomandaot)",
"exportToLite": "Esporta a Fluent Reader Lite"
},
"app": {
"cleanup": "Pulisci",
"cache": "Elimina cache",
"cacheSize": "Dimensione Cache {size}",
"deleteChoices": "Rimuovi articoli di ... giorni fร ",
"confirmDelete": "Rimuovi",
"daysAgo": "{days, plural, =1 {# giorno} other {# giorni}} fร ",
"deleteAll": "Rimuovi tutti gli articoli",
"calculatingSize": "Calcolo dimensione...",
"itemSize": "Gli articoli occupano {size} ",
"confirmImport": "Vuoi veramente importare i dati dal file di backup? I dati correnti verranno eliminati",
"data": "Memoria Applicazione",
"backup": "Backup",
"restore": "Ripristina",
"frData": "Fluent Reader Data",
"language": "Lingua Display",
"theme": "Tema",
"lightTheme": "Tema chiaro",
"darkTheme": "Tema scuro",
"enableProxy": "Abilita Proxy",
"badUrl": "URL Invalido",
"pac": "Indirizzo PAC",
"setPac": " Imposta PAC",
"pacHint": "Per proxies Socks, รจ raccomandato per i PAC di ritornare "SOCKS5" per proxy-side DNS. Disabilitare i proxy neccessita il riavvio dell'applicazione",
"fetchInterval": "Ricarica intervallo Automaticamente",
"never": "Mai"
}
}


File: src/scripts/i18n/ja.json

[Binary file]


File: src/scripts/i18n/ko.json

{
"allArticles": "๋ชจ๋“  ๊ธ€",
"add": "์ถ”๊ฐ€",
"create": "์ƒ์„ฑ",
"icon": "์•„์ด์ฝ˜",
"name": "์ด๋ฆ„",
"openExternal": "๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์—ด๊ธฐ",
"emptyName": "์ด ์นธ์€ ๋น„์–ด์žˆ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.",
"emptyField": "์ด ์นธ์€ ๋น„์–ด์žˆ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.",
"edit": "์ˆ˜์ •",
"delete": "์‚ญ์ œ",
"followSystem": "์‹œ์Šคํ…œ ์„ค์ •์— ๋”ฐ๋ฆ„",
"more": "๋” ๋ณด๊ธฐ",
"close": "๋‹ซ๊ธฐ",
"search": "๊ฒ€์ƒ‰",
"loadMore": "๋” ๋ถˆ๋Ÿฌ์˜ค๊ธฐ",
"dangerButton": "{action}ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?",
"confirmMarkAll": "์ด ํŽ˜์ด์ง€์— ์žˆ๋Š” ๋ชจ๋“  ๊ธ€์„ ์ฝ์€ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?",
"confirm": "ํ™•์ธ",
"cancel": "์ทจ์†Œ",
"time": {
"now": "๋ฐฉ๊ธˆ",
"m": "๋ถ„ ์ „",
"h": "์‹œ๊ฐ„ ์ „",
"d": "์ผ ์ „",
"minute": "{m}๋ถ„",
"hour": "{h}์‹œ๊ฐ„",
"day": "{d}์ผ"
},
"log": {
"empty": "์•Œ๋ฆผ ์—†์Œ",
"fetchFailure": "ํ”ผ๋“œ "{name}"์˜ ๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.",
"fetchSuccess": "{count}๊ฐœ์˜ ๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.",
"networkError": "๋„คํŠธ์›Œํฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.",
"parseError": "XML ํ”ผ๋“œ๋ฅผ ํŒŒ์‹ฑํ•˜๋Š” ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.",
"syncFailure": "์„œ๋น„์Šค์™€ ๋™๊ธฐํ™”์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค."
},
"nav": {
"menu": "๋ฉ”๋‰ด",
"refresh": "์ƒˆ๋กœ๊ณ ์นจ",
"markAllRead": "๋ชจ๋‘ ์ฝ์€ ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌ",
"notifications": "์•Œ๋ฆผ",
"view": "๋ณด๊ธฐ",
"settings": "์„ค์ •",
"minimize": "์ตœ์†Œํ™”",
"maximize": "์ตœ๋Œ€ํ™”"
},
"menu": {
"close": "๋ฉ”๋‰ด ๋‹ซ๊ธฐ",
"subscriptions": "๊ตฌ๋…"
},
"article": {
"error": "๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.",
"reload": "๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ค์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?",
"empty": "๊ธ€ ์—†์Œ",
"untitled": "(์ œ๋ชฉ ์—†์Œ)",
"hide": "๊ธ€ ์ˆจ๊ธฐ๊ธฐ",
"unhide": "๊ธ€ ์ˆจ๊ธฐ๊ธฐ ์ทจ์†Œ",
"markRead": "์ฝ์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ",
"markUnread": "์ฝ์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ",
"markAbove": "์œ„์— ์žˆ๋Š” ๊ธ€์„ ๋ชจ๋‘ ์ฝ์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ",
"markBelow": "์•„๋ž˜์— ์žˆ๋Š” ๊ธ€์„ ๋ชจ๋‘ ์ฝ์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ",
"star": "๊ฐ•์กฐ",
"unstar": "๊ฐ•์กฐ ์ œ๊ฑฐ",
"fontSize": "๊ธ€๊ผด ํฌ๊ธฐ",
"loadWebpage": "์›นํŽ˜์ด์ง€ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ",
"loadFull": "๋ชจ๋“  ์ปจํ…์ธ  ๋ถˆ๋Ÿฌ์˜ค๊ธฐ",
"notify": "๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋™์ž‘ ์ค‘ ๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ์•Œ๋ฆผ",
"dontNotify": "์•Œ๋ฆฌ์ง€ ์•Š์Œ"
},
"context": {
"share": "๊ณต์œ ํ•˜๊ธฐ",
"read": "์ฝ๊ธฐ",
"copyTitle": "์ œ๋ชฉ ๋ณต์‚ฌํ•˜๊ธฐ",
"copyURL": "์ฃผ์†Œ ๋ณต์‚ฌํ•˜๊ธฐ",
"copy": "๋ณต์‚ฌ",
"search": "{engine}์—์„œ "{text}" ๊ฒ€์ƒ‰",
"view": "๋ณด๊ธฐ",
"cardView": "์นด๋“œ",
"listView": "๋ฆฌ์ŠคํŠธ",
"magazineView": "๋งค๊ฑฐ์ง„",
"compactView": "์ปดํŒฉํŠธ",
"filter": "ํ•„ํ„ฐ",
"unreadOnly": "์ฝ์ง€ ์•Š์€ ๊ธ€๋งŒ",
"starredOnly": "๊ฐ•์กฐ ํ‘œ์‹œํ•œ ๊ธ€๋งŒ",
"fullSearch": "๋ณธ๋ฌธ์—์„œ๋„ ๊ฒ€์ƒ‰",
"showHidden": "์ˆจ๊ฒจ์ง„ ๊ธ€ ํ‘œ์‹œ",
"manageSources": "ํ”ผ๋“œ ๊ด€๋ฆฌ",
"saveImageAs": "์ด๋ฏธ์ง€ ์ €์žฅํ•˜๊ธฐ",
"copyImage": "์ด๋ฏธ์ง€ ๋ณต์‚ฌํ•˜๊ธฐ",
"copyImageURL": "์ด๋ฏธ์ง€ ์ฃผ์†Œ ๋ณต์‚ฌํ•˜๊ธฐ",
"caseSensitive": "๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„",
"showCover": "์ปค๋ฒ„ ์ด๋ฏธ์ง€ ํ‘œ์‹œ",
"showSnippet": "์Šค๋‹ˆํŽซ ํ‘œ์‹œ",
"fadeRead": "์ฝ์€ ๊ธ€์„ ํฌ๋ฏธํ•˜๊ฒŒ ํ‘œ์‹œ"
},
"searchEngine": {
"name": "๊ฒ€์ƒ‰ ์—”์ง„",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋Š” ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.",
"name": "์„ค์ •",
"fetching": "์†Œ์Šค๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. ์ž ์‹œ๋งŒ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”โ€ฆ",
"exit": "์ข…๋ฃŒ",
"sources": "ํ”ผ๋“œ",
"grouping": "๊ทธ๋ฃน",
"rules": "๊ทœ์น™",
"service": "์„œ๋น„์Šค",
"app": "ํ™˜๊ฒฝ์„ค์ •",
"about": "์ด ์•ฑ์— ๊ด€ํ•˜์—ฌ",
"version": "๋ฒ„์ „",
"shortcuts": "๋‹จ์ถ•ํ‚ค",
"openSource": "์˜คํ”ˆ ํ”ผ๋“œ",
"feedback": "ํ”ผ๋“œ๋ฐฑ ์ œ์ถœ"
},
"sources": {
"serviceWarning": "์—ฌ๊ธฐ์„œ ๋ถˆ๋Ÿฌ์˜ค๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•œ ํ”ผ๋“œ๋Š” ์—ฐ๊ฒฐํ•œ ์„œ๋น„์Šค์™€ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.",
"serviceManaged": "์ด ํ”ผ๋“œ๋Š” ์—ฐ๊ฒฐํ•œ ์„œ๋น„์Šค์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
"untitled": "ํ”ผ๋“œ",
"errorAdd": "ํ”ผ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.",
"errorParse": "OPML ํŒŒ์ผ์„ ํŒŒ์‹ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.",
"errorParseHint": "ํŒŒ์ผ์ด ์†์ƒ๋˜์ง€ ์•Š์•˜๊ณ  UTF-8๋กœ ์ธ์ฝ”๋”ฉ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”.",
"errorImport": "{count}๊ฐœ์˜ ํ”ผ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.",
"exist": "์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ”ผ๋“œ์ž…๋‹ˆ๋‹ค.",
"opmlFile": "OPML ํŒŒ์ผ",
"name": "ํ”ผ๋“œ ์ด๋ฆ„",
"editName": "์ด๋ฆ„ ์ˆ˜์ •",
"fetchFrequency": "ํ”ผ๋“œ ์ƒˆ๋กœ๊ณ ์นจ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„",
"unlimited": "๋ฌด์ œํ•œ",
"openTarget": "๊ธ€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ๋ฒ•",
"delete": "ํ”ผ๋“œ ์‚ญ์ œ",
"add": "ํ”ผ๋“œ ์ถ”๊ฐ€",
"import": "๋ถˆ๋Ÿฌ์˜ค๊ธฐ",
"export": "๋‚ด๋ณด๋‚ด๊ธฐ",
"rssText": "RSS ์ „๋ฌธ",
"loadWebpage": "์›นํŽ˜์ด์ง€ ๋ถˆ๋Ÿฌ๊ณ ์ด",
"inputUrl": "URL ์ž…๋ ฅ",
"badIcon": "์œ ํšจํ•˜์ง€ ์•Š์€ ์•„์ด์ฝ˜",
"badUrl": "์œ ํšจํ•˜์ง€ ์•Š์€ URL",
"deleteWarning": "ํ”ผ๋“œ์™€ ์ €์žฅ๋œ ๊ธ€๋“ค์ด ๋ชจ๋‘ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.",
"selected": "์„ ํƒ๋œ ํ”ผ๋“œ",
"selectedMulti": "์„ ํƒ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”ผ๋“œ"
},
"groups": {
"exist": "์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.",
"type": "์œ ํ˜•",
"group": "๊ทธ๋ฃน",
"source": "ํ”ผ๋“œ",
"capacity": "์šฉ๋Ÿ‰",
"exitGroup": "๊ทธ๋ฃน์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ",
"deleteSource": "๊ทธ๋ฃน์—์„œ ์‚ญ์ œ",
"sourceHint": "ํ”ผ๋“œ๋ฅผ ๋Œ์–ด์„œ ์žฌ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
"selectAllSources": "๋ชจ๋“  ์†Œ์Šค ์„ ํƒ",
"create": "๊ทธ๋ฃน ์ƒ์„ฑ",
"selectedGroup": "์„ ํƒ๋œ ๊ทธ๋ฃน",
"selectedSource": "์„ ํƒ๋œ ํ”ผ๋“œ",
"enterName": "์ด๋ฆ„ ์ž…๋ ฅ",
"editName": "์ด๋ฆ„ ์ˆ˜์ •",
"editGroup": "๊ทธ๋ฃน ํŽธ์ง‘",
"deleteGroup": "๊ทธ๋ฃน ์‚ญ์ œ",
"chooseGroup": "๊ทธ๋ฃน ์„ ํƒ",
"addToGroup": "๊ทธ๋ฃน์— ์ถ”๊ฐ€",
"groupHint": "ํ”ผ๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๊ทธ๋ฃน์„ ๋”๋ธ” ํด๋ฆญํ•˜์„ธ์š”. ๋Œ์–ด์„œ ์žฌ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."
},
"rules": {
"intro": "์ •๊ทœ ํ‘œํ˜„์‹์œผ๋กœ ๊ธ€์„ ๋งˆํฌํ•˜๊ฑฐ๋‚˜ ์•Œ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.",
"help": "๋” ์•Œ์•„๋ณด๊ธฐ",
"target": "๋Œ€์ƒ",
"selectTarget": "๋Œ€์ƒ ์„ ํƒ",
"new": "์ƒˆ๋กœ์šด ๊ทœ์น™",
"title": "์ œ๋ชฉ",
"content": "๋‚ด์šฉ",
"fullSearch": "์ œ๋ชฉ ๋˜๋Š” ๋‚ด์šฉ",
"creator": "์ž‘์„ฑ์ž",
"match": "์ผ์น˜",
"notMatch": "์ผ์น˜ํ•˜์ง€ ์•Š์Œ",
"regex": "์ •๊ทœ ํ‘œํ˜„์‹",
"badRegex": "์œ ํšจํ•˜์ง€ ์•Š์€ ์ •๊ทœ ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค.",
"action": "ํ–‰๋™",
"selectAction": "ํ–‰๋™ ์„ ํƒ",
"hint": "๊ทœ์น™์€ ์ƒˆ๋กœ ๊ฐ€์ ธ์˜จ ๊ธฐ์‚ฌ์— ๋ชจ๋“  ๊ธฐ์‚ฌ โ†’ ๊ทธ๋ฃน โ†’ ์†Œ์Šค ์ˆœ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์•„๋ž˜๋กœ ์‹คํ–‰๋˜๋ฉฐ ์ดํ›„ ๋™์ž‘์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ์–ด์„œ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์—๋Š” ๋” ๋„“์€ ๋Œ€์ƒ์˜ ๊ทœ์น™์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.",
"test": "๊ทœ์น™ ํ…Œ์ŠคํŠธ",
"searchField": "๊ฒ€์ƒ‰ ํ•„๋“œ",
"matchCondition": "์ผ์น˜ ์กฐ๊ฑด",
"save": "๊ทœ์น™ ์ €์žฅ",
"selectAll": "๋ชจ๋“  ๊ทœ์น™ ์„ ํƒ",
"selectRule": "๊ทœ์น™ ์„ ํƒ",
"saveError": "๊ทœ์น™์„ ์ €์žฅํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ์‹œ๋„ํ•ด ์ฃผ์„ธ์š”."
},
"service": {
"intro": "RSS ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ๊ธฐ๊ฐ„ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.",
"select": "์„œ๋น„์Šค ์„ ํƒ",
"suggest": "์ƒˆ๋กœ์šด ์„œ๋น„์Šค ์ œ์•ˆ",
"overwriteWarning": "์„œ๋น„์Šค์— ํฌํ•จ๋œ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋กœ์ปฌ ํ”ผ๋“œ๋Š” ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.",
"groupsWarning": "๊ทธ๋ฃน๋“ค์€ ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.",
"rateLimitWarning": "์ œํ•œ์„ ํ”ผํ•˜๋ ค๋ฉด ์ž์‹ ๋งŒ์˜ API ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",
"removeAd": "๊ด‘๊ณ  ์ œ๊ฑฐ",
"endpoint": "์ข…๋‹จ",
"username": "์‚ฌ์šฉ์ž ์ด๋ฆ„",
"password": "๋น„๋ฐ€๋ฒˆํ˜ธ",
"unchanged": "๋ณ€๊ฒฝ์  ์—†์Œ",
"fetchLimit": "๋™๊ธฐํ™” ์ œํ•œ",
"fetchLimitNum": "์ตœ๊ทผ {count}๊ฐœ์˜ ๊ธ€",
"importGroups": "๊ทธ๋ฃน ๋ถˆ๋Ÿฌ์˜ค๊ธฐ",
"failure": "์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ",
"failureHint": "์„œ๋น„์Šค ์„ค์ •์ด๋‚˜ ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด๋ณด์„ธ์š”.",
"fetchUnlimited": "์ œํ•œ ์—†์Œ (์ถ”์ฒœํ•˜์ง€ ์•Š์Œ)",
"exportToLite": "Fluent Reader Lite์— ๋‚ด๋ณด๋‚ด๊ธฐ"
},
"app": {
"cleanup": "์ผ๊ด„ ์‚ญ์ œ",
"cache": "์บ์‹œ ์ง€์šฐ๊ธฐ",
"cacheSize": "{size}์˜ ์บ์‹œ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.",
"deleteChoices": "... ์ผ ์ „์— ์ž‘์„ฑ๋œ ๊ธ€์„ ์‚ญ์ œ",
"confirmDelete": "์‚ญ์ œ",
"daysAgo": "{days}์ผ ์ „",
"deleteAll": "๋ชจ๋“  ๊ธ€์„ ์‚ญ์ œ",
"calculatingSize": "ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค...",
"itemSize": "๋Œ€๋žต {size}์˜ ๋กœ์ปฌ ์ €์žฅ์†Œ๊ฐ€ ๋ถˆ๋Ÿฌ์˜จ ๊ธ€์— ์˜ํ•ด ์ ์œ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
"confirmImport": "๋ฐฑ์—… ํŒŒ์ผ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ํ˜„์žฌ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.",
"data": "์•ฑ ๋ฐ์ดํ„ฐ",
"backup": "๋ฐฑ์—…",
"restore": "๋ณต์›",
"frData": "Fluent Reader ๋ฐ์ดํ„ฐ",
"language": "์–ธ์–ด",
"theme": "ํ…Œ๋งˆ",
"lightTheme": "๋ผ์ดํŠธ ๋ชจ๋“œ",
"darkTheme": "๋‹คํฌ ๋ชจ๋“œ",
"enableProxy": "ํ”„๋ก์‹œ ํ™œ์„ฑํ™”",
"badUrl": "์œ ํšจํ•˜์ง€ ์•Š์€ URL",
"pac": "PAC ์ฃผ์†Œ",
"setPac": "PAC ์„ค์ •",
"pacHint": "Socks ํ”„๋ก์‹œ์˜ ๊ฒฝ์šฐ์—๋Š” PAC์ด ํ”„๋ก์‹œ์ธก DNS์— "SOCKS5"๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.. ์žฌ์‹œ์ž‘ํ•˜๋ ค๋ฉด ํ”„๋ก์‹œ๋ฅผ ์ข…๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.",
"fetchInterval": "ํ”ผ๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฐ„๊ฒฉ",
"never": "ํ•˜์ง€ ์•Š์Œ"
}
}


File: src/scripts/i18n/nl.json

{
"allArticles": "Alle artikelen",
"add": "Toevoegen",
"create": "Maken",
"icon": "Pictogram",
"name": "Naam",
"openExternal": "Openen in webbrowser",
"emptyName": "Dit veld mag niet blanco zijn.",
"emptyField": "Dit veld mag niet blanco zijn.",
"edit": "Bewerken",
"delete": "Verwijderen",
"followSystem": "Systeeminstellingen gebruiken",
"more": "Meer",
"close": "Sluiten",
"search": "Zoeken",
"loadMore": "Meer laden",
"dangerButton": "{action} bevestigen",
"confirmMarkAll": "Weet je zeker dat je alle artikelen op deze pagina als gelezen wilt markeren?",
"confirm": "Ja",
"cancel": "Annuleren",
"time": {
"now": "nu",
"m": "m",
"h": "u",
"d": "d",
"minute": "{m, plural, =1 {# minuut} other {# minuten}}",
"hour": "{h, plural, =1 {# uur} other {# uur}}",
"day": "{d, plural, =1 {# dag} other {# dagen}}"
},
"log": {
"empty": "Geen meldingen",
"fetchFailure": "De bron, {name}, kan niet worden geladen.",
"fetchSuccess": "Artikelen opgehaald: {count, plural, =1 {# article} other {# articles}}.",
"networkError": "Er is een netwerkfout opgetreden.",
"parseError": "Er is een fout opgetreden tijdens het verwerken van de xml-feed.",
"syncFailure": "Het synchroniseren met de dienst is mislukt"
},
"nav": {
"menu": "Menu",
"refresh": "Verversen",
"markAllRead": "Alles markeren als gelezen",
"notifications": "Meldingen",
"view": "Weergave",
"settings": "Instellingen",
"minimize": "Minimaliseren",
"maximize": "Maximaliseren"
},
"menu": {
"close": "Menu sluiten",
"subscriptions": "Abonnementen"
},
"article": {
"error": "Het artikel kan niet worden geladen.",
"reload": "Herladen?",
"empty": "Geen artikelen",
"untitled": "(naamloos)",
"hide": "Artikel verbergen",
"unhide": "Artikel tonen",
"markRead": "Markeren als gelezen",
"markUnread": "Markeren als ongelezen",
"markAbove": "Artikelen hierboven markeren als gelezen",
"markBelow": "Artikelen hieronder markeren als gelezen",
"star": "Toevoegen aan favorieten",
"unstar": "Verwijderen uit favorieten",
"fontSize": "Tekstgrootte",
"loadWebpage": "Webpagina laden",
"loadFull": "Volledige inhoud laden",
"notify": "Melding tonen na ophalen op achtergrond",
"dontNotify": "Geen melding tonen"
},
"context": {
"share": "Delen",
"read": "Gelezen",
"copyTitle": "Titel kopiรซren",
"copyURL": "Link kopiรซren",
"copy": "Kopiรซren",
"search": "Naar โ€˜{text}โ€™ zoeken op {engine}",
"view": "Weergave",
"cardView": "Kaartweergave",
"listView": "Lijstweergave",
"magazineView": "Tijdschriftweergave",
"compactView": "Compacte weergave",
"filter": "Filteren",
"unreadOnly": "Alleen ongelezen",
"starredOnly": "Alleen favorieten",
"fullSearch": "Volledige tekst doorzoeken",
"showHidden": "Verborgen artikelen tonen",
"manageSources": "Bronnen beheren",
"saveImageAs": "Afbeelding opslaan alsโ€ฆ",
"copyImage": "Afbeelding kopiรซren",
"copyImageURL": "Afbeeldingsadres kopiรซren",
"caseSensitive": "Hoofdlettergevoelig",
"showCover": "Omslag tonen",
"showSnippet": "Knipsel tonen",
"fadeRead": "Gelezen artikelen dimmen"
},
"searchEngine": {
"name": "Zoekmachine",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Er is een fout opgetreden tijdens het wegschrijven van het bestand.",
"name": "Instellingen",
"fetching": "Bezig met bijwerken van bronnenโ€ฆ",
"exit": "Instellingen afsluiten",
"sources": "Bronnen",
"grouping": "Groepen",
"rules": "Regels",
"service": "Dienst",
"app": "Instellingen",
"about": "Over",
"version": "Versie",
"shortcuts": "Sneltoetsen",
"openSource": "Open source",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Hier toegevoegde of geรฏmporteerde bronnen worden niet gesynchroniseerd met je dienst.",
"serviceManaged": "Deze bron wordt beheerd door je dienst.",
"untitled": "Bron",
"errorAdd": "Er is een fout opgetreden tijdens het toevoegen.",
"errorParse": "Er is een fout opgetreden tijdens het verwerken van het opml-bestand.",
"errorParseHint": "Controleer of het bestand niet beschadigd is en opgemaakt is met utf-8.",
"errorImport": "Importeren mislukt: {count, plural, =1 {# source} other {# sources}}.",
"exist": "Deze bron is al toegevoegd.",
"opmlFile": "OPML-bestand",
"name": "Bronnaam",
"editName": "Naam bewerken",
"fetchFrequency": "Ophaalfrequentie aanpassen",
"unlimited": "Onbeperkt",
"openTarget": "Standaarddoel bij artikelen",
"delete": "Bron verwijderen",
"add": "Bron toevoegen",
"import": "Importeren",
"export": "Exporteren",
"rssText": "RSS met volledige tekst",
"loadWebpage": "Webpagina laden",
"inputUrl": "Voer een url in",
"badIcon": "Ongeldig pictogram",
"badUrl": "Ongeldige url",
"deleteWarning": "De bron en alle opgeslagen artikelen worden verwijderd.",
"selected": "Gekozen bron",
"selectedMulti": "Meerdere bronnen gekozen"
},
"groups": {
"exist": "Deze groep bestaat al.",
"type": "Soort",
"group": "Groep",
"source": "Bron",
"capacity": "Capaciteit",
"exitGroup": "Terug naar groepen",
"deleteSource": "Verwijderen uit groep",
"sourceHint": "Versleep bronnen om ze anders te rangschikken.",
"selectAllSources": "Alle bronnen selecteren",
"create": "Groep aanmaken",
"selectedGroup": "Gekozen groep",
"selectedSource": "Gekozen bron",
"enterName": "Voer een naam in",
"editName": "Naam aanpassen",
"editGroup": "Groep bewerken",
"deleteGroup": "Groep verwijderen",
"chooseGroup": "Kies een groep",
"addToGroup": "Toevoegen aanโ€ฆ",
"groupHint": "Dubbelklik op een groep om de bronnen ervan aan te passen - versleep om anders te rangschikken."
},
"rules": {
"intro": "Markeer artikelen automatisch of verstuur meldingen met reguliere uitdrukkingen.",
"help": "Meer informatie",
"target": "Doel",
"selectTarget": "Selecteer een doel",
"new": "Nieuwe regel",
"title": "Titel",
"content": "Inhoud",
"fullSearch": "Titel of inhoud",
"creator": "Auteur",
"match": "overeenkomsten",
"notMatch": "komt niet overeen",
"regex": "Reguliere uitdrukking",
"badRegex": "Ongeldige reguliere uitdrukking.",
"action": "Acties",
"selectAction": "Kies acties",
"hint": "Regels gelden voor nieuw opgehaalde artikelen: alle artikelen โ†’ groep โ†’ bron. Ze worden van boven naar beneden uitgevoerd; latere acties hebben voorrang. Sleep om de volgorde te wijzigen. Tests omvatten regels van bredere doelen.",
"test": "Regels testen",
"searchField": "Zoekveld",
"matchCondition": "Overeenkomstvoorwaarde",
"save": "Regel opslaan",
"selectAll": "Alle regels selecteren",
"selectRule": "Regel selecteren",
"saveError": "De regels konden niet worden opgeslagen. Probeer het opnieuw."
},
"service": {
"intro": "Synchroniseer tussen apparaten middels rss-diensten.",
"select": "Kies een dienst",
"suggest": "Nieuwe dienst aandragen",
"overwriteWarning": "Lokale bronnen worden verwijderd als de dienst ze al kent.",
"groupsWarning": "Groepen worden niet automatisch gesynchroniseerd met de dienst.",
"rateLimitWarning": "Geef je eigen api-sleutel op om beperkingen te voorkomen.",
"removeAd": "Reclame verwijderen",
"endpoint": "Endpoint",
"username": "Gebruikersnaam",
"password": "Wachtwoord",
"unchanged": "Ongewijzigd",
"fetchLimit": "Synchronisatielimiet",
"fetchLimitNum": "{count} recentste artikelen",
"importGroups": "Groepen importeren",
"failure": "Er kan geen verbinding worden gemaakt met de dienst",
"failureHint": "Controleer de dienstinstellingen of netwerkstatus.",
"fetchUnlimited": "Onbeperkt (niet aanbevolen)",
"exportToLite": "Exporteren naar Fluent Reader Lite"
},
"app": {
"cleanup": "Opruimen",
"cache": "Cache legen",
"cacheSize": "In cache: {size} aan gegevens",
"deleteChoices": "Artikelen verwijderen die ouder zijn dan โ€ฆ dagen",
"confirmDelete": "Verwijderen",
"daysAgo": "{days, plural, =1 {# dag} other {# dagen}} geleden",
"deleteAll": "Alle artikelen verwijderen",
"calculatingSize": "Bezig met grootteberekeningโ€ฆ",
"itemSize": "De artikelen nemen ongeveer {size} aan lokale opslag in beslag",
"confirmImport": "Weet je zeker dat je artikelen wilt importeren uit een back-upbestand? Alle huidige gegevens worden verwijderd.",
"data": "Programmagegevens",
"backup": "Back-uppen",
"restore": "Herstellen",
"frData": "Fluent Reader-gegevens",
"language": "Weergavetaal",
"theme": "Thema",
"lightTheme": "Licht",
"darkTheme": "Donker",
"enableProxy": "Proxy gebruiken",
"badUrl": "Ongeldige url",
"pac": "PAC-adres",
"setPac": "PAC instellen",
"pacHint": "Bij Socks-proxies is het aanbevolen om PAC โ€˜SOCKS5โ€™ te laten ophalen aan de dns-kant. Herstart om de proxy uit te schakelen.",
"fetchInterval": "Automatisch ophalen",
"never": "Nooit"
}
}


File: src/scripts/i18n/pl.json

{
"allArticles": "Wszystkie wpisy",
"add": "Dodaj",
"create": "Utwรณrz",
"icon": "Ikona",
"name": "Tytuล‚",
"openExternal": "Otwรณrz poza aplikacjฤ…",
"emptyName": "To pole nie moลผe pozostaฤ‡ puste.",
"emptyField": "To pole nie moลผe pozostaฤ‡ puste.",
"edit": "Edytuj",
"delete": "Usuล„",
"followSystem": "Zgodnie z systemem",
"more": "Wiฤ™cej",
"close": "Zamknij",
"search": "Szukaj",
"loadMore": "Doล‚aduj",
"dangerButton": "Potwierdลบ {action}?",
"confirmMarkAll": "Czy na pewno chcesz oznaczyฤ‡ wszystkie wpisy na tej stronie jako przeczytane?",
"confirm": "Potwierdลบ",
"cancel": "Anuluj",
"default": "Domyล›lnie",
"time": {
"now": "teraz",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, zero {# minut} one {# minuta} few {# minuty} many {# minut} other {# minut}}",
"hour": "{h, plural, zero {# godzin} one {# godzina} few {# godziny} many {# godzin} other {# godzin}}",
"day": "{d, plural, zero {# dni} one {# dzieล„} other {# dni}}"
},
"log": {
"empty": "Brak powiadomieล„",
"fetchFailure": "Nie udaล‚o siฤ™ zaล‚adowaฤ‡ ลบrรณdล‚a "{name}".",
"fetchSuccess": "Pobrano {count, plural, zero {# wpisรณw} one {# wpis} few {# wpisy} other {# wpisรณw}}.",
"networkError": "Wystฤ…piล‚ problem z sieciฤ….",
"parseError": "Wystฤ…piล‚ problem w interpretacji kanaล‚u XML.",
"syncFailure": "Synchronizacja z usล‚ugฤ… nie powiodล‚a siฤ™"
},
"nav": {
"menu": "Menu",
"refresh": "Odล›wieลผ",
"markAllRead": "Oznacz wszystkie jako przeczytane",
"notifications": "Powiadomienia",
"view": "Widok",
"settings": "Ustawienia",
"minimize": "Minimalizuj",
"maximize": "Maksymalizuj"
},
"menu": {
"close": "Zamknij menu",
"subscriptions": "Subskrypcje"
},
"article": {
"error": "Nie zaล‚adowano wpisu.",
"reload": "Przeล‚adowaฤ‡?",
"empty": "Brak wpisรณw",
"untitled": "(Bez tytuล‚u)",
"hide": "Ukryj wpis",
"unhide": "Pokaลผ wpis",
"markRead": "Oznacz jako przeczytany",
"markUnread": "Oznacz jako nieprzeczytany",
"markAbove": "Oznacz powyลผsze jako przeczytane",
"markBelow": "Oznacz poniลผsze jako przeczytane",
"star": "Oznacz gwiazdkฤ…",
"unstar": "Usuล„ gwiazdkฤ™",
"fontSize": "Rozmiar czcionki",
"loadWebpage": "Zaล‚aduj stronฤ™ internetowฤ…",
"loadFull": "Zaล‚aduj peล‚nฤ… zawartoล›ฤ‡",
"notify": "Powiadom po pobraniu w tle",
"dontNotify": "Nie powiadamiaj",
"textDir": "Kierunek tekstu",
"LTR": "Od lewej do prawej",
"RTL": "Od prawej do lewej",
"Vertical": "Pionowo",
"font": "Czcionka"
},
"context": {
"share": "Udostฤ™pnij",
"read": "Czytaj",
"copyTitle": "Skopiuj tytuล‚",
"copyURL": "Skopiuj ล‚ฤ…cze",
"copy": "Kopiuj",
"search": "Szukaj "{text}" uลผywajฤ…c {engine}",
"view": "Widok",
"cardView": "Widok karciany",
"listView": "Widok listy",
"magazineView": "Widok magazynu",
"compactView": "Widok kompaktowy",
"filter": "Filtrowanie",
"unreadOnly": "Tylko nieprzeczytane",
"starredOnly": "Tylko oznaczone gwiazdkฤ…",
"fullSearch": "Przeszukiwanie caล‚ej treล›ci",
"showHidden": "Pokaลผ ukryte wpisy",
"manageSources": "Zarzฤ…dzaj ลบrรณdล‚ami",
"saveImageAs": "Zapisz obraz jako โ€ฆ",
"copyImage": "Kopiuj obraz",
"copyImageURL": "Kopiuj ล‚ฤ…cze do obrazu",
"caseSensitive": "Sprawdzaj wielkoล›ฤ‡ liter",
"showCover": "Pokaลผ okล‚adkฤ™",
"showSnippet": "Pokaลผ podglฤ…d",
"fadeRead": "Przyฤ‡mij przeczytane wpisy"
},
"searchEngine": {
"name": "Wyszukiwarka",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Wystฤ…piล‚ bล‚ฤ…d podczas zapisu do pliku.",
"name": "Ustawienia",
"fetching": "Aktualizacja ลบrรณdeล‚, proszฤ™ czekaฤ‡ โ€ฆ",
"exit": "Zamknij ustawienia",
"sources": "ลนrรณdล‚a",
"grouping": "Grupy",
"rules": "Reguล‚y",
"service": "Usล‚uga",
"app": "Preferencje",
"about": "O aplikacji",
"version": "Wersja",
"shortcuts": "Skrรณty klawiszowe",
"openSource": "Otwarte ลบrรณdล‚o",
"feedback": "Opinie"
},
"sources": {
"serviceWarning": "ลนrรณdล‚a zaimportowane lub dodane w tym miejscu nie bฤ™dฤ… synchronizowane z twojฤ… usล‚ugฤ….",
"serviceManaged": "To ลบrรณdล‚o jest zarzฤ…dzane przez twojฤ… usล‚ugฤ™.",
"untitled": "ลนrรณdล‚o",
"errorAdd": "Wystฤ…piล‚ bล‚ad z dodawaniem ลบrรณdล‚a.",
"errorParse": "Wystฤ…piล‚ bล‚ฤ…d z odczytywaniem pliku OPML.",
"errorParseHint": "Upewnij siฤ™, ลผe plik uลผywa kodowania UTF-8 i jest poprawnie zapisany.",
"errorImport": "Bล‚ad w importowaniu {count, plural, zero {# ลบrรณdeล‚} one {# ลบrรณdล‚a} other {# ลบrรณdeล‚}}.",
"exist": "To ลบrรณdล‚o juลผ istnieje.",
"opmlFile": "Plik OPML",
"name": "Nazwa ลบrรณdล‚a",
"editName": "Edytuj nazwฤ™",
"fetchFrequency": "Czฤ™stotliwoล›ฤ‡ sprawdzania",
"unlimited": "Nielimitowana",
"openTarget": "Domyล›lny sposรณb otwierania wpisรณw",
"delete": "Usuล„ ลบrรณdล‚o",
"add": "Dodaj ลบrรณdล‚o",
"import": "Importuj",
"export": "Eksportuj",
"rssText": "Caล‚y tekst RSS",
"loadWebpage": "Zaล‚aduj stronฤ™",
"inputUrl": "Wpisz URL",
"badIcon": "Niepoprawna ikona",
"badUrl": "Niepoprawny URL",
"deleteWarning": "ลนrรณdล‚o i wszystkie pobrane wpisy zostanฤ… usuniฤ™te.",
"selected": "Wybrane ลบrรณdล‚o",
"selectedMulti": "Wybrano wiele ลบrรณdeล‚",
"hidden": "Ukryj w widoku wszystkich wpisรณw"
},
"groups": {
"exist": "Taka grupa juลผ istnieje.",
"type": "Typ",
"group": "Grupa",
"source": "ลนrรณdล‚o",
"capacity": "Licznoล›ฤ‡",
"exitGroup": "Wrรณฤ‡ do grup",
"deleteSource": "Usuล„ z grupy",
"sourceHint": "Przeciฤ…gaj ลบrรณdล‚a, aby zmieniฤ‡ ich kolejnoล›ฤ‡.",
"selectAllSources": "Zaznacz wszystkie ลบrรณdล‚a",
"create": "Stwรณrz grupฤ™",
"selectedGroup": "Wybrane grupy",
"selectedSource": "Wybrane ลบrรณdล‚a",
"enterName": "Podaj nazwฤ™",
"editName": "Edytuj nazwฤ™",
"editGroup": "Edytuj grupฤ™",
"deleteGroup": "Usuล„ grupฤ™",
"chooseGroup": "Wybierz grupฤ™",
"addToGroup": "Dodaj do โ€ฆ",
"groupHint": "Kliknij dwukrotnie na grupฤ™, aby edytowaฤ‡ ลบrรณdล‚a. Przeciฤ…gnij, by zmieniฤ‡ kolejnoล›ฤ‡."
},
"rules": {
"intro": "Automatycznie oznaczaj wpisy lub wysyล‚aj powiadomienia w oparciu o wyraลผenia regularne.",
"help": "Dowiedz siฤ™ wiฤ™cej",
"target": "Cel",
"selectTarget": "Wybierz cel",
"new": "Nowa reguล‚a",
"title": "Tytuล‚",
"content": "Zawartoล›ฤ‡",
"fullSearch": "Tytuล‚ lub zawartoล›ฤ‡",
"creator": "Autor",
"match": "pasuje do",
"notMatch": "nie pasuje do",
"regex": "wyraลผenia regularnego",
"badRegex": "Niepoprawne wyraลผenie regularne.",
"action": "Akcje",
"selectAction": "Wybierz akcje",
"hint": "Reguล‚y dotyczฤ… nowo pobranych artykuล‚รณw: wszystkie artykuล‚y โ†’ grupa โ†’ ลบrรณdล‚o. Sฤ… wykonywane od gรณry do doล‚u; pรณลบniejsze dziaล‚ania majฤ… pierwszeล„stwo. Przeciฤ…gnij, aby zmieniฤ‡ kolejnoล›ฤ‡. Testy obejmujฤ… reguล‚y szerszych celรณw.",
"test": "Przetesuj reguล‚ฤ™",
"searchField": "Pole wyszukiwania",
"matchCondition": "Warunek dopasowania",
"save": "Zapisz reguล‚ฤ™",
"selectAll": "Wybierz wszystkie reguล‚y",
"selectRule": "Wybierz reguล‚ฤ™",
"saveError": "Nie udaล‚o siฤ™ zapisaฤ‡ reguล‚. Sprรณbuj ponownie."
},
"service": {
"intro": "Synchronizuj urzฤ…dzenia z pomocฤ… usล‚ug RSS.",
"select": "Wybierz usล‚ugฤ™",
"suggest": "Zasugeruj nowฤ… usล‚ugฤ™",
"overwriteWarning": "Lokalne ลบrรณdล‚a bฤ™dฤ… zastฤ…pione, jeล›li majฤ… odpowiedniki w usล‚udze.",
"groupsWarning": "Grupy nie sฤ… automatycznie synchronizowane w usล‚udze.",
"rateLimitWarning": "Aby zapobiec ograniczeniu czฤ™stotliwoล›ci zapytaล„ musisz stworzyฤ‡ wล‚asny klucz API.",
"removeAd": "Usuล„ reklamฤ™",
"endpoint": "Endpoint",
"username": "Nazwa uลผytkownika",
"password": "Hasล‚o",
"unchanged": "Bez zmian",
"fetchLimit": "Limit synchronizacji",
"fetchLimitNum": "{count} najnowszych wpisรณw",
"importGroups": "Importuj grupy",
"failure": "Nie moลผna poล‚ฤ…czyฤ‡ siฤ™ z usล‚ugฤ…",
"failureHint": "Sprawdลบ konfiguracjฤ™ usล‚ugi i czy jest z niฤ… poล‚ฤ…czenie.",
"fetchUnlimited": "Nielimitowana (niezalecana)",
"exportToLite": "Eksportuj do Fluent Reader Lite"
},
"app": {
"cleanup": "Wyczyล›ฤ‡",
"cache": "Wyczyล›ฤ‡ pamiฤ™ฤ‡ podrฤ™cznฤ…",
"cacheSize": "Przechowano {size} danych",
"deleteChoices": "Usuล„ wpisy sprzed ... dni",
"confirmDelete": "Usuล„",
"daysAgo": "{days, plural, zero {# dni} one {# dzieล„} other {# dni}}",
"deleteAll": "Usuล„ wszystkie wpisy",
"calculatingSize": "Szacowanie rozmiaru...",
"itemSize": "Zachowane wpisy zajmujฤ… okoล‚o {size} miejsca na dysku.",
"confirmImport": "Czy na pewno chcesz zaimportowaฤ‡ dane z kopii zapasowej? Wszystkie aktualne dane bฤ™dฤ… wyczyszczone.",
"data": "Dane aplikacji",
"backup": "Utwรณrz kopiฤ™ zapasowฤ…",
"restore": "Odtwรณrz dane z kopii zapasowej",
"frData": "Dane programu Fluent Reader",
"language": "Jฤ™zyk interfejsu",
"theme": "Motyw",
"lightTheme": "Jasny",
"darkTheme": "Ciemny",
"enableProxy": "Uลผyj serwera poล›redniczฤ…cego",
"badUrl": "Niepoprawny URL",
"pac": "Adres PAC",
"setPac": "Ustaw PAC",
"pacHint": "Dla serwerรณw proxy Socks, zalecane jest aby PAC zwrรณciล‚ "SOCKS5" dla DNS po stronie proxy. Wyล‚ฤ…czenie serwera poล›redniczฤ…cego wymaga restartu.",
"fetchInterval": "Czฤ™stotliwoล›ฤ‡ automatycznego pobierania danych",
"never": "Nigdy"
}
}


File: src/scripts/i18n/pt-BR.json

{
"allArticles": "Todos os artigos",
"add": "Adicionar",
"create": "Criar",
"icon": "รcone",
"name": "Nome",
"openExternal": "Abrir externamente",
"emptyName": "Este campo nรฃo pode ficar vazio.",
"emptyField": "Este campo nรฃo pode ficar vazio.",
"edit": "Editar",
"delete": "Deletar",
"followSystem": "Seguir o sistema",
"more": "Mais",
"close": "Fechar",
"search": "Pesquisar",
"loadMore": "Carregar mais",
"dangerButton": "Confirmar {action}?",
"confirmMarkAll": "Vocรช realmente deseja marcar todos os artigos dessa pรกgina como lidos?",
"confirm": "Confirmar",
"cancel": "Cancelar",
"time": {
"now": "agora",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, =1 {# minuto} other {# minutos}}",
"hour": "{h, plural, =1 {# hora} other {# horas}}",
"day": "{d, plural, =1 {# dia} other {# dias}}"
},
"log": {
"empty": "Nenhuma notificaรงรฃo",
"fetchFailure": "Falha ao carregar a fonte "{name}".",
"fetchSuccess": "{count, plural, =1 {# Artigo} other {# Artigos}} foram atualizados com sucesso.",
"networkError": "Ocorreu um erro na rede.",
"parseError": "Ocorreu um erro ao analisar o feed XML.",
"syncFailure": "Falha ao sincronizar com o serviรงo"
},
"nav": {
"menu": "Menu",
"refresh": "Atualizar",
"markAllRead": "Marcar todos como lidos",
"notifications": "Notificaรงรตes",
"view": "Visualizaรงรฃo",
"settings": "Configuraรงรตes",
"minimize": "Minimizar",
"maximize": "Maximizar"
},
"menu": {
"close": "Fechar menu",
"subscriptions": "Inscriรงรตes"
},
"article": {
"error": "Falha ao carregar o artigo.",
"reload": "Recarregar?",
"empty": "Nenhum artigo",
"untitled": "(Sem tรญtulo)",
"hide": "Ocultar artigo",
"unhide": "Exibir artigo",
"markRead": "Marcar como lido",
"markUnread": "Marcar como nรฃo lido",
"markAbove": "Marcar artigo(s) abaixo como lido(s)",
"markBelow": "Marcar artigo(s) abaixo como nรฃo lido(s)",
"star": "Marcar como favorito",
"unstar": "Remover marcaรงรฃo",
"fontSize": "Tamanho da fonte",
"loadWebpage": "Carregar pรกgina web",
"loadFull": "Carregar todo o conteรบdo",
"notify": "Notificar se atualizado em segundo plano",
"dontNotify": "Nรฃo notificar"
},
"context": {
"share": "Compartilhar",
"read": "Ler",
"copyTitle": "Copiar tรญtulo",
"copyURL": "Copiar link",
"copy": "Copiar",
"search": "Pesquisar "{text}" no {engine}",
"view": "Visualizaรงรฃo",
"cardView": "Como cartรตes",
"listView": "Em lista",
"magazineView": "Como revista",
"compactView": "Compacto",
"filter": "Filtrar",
"unreadOnly": "Somente nรฃo lidos",
"starredOnly": "Somente favoritos",
"fullSearch": "Pesquisar em todo o texto",
"showHidden": "Exibir artigos ocultos",
"manageSources": "Gerenciar fontes",
"saveImageAs": "Salvar imagem como โ€ฆ",
"copyImage": "Copiar imagem",
"copyImageURL": "Copiar link da imagem",
"caseSensitive": "Diferenciar maiรบsculas e minรบsculas",
"showCover": "Exibir capa",
"showSnippet": "Mostrar trecho",
"fadeRead": "Esmaecer artigos lidos"
},
"searchEngine": {
"name": "Motor de pesquisa",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Ocorreu um erro ao gravar o arquivo.",
"name": "Configuraรงรตes",
"fetching": "Atualizando fontes, por favor aguarde โ€ฆ",
"exit": "Sair das Configuraรงรตes",
"sources": "Fontes",
"grouping": "Grupos",
"rules": "Regras",
"service": "Serviรงo",
"app": "Preferรชncias",
"about": "Sobre",
"version": "Versรฃo",
"shortcuts": "Atalhos",
"openSource": "Cรณdigo aberto",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Fontes importadas ou adicionadas aqui nรฃo serรฃo sincronizadas com o seu serviรงo.",
"serviceManaged": "Essa fonte รฉ gerenciada pelo seu serviรงo.",
"untitled": "Fonte",
"errorAdd": "Ocorreu um erro ao adicionar a fonte.",
"errorParse": "Ocorreu um erro ao analisar o arquivo OPML.",
"errorParseHint": "Certifique-se de que o arquivo nรฃo esteja corrompido e que esteja codificado com UTF-8.",
"errorImport": "Erro ao importar {count, plural, =1 {# fonte} other {# fontes}}.",
"exist": "Esta fonte jรก existe.",
"opmlFile": "Arquivo OPML",
"name": "Nome da fonte",
"editName": "Editar nome",
"fetchFrequency": "Limite da frequรชncia de atualizaรงรฃo",
"unlimited": "Ilimitado",
"openTarget": "Mรฉtodo padrรฃo de carregamento dos artigos",
"delete": "Deletar fonte",
"add": "Adicionar fonte",
"import": "Importar",
"export": "Exportar",
"rssText": "Texto completo do RSS",
"loadWebpage": "Carregar pรกgina web",
"inputUrl": "Insira a URL",
"badIcon": "รcone invรกlido",
"badUrl": "URL invรกlida",
"deleteWarning": "A fonte e todos os artigos salvos serรฃo removidos.",
"selected": "Fonte selecionada",
"selectedMulti": "Mรบltiplas fontes selecionadas"
},
"groups": {
"exist": "Este grupo jรก existe.",
"type": "Tipo",
"group": "Grupo",
"source": "Fonte",
"capacity": "Capacidade",
"exitGroup": "Voltar para os grupos",
"deleteSource": "Deletar deste grupo",
"sourceHint": "Arraste e solte as fontes para reorganizรก-las.",
"selectAllSources": "Selecionar todas as fontes",
"create": "Criar grupo",
"selectedGroup": "Grupo selecionado",
"selectedSource": "Fonte selecionada",
"enterName": "Insira o nome",
"editName": "Editar o nome",
"editGroup": "Editar grupo",
"deleteGroup": "Deletar grupo",
"chooseGroup": "Selecione um grupo",
"addToGroup": "Adicionar para ...",
"groupHint": "Clique duplo nos grupos para editar as fontes; Arraste e solte para reorganizรก-los."
},
"rules": {
"intro": "Marcar artigos automaticamente ou enviar notificaรงรตes com base em regras de expressรตes regulares.",
"help": "Saiba mais",
"target": "Destino",
"selectTarget": "Selecione um destino",
"new": "Nova regra",
"title": "Tรญtulo",
"content": "Conteรบdo",
"fullSearch": "Tรญtulo ou conteรบdo",
"creator": "Autor",
"match": "corresponde",
"notMatch": "nรฃo corresponde",
"regex": "Expressรฃo regular",
"badRegex": "Expressรฃo regular invรกlida.",
"action": "Aรงรตes",
"selectAction": "Selecionar aรงรตes",
"hint": "As regras se aplicam aos artigos recรฉm-obtidos: todos os artigos โ†’ grupo โ†’ fonte. Sรฃo executadas de cima para baixo; aรงรตes posteriores tรชm prioridade. Arraste para reordenar. Os testes incluem regras de destinos mais amplos.",
"test": "Testar regras",
"searchField": "Campo de pesquisa",
"matchCondition": "Condiรงรฃo de correspondรชncia",
"save": "Salvar regra",
"selectAll": "Selecionar todas as regras",
"selectRule": "Selecionar regra",
"saveError": "Nรฃo foi possรญvel salvar as regras. Tente novamente."
},
"service": {
"intro": "Sincronizaรงรฃo entre dispositivos com serviรงos RSS.",
"select": "Selecione um serviรงo",
"suggest": "Sugerir um novo serviรงo",
"overwriteWarning": "Fontes locais serรฃo deletas se elas existirem no serviรงo.",
"groupsWarning": "Grupos nรฃo sรฃo automaticamente sincronizados com o serviรงo.",
"rateLimitWarning": "Para evitar limitaรงรตes do serviรงo, vocรช precisa criar sua prรณpria chave de API.",
"removeAd": "Remover Ad",
"endpoint": "Endpoint",
"username": "Usuรกrio",
"password": "Senha",
"unchanged": "Inalterado",
"fetchLimit": "Limite de sincronizaรงรฃo",
"fetchLimitNum": "{count} รบltimos artigos",
"importGroups": "Importar grupos",
"failure": "Nรฃo foi possรญvel conectar ao serviรงo",
"failureHint": "Por favor verifique a configuraรงรฃo do serviรงo ou o status da rede.",
"fetchUnlimited": "Ilimitado (nรฃo recomendado)",
"exportToLite": "Exportar para o Fluent Reader Lite"
},
"app": {
"cleanup": "Limpeza",
"cache": "Limpar cache",
"cacheSize": "{size} de dados em cache",
"deleteChoices": "Deletar artigos de ... dias atrรกs",
"confirmDelete": "Deletar",
"daysAgo": "{days, plural, =1 {# dia} other {# dias}} atrรกs",
"deleteAll": "Deletar todos os artigos",
"calculatingSize": "Calculando tamanho...",
"itemSize": "Cerca de {size} do armazenamento local รฉ ocupado por artigos",
"confirmImport": "Vocรช realmente deseja importar os dados do arquivo de backup? Todos os dados atuais serรฃo apagados.",
"data": "Dados da aplicaรงรฃo",
"backup": "Backup",
"restore": "Restaurar",
"frData": "Dados do Fluent Reader",
"language": "Idioma",
"theme": "Tema",
"lightTheme": "Modo claro",
"darkTheme": "Modo escuro",
"enableProxy": "Ativar proxy",
"badUrl": "URL invรกlida",
"pac": "Endereรงo PAC",
"setPac": "Definir PAC",
"pacHint": "For Socks proxies, it is recommended for PAC to return "SOCKS5" for proxy-side DNS. Turning off proxy requires restart.",
"fetchInterval": "Intervalo de atualizaรงรฃo automรกtica",
"never": "Nunca"
}
}


File: src/scripts/i18n/pt-PT.json

{
"allArticles": "Todos os artigos",
"add": "Adicionar",
"create": "Criar",
"icon": "รcone",
"name": "Nome",
"openExternal": "Abrir externamente",
"emptyName": "Este campo nรฃo pode ficar vazio.",
"emptyField": "Este campo nรฃo pode ficar vazio.",
"edit": "Editar",
"delete": "Eliminar",
"followSystem": "Seguir o sistema",
"more": "Mais",
"close": "Fechar",
"search": "Pesquisar",
"loadMore": "Carregar mais",
"dangerButton": "Confirmar {action}?",
"confirmMarkAll": "Deseja mesmo marcar todos os artigos desta pรกgina como lidos?",
"confirm": "Confirmar",
"cancel": "Cancelar",
"default": "Padrรฃo",
"time": {
"now": "agora",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m, plural, =1 {# minuto} other {# minutos}}",
"hour": "{h, plural, =1 {# hora} other {# horas}}",
"day": "{d, plural, =1 {# dia} other {# dias}}"
},
"log": {
"empty": "Nenhuma notificaรงรฃo",
"fetchFailure": "Falha ao carregar a fonte "{name}".",
"fetchSuccess": "{count, plural, =1 {# Artigo} other {# Artigos}} foram atualizados com sucesso.",
"networkError": "Ocorreu um erro na rede.",
"parseError": "Ocorreu um erro ao analisar o feed XML.",
"syncFailure": "Falha ao sincronizar com o serviรงo"
},
"nav": {
"menu": "Menu",
"refresh": "Atualizar",
"markAllRead": "Marcar todos como lidos",
"notifications": "Notificaรงรตes",
"view": "Visualizaรงรฃo",
"settings": "Definiรงรตes",
"minimize": "Minimizar",
"maximize": "Maximizar"
},
"menu": {
"close": "Fechar menu",
"subscriptions": "Subscriรงรตes"
},
"article": {
"error": "Falha ao carregar o artigo.",
"reload": "Recarregar?",
"empty": "Nenhum artigo",
"untitled": "(Sem tรญtulo)",
"hide": "Ocultar artigo",
"unhide": "Exibir artigo",
"markRead": "Marcar como lido",
"markUnread": "Marcar como nรฃo lido",
"markAbove": "Marcar artigo(s) acima como lido(s)",
"markBelow": "Marcar artigo(s) abaixo como nรฃo lido(s)",
"star": "Marcar como favorito",
"unstar": "Remover marcaรงรฃo",
"fontSize": "Tamanho da fonte",
"loadWebpage": "Carregar pรกgina web",
"loadFull": "Carregar todo o conteรบdo",
"notify": "Notificar se atualizado em segundo plano",
"dontNotify": "Nรฃo notificar",
"textDir": "Direรงรฃo do texto",
"LTR": "Esquerda-para-direita",
"RTL": "Direita-para-esquerda",
"Vertical": "Vertical",
"font": "Fonte"
},
"context": {
"share": "Partilhar",
"read": "Ler",
"copyTitle": "Copiar tรญtulo",
"copyURL": "Copiar link",
"copy": "Copiar",
"search": "Pesquisar "{text}" no {engine}",
"view": "Visualizar",
"cardView": "Como cartรตes",
"listView": "Em lista",
"magazineView": "Como revista",
"compactView": "Compacto",
"filter": "Filtrar",
"unreadOnly": "Apenas nรฃo lidos",
"starredOnly": "Apenas favoritos",
"fullSearch": "Pesquisar em todo o texto",
"showHidden": "Exibir artigos ocultos",
"manageSources": "Gerir fontes",
"saveImageAs": "Guardar imagem como โ€ฆ",
"copyImage": "Copiar imagem",
"copyImageURL": "Copiar link da imagem",
"caseSensitive": "Diferenciar maiรบsculas e minรบsculas",
"showCover": "Mostrar capa",
"showSnippet": "Mostrar trecho",
"fadeRead": "Desaparecer artigos lidos"
},
"searchEngine": {
"name": "Motor de pesquisa",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Ocorreu um erro ao gravar o ficheiro.",
"name": "Definiรงรตes",
"fetching": "Atualizando fontes, aguarde por favor โ€ฆ",
"exit": "Sair das definiรงรตes",
"sources": "Fontes",
"grouping": "Grupos",
"rules": "Regras",
"service": "Serviรงo",
"app": "Preferรชncias",
"about": "Sobre",
"version": "Versรฃo",
"shortcuts": "Atalhos",
"openSource": "Cรณdigo aberto",
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Fontes importadas ou adicionadas aqui nรฃo serรฃo sincronizadas com o seu serviรงo.",
"serviceManaged": "Esta fonte รฉ gerenciada pelo seu serviรงo.",
"untitled": "Fonte",
"errorAdd": "Ocorreu um erro ao adicionar a fonte.",
"errorParse": "Ocorreu um erro ao analisar o arquivo OPML.",
"errorParseHint": "Certifique-se de que o arquivo nรฃo esteja corrompido e que esteja codificado com UTF-8.",
"errorImport": "Erro ao importar {count, plural, =1 {# fonte} other {# fontes}}.",
"exist": "Esta fonte jรก existe.",
"opmlFile": "Ficheiro OPML",
"name": "Nome da fonte",
"editName": "Editar nome",
"fetchFrequency": "Limite da frequรชncia de atualizaรงรฃo",
"unlimited": "Ilimitado",
"openTarget": "Mรฉtodo padrรฃo de carregamento dos artigos",
"delete": "Eliminar fonte",
"add": "Adicionar fonte",
"import": "Importar",
"export": "Exportar",
"rssText": "Texto completo do RSS",
"loadWebpage": "Carregar pรกgina web",
"inputUrl": "Insira a URL",
"badIcon": "รcone invรกlido",
"badUrl": "URL invรกlida",
"deleteWarning": "A fonte e todos os artigos guardados serรฃo removidos.",
"selected": "Fonte selecionada",
"selectedMulti": "Mรบltiplas fontes selecionadas"
},
"groups": {
"exist": "Este grupo jรก existe.",
"type": "Tipo",
"group": "Grupo",
"source": "Fonte",
"capacity": "Capacidade",
"exitGroup": "Voltar para os grupos",
"deleteSource": "Eliminar do grupo",
"sourceHint": "Arraste e solte as fontes para reorganizรก-las.",
"selectAllSources": "Selecionar todas as fontes",
"create": "Criar grupo",
"selectedGroup": "Grupo selecionado",
"selectedSource": "Fonte selecionada",
"enterName": "Insira o nome",
"editName": "Editar nome",
"editGroup": "Editar grupo",
"deleteGroup": "Eliminar grupo",
"chooseGroup": "Selecione um grupo",
"addToGroup": "Adicionar a ...",
"groupHint": "Clique duplo no grupo para editar as fontes. Arraste e solte para reorganizรก-los."
},
"rules": {
"intro": "Marcar artigos automaticamente ou enviar notificaรงรตes com expressรตes regulares.",
"help": "Saber mais",
"target": "Destino",
"selectTarget": "Selecione um destino",
"new": "Nova regra",
"title": "Tรญtulo",
"content": "Conteรบdo",
"fullSearch": "Tรญtulo ou conteรบdo",
"creator": "Autor",
"match": "corresponde",
"notMatch": "nรฃo corresponde",
"regex": "Expressรฃo regular",
"badRegex": "Expressรฃo regular invรกlida.",
"action": "Aรงรตes",
"selectAction": "Selecionar aรงรตes",
"hint": "As regras aplicam-se aos artigos recรฉm-obtidos: todos os artigos โ†’ grupo โ†’ fonte. Sรฃo executadas de cima para baixo; as aรงรตes posteriores tรชm prioridade. Arraste para reordenar. Os testes incluem regras de destinos mais abrangentes.",
"test": "Testar regras",
"searchField": "Campo de pesquisa",
"matchCondition": "Condiรงรฃo de correspondรชncia",
"save": "Guardar regra",
"selectAll": "Selecionar todas as regras",
"selectRule": "Selecionar regra",
"saveError": "Nรฃo foi possรญvel guardar as regras. Tente novamente."
},
"service": {
"intro": "Sincronizaรงรฃo entre dispositivos com serviรงos RSS.",
"select": "Selecione um serviรงo",
"suggest": "Sugerir um novo serviรงo",
"overwriteWarning": "Fontes locais serรฃo eliminadas se elas existirem no serviรงo.",
"groupsWarning": "Grupos nรฃo sรฃo automaticamente sincronizados com o serviรงo.",
"rateLimitWarning": "Para evitar limitaรงรตes do serviรงo, vocรช precisa criar sua prรณpria chave de API.",
"removeAd": "Remover Anuncio",
"endpoint": "Endpoint",
"username": "Utilizador",
"password": "Password",
"unchanged": "Inalterado",
"fetchLimit": "Limite de sincronizaรงรฃo",
"fetchLimitNum": "{count} รบltimos artigos",
"importGroups": "Importar grupos",
"failure": "Nรฃo foi possรญvel conectar ao serviรงo",
"failureHint": "Por favor verifique a configuraรงรฃo do serviรงo ou o estado da rede.",
"fetchUnlimited": "Ilimitado (nรฃo recomendado)",
"exportToLite": "Exportar para o Fluent Reader Lite"
},
"app": {
"cleanup": "Limpar",
"cache": "Limpar cache",
"cacheSize": "{size} de dados em cache",
"deleteChoices": "Eliminar artigos de ... dias atrรกs",
"confirmDelete": "Eliminar",
"daysAgo": "{days, plural, =1 {# dia} other {# dias}} atrรกs",
"deleteAll": "Eliminar todos os artigos",
"calculatingSize": "Calculando tamanho...",
"itemSize": "Cerca de {size} do armazenamento local รฉ ocupado por artigos",
"confirmImport": "Do you really want to import data from the backup file? All current data will be wiped.",
"data": "Dados da aplicaรงรฃo",
"backup": "Backup",
"restore": "Restorar",
"frData": "Dados do Fluent Reader",
"language": "Idioma",
"theme": "Tema",
"lightTheme": "Modo claro",
"darkTheme": "Modo escuro",
"enableProxy": "Ativar proxy",
"badUrl": "URL invรกlida",
"pac": "Endereรงo PAC",
"setPac": "Definir PAC",
"pacHint": "Para proxies Socks, รฉ recomendado para o PAC retornar "SOCKS5" para o proxy-side DNS. Desligar o proxy requer um reinicio.",
"fetchInterval": "Intervalo de atualizaรงรฃo automรกtica",
"never": "Nunca"
}
}


File: src/scripts/i18n/ru.json

{
"allArticles": "ะ’ัะต ัั‚ะฐั‚ัŒะธ",
"add": "ะ”ะพะฑะฐะฒะธั‚ัŒ",
"create": "ะกะพะทะดะฐั‚ัŒ",
"icon": "ะ˜ะบะพะฝะบะฐ",
"name": "ะะฐะทะฒะฐะฝะธะต",
"openExternal": "ะžั‚ะบั€ั‹ั‚ัŒ ะฒะฝะตัˆะฝะตะน ะฟั€ะพะณั€ะฐะผะผะพะน",
"emptyName": "ะญั‚ะพ ะฟะพะปะต ะฝะต ะผะพะถะตั‚ ะฑั‹ั‚ัŒ ะฟัƒัั‚ั‹ะผ.",
"emptyField": "ะญั‚ะพ ะฟะพะปะต ะฝะต ะผะพะถะตั‚ ะฑั‹ั‚ัŒ ะฟัƒัั‚ั‹ะผ.",
"edit": "ะ ะตะดะฐะบั‚ะธั€ะพะฒะฐั‚ัŒ",
"delete": "ะฃะดะฐะปะธั‚ัŒ",
"followSystem": "ะšะฐะบ ะฒ ัะธัั‚ะตะผะต",
"more": "ะ•ั‰ั‘",
"close": "ะ—ะฐะบั€ั‹ั‚ัŒ",
"search": "ะŸะพะธัะบ",
"loadMore": "ะ—ะฐะณั€ัƒะทะธั‚ัŒ ะตั‰ั‘",
"dangerButton": "ะŸะพะดั‚ะฒะตั€ะดะธั‚ัŒ {action}?",
"confirmMarkAll": "ะ’ั‹ ะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝะพ ั…ะพั‚ะธั‚ะต ะพั‚ะผะตั‚ะธั‚ัŒ ะฒัะต ัั‚ะฐั‚ัŒะธ ะฝะฐ ัั‚ะพะน ัั‚ั€ะฐะฝะธั†ะต ะฟั€ะพั‡ะธั‚ะฐะฝะฝั‹ะผะธ?",
"confirm": "ะŸะพะดั‚ะฒะตั€ะดะธั‚ัŒ",
"cancel": "ะžั‚ะผะตะฝะฐ",
"default": "ะŸะพ ัƒะผะพะปั‡ะฐะฝะธัŽ",
"time": {
"now": "ัะตะนั‡ะฐั",
"m": "ะผ",
"h": "ั‡",
"d": "ะด",
"minute": "{m, plural, =1 {# ะผะธะฝัƒั‚ะฐ} other {# ะผะธะฝัƒั‚}}",
"hour": "{h, plural, =1 {# ั‡ะฐั} other {# ั‡ะฐัะพะฒ}}",
"day": "{d, plural, =1 {# ะดะตะฝัŒ} other {# ะดะฝะตะน}}"
},
"log": {
"empty": "ะะตั‚ ัƒะฒะตะดะพะผะปะตะฝะธะน",
"fetchFailure": "ะะต ัƒะดะฐะปะพััŒ ะทะฐะณั€ัƒะทะธั‚ัŒ ะธะท ะธัั‚ะพั‡ะฝะธะบะฐ "{name}".",
"fetchSuccess": "ะฃัะฟะตัˆะฝะพ {count, plural, =1 {ะฟะพะปัƒั‡ะตะฝะฐ # ัั‚ะฐั‚ัŒั} other {ะฟะพะปัƒั‡ะตะฝั‹ # ัั‚ะฐั‚ะตะน}}.",
"networkError": "ะžัˆะธะฑะบะฐ ัะตั‚ะธ.",
"parseError": "ะ’ะพะทะฝะธะบะปะฐ ะพัˆะธะฑะบะฐ ะฟั€ะธ ั€ะฐะทะฑะพั€ะต XML.",
"syncFailure": "ะะต ัƒะดะฐะปะพััŒ ัะธะฝั…ั€ะพะฝะธะทะธั€ะพะฒะฐั‚ัŒ ั ัะตั€ะฒะธัะพะผ"
},
"nav": {
"menu": "ะœะตะฝัŽ",
"refresh": "ะžะฑะฝะพะฒะธั‚ัŒ",
"markAllRead": "ะžั‚ะผะตั‚ะธั‚ัŒ ะฒัั‘ ะฟั€ะพั‡ะธั‚ะฐะฝะฝั‹ะผ",
"notifications": "ะฃะฒะตะดะพะผะปะตะฝะธั",
"view": "ะ’ะธะด",
"settings": "ะะฐัั‚ั€ะพะนะบะธ",
"minimize": "ะกะฒะตั€ะฝัƒั‚ัŒ",
"maximize": "ะ ะฐะทะฒะตั€ะฝัƒั‚ัŒ"
},
"menu": {
"close": "ะ—ะฐะบั€ั‹ั‚ัŒ ะผะตะฝัŽ",
"subscriptions": "ะŸะพะดะฟะธัะบะธ"
},
"article": {
"error": "ะะต ัƒะดะฐะปะพััŒ ะทะฐะณั€ัƒะทะธั‚ัŒ ัั‚ะฐั‚ัŒัŽ.",
"reload": "ะŸะตั€ะตะทะฐะณั€ัƒะทะธั‚ัŒ?",
"empty": "ะะตั‚ ัั‚ะฐั‚ะตะน",
"untitled": "(ะ‘ะตะท ะฝะฐะทะฒะฐะฝะธั)",
"hide": "ะกะฟั€ัั‚ะฐั‚ัŒ ัั‚ะฐั‚ัŒัŽ",
"unhide": "ะŸะพะบะฐะทะฐั‚ัŒ ัั‚ะฐั‚ัŒัŽ",
"markRead": "ะžั‚ะผะตั‚ะธั‚ัŒ ะบะฐะบ ะฟั€ะพั‡ะธั‚ะฐะฝะฝะพะต",
"markUnread": "ะžั‚ะผะตั‚ะธั‚ัŒ ะบะฐะบ ะฝะตะฟั€ะพั‡ะธั‚ะฐะฝะฝะพะต",
"markAbove": "ะžั‚ะผะตั‚ะธั‚ัŒ ะฒั‹ัˆะต ะบะฐะบ ะฟั€ะพั‡ะธั‚ะฐะฝะฝะพะต",
"markBelow": "ะžั‚ะผะตั‚ะธั‚ัŒ ะฝะธะถะต ะบะฐะบ ะฟั€ะพั‡ะธั‚ะฐะฝะฝะพะต",
"star": "ะ’ ะธะทะฑั€ะฐะฝะฝะพะต",
"unstar": "ะฃะฑั€ะฐั‚ัŒ ะธะท ะธะทะฑั€ะฐะฝะฝะพะณะพ",
"fontSize": "ะ ะฐะทะผะตั€ ัˆั€ะธั„ั‚ะฐ",
"loadWebpage": "ะ—ะฐะณั€ัƒะทะธั‚ัŒ ะฒะตะฑ-ัั‚ั€ะฐะฝะธั†ัƒ",
"loadFull": "ะ—ะฐะณั€ัƒะทะธั‚ัŒ ะฟะพะปะฝะพะต ัะพะดะตั€ะถะธะผะพะต",
"notify": "ะฃะฒะตะดะพะผะธั‚ัŒ, ะตัะปะธ ะฟะพะปัƒั‡ะตะฝะพ ะฒ ั„ะพะฝะพะฒะพะผ ั€ะตะถะธะผะต",
"dontNotify": "ะะต ัƒะฒะตะดะพะผะปัั‚ัŒ",
"textDir": "ะะฐะฟั€ะฐะฒะปะตะฝะธะต ั‚ะตะบัั‚ะฐ",
"LTR": "ะกะปะตะฒะฐ ะฝะฐะฟั€ะฐะฒะพ",
"RTL": "ะกะฟั€ะฐะฒะฐ ะฝะฐะปะตะฒะพ",
"Vertical": "ะ’ะตั€ั‚ะธะบะฐะปัŒะฝะพ",
"font": "ะจั€ะธั„ั‚"
},
"context": {
"share": "ะŸะพะดะตะปะธั‚ัŒัั",
"read": "ะงะธั‚ะฐั‚ัŒ",
"copyTitle": "ะšะพะฟะธั€ะพะฒะฐั‚ัŒ ะทะฐะณะพะปะพะฒะพะบ",
"copyURL": "ะšะพะฟะธั€ะพะฒะฐั‚ัŒ ััั‹ะปะบัƒ",
"copy": "ะšะพะฟะธั€ะพะฒะฐั‚ัŒ",
"search": "ะ˜ัะบะฐั‚ัŒ "{text}" ะฒ {engine}",
"view": "ะ’ะธะด",
"cardView": "ะšะฐั€ั‚ะพั‡ะบะธ",
"listView": "ะกะฟะธัะพะบ",
"magazineView": "ะ–ัƒั€ะฝะฐะป",
"compactView": "ะšะพะผะฟะฐะบั‚ะฝั‹ะน",
"filter": "ะคะธะปัŒั‚ั€ั‹",
"unreadOnly": "ะขะพะปัŒะบะพ ะฝะตะฟั€ะพั‡ะธั‚ะฐะฝะฝั‹ะต",
"starredOnly": "ะขะพะปัŒะบะพ ะธะทะฑั€ะฐะฝะฝั‹ะต",
"fullSearch": "ะŸะพะธัะบ ะฟะพ ะฒัะตะผัƒ ั‚ะตะบัั‚ัƒ",
"showHidden": "ะŸะพะบะฐะทั‹ะฒะฐั‚ัŒ ัะบั€ั‹ั‚ั‹ะต",
"manageSources": "ะฃะฟั€ะฐะฒะปะตะฝะธะต ะธัั‚ะพั‡ะฝะธะบะฐะผะธ",
"saveImageAs": "ะกะพั…ั€ะฐะฝะธั‚ัŒ ะธะทะพะฑั€ะฐะถะตะฝะธะต ะบะฐะบ โ€ฆ",
"copyImage": "ะšะพะฟะธั€ะพะฒะฐั‚ัŒ ะธะทะพะฑั€ะฐะถะตะฝะธะต",
"copyImageURL": "ะšะพะฟะธั€ะพะฒะฐั‚ัŒ ััั‹ะปะบัƒ ะฝะฐ ะธะทะพะฑั€ะฐะถะตะฝะธะต",
"caseSensitive": "ะก ัƒั‡ั‘ั‚ะพะผ ั€ะตะณะธัั‚ั€ะฐ",
"showCover": "ะŸะพะบะฐะทะฐั‚ัŒ ะพะฑะปะพะถะบัƒ",
"showSnippet": "ะŸะพะบะฐะทะฐั‚ัŒ ะพั‚ั€ั‹ะฒะพะบ",
"fadeRead": "ะ’ั‹ัะฒะตั‚ะปัั‚ัŒ ะฟั€ะพั‡ะธั‚ะฐะฝะฝั‹ะต ัั‚ะฐั‚ัŒะธ"
},
"searchEngine": {
"name": "ะŸะพะธัะบะพะฒะฐั ัะธัั‚ะตะผะฐ",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "ะŸั€ะพะธะทะพัˆะปะฐ ะพัˆะธะฑะบะฐ ะฟั€ะธ ะทะฐะฟะธัะธ ั„ะฐะนะปะฐ.",
"name": "ะะฐัั‚ั€ะพะนะบะธ",
"fetching": "ะžะฑะฝะพะฒะปะตะฝะธะต ะธัั‚ะพั‡ะฝะธะบะพะฒ. ะŸะพะถะฐะปัƒะนัั‚ะฐ, ะฟะพะดะพะถะดะธั‚ะต.",
"exit": "ะ’ั‹ะนั‚ะธ ะธะท ะฝะฐัั‚ั€ะพะตะบ",
"sources": "ะ˜ัั‚ะพั‡ะฝะธะบะธ",
"grouping": "ะ“ั€ัƒะฟะฟั‹",
"rules": "ะŸั€ะฐะฒะธะปะฐ",
"service": "ะกะตั€ะฒะธัั‹",
"app": "ะŸั€ะตะดะฟะพั‡ั‚ะตะฝะธั",
"about": "ะž ะฟั€ะพะณั€ะฐะผะผะต",
"version": "ะ’ะตั€ัะธั",
"shortcuts": "ะกะพั‡ะตั‚ะฐะฝะธั ะบะปะฐะฒะธัˆ",
"openSource": "ะžั‚ะบั€ั‹ั‚ั‹ะน ะธัั…ะพะดะฝั‹ะน ะบะพะด",
"feedback": "ะžะฑั€ะฐั‚ะฝะฐั ัะฒัะทัŒ"
},
"sources": {
"serviceWarning": "ะ˜ะผะฟะพั€ั‚ะธั€ะพะฒะฐะฝะฝั‹ะต ะธะปะธ ะดะพะฑะฐะฒะปะตะฝะฝั‹ะต ะทะดะตััŒ ะธัั‚ะพั‡ะฝะธะบะธ ะฝะต ะฑัƒะดัƒั‚ ัะธะฝั…ั€ะพะฝะธะทะธั€ะพะฒะฐะฝั‹ ั ะ’ะฐัˆะธะผ ัะตั€ะฒะธัะพะผ.",
"serviceManaged": "ะญั‚ะพั‚ ะธัั‚ะพั‡ะฝะธะบ ัƒะฟั€ะฐะฒะปัะตั‚ัั ะ’ะฐัˆะธะผ ัะตั€ะฒะธัะพะผ.",
"untitled": "ะ˜ัั‚ะพั‡ะฝะธะบ",
"errorAdd": "ะ’ะพะทะฝะธะบะปะฐ ะพัˆะธะฑะบะฐ ะฟั€ะธ ะดะพะฑะฐะฒะปะตะฝะธะธ ะธัั‚ะพั‡ะฝะธะบะฐ.",
"errorParse": "ะ’ะพะทะฝะธะบะปะฐ ะพัˆะธะฑะบะฐ ะฟั€ะธ ั€ะฐะทะฑะพั€ะต OPML ั„ะฐะนะปะฐ.",
"errorParseHint": "ะŸะพะถะฐะปัƒะนัั‚ะฐ, ัƒะดะพัั‚ะพะฒะตั€ัŒั‚ะตััŒ ั‡ั‚ะพ ั„ะฐะนะป ะฝะต ะฟะพะฒั€ะตะถะดั‘ะฝ ะธ ะธัะฟะพะปัŒะทัƒะตั‚ ะบะพะดะธั€ะพะฒะบัƒ UTF-8.",
"errorImport": "ะžัˆะธะฑะบะฐ ะธะผะฟะพั€ั‚ะฐ {count, plural, =1 {# ะธัั‚ะพั‡ะฝะธะบะฐ} other {# ะธัั‚ะพั‡ะฝะธะบะพะฒ}}.",
"exist": "ะญั‚ะพั‚ ะธัั‚ะพั‡ะฝะธะบ ัƒะถะต ััƒั‰ะตัั‚ะฒัƒะตั‚.",
"opmlFile": "OPML ั„ะฐะนะป",
"name": "ะะฐะทะฒะฐะฝะธะต ะธัั‚ะพั‡ะฝะธะบะฐ",
"editName": "ะ˜ะทะผะตะฝะธั‚ัŒ ะฝะฐะทะฒะฐะฝะธะต",
"fetchFrequency": "ะžะณั€ะฐะฝะธั‡ะตะฝะธะต ั‡ะฐัั‚ะพั‚ั‹ ะพะฑะฝะพะฒะปะตะฝะธะน",
"unlimited": "ะ‘ะตะท ะพะณั€ะฐะฝะธั‡ะตะฝะธะน",
"openTarget": "ะœะตั‚ะพะด ะพั‚ะบั€ั‹ั‚ะธั ัั‚ะฐั‚ะตะน ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ",
"delete": "ะฃะดะฐะปะธั‚ัŒ ะธัั‚ะพั‡ะฝะธะบ",
"add": "ะ”ะพะฑะฐะฒะธั‚ัŒ ะธัั‚ะพั‡ะฝะธะบ",
"import": "ะ˜ะผะฟะพั€ั‚",
"export": "ะญะบัะฟะพั€ั‚",
"rssText": "ะŸะพะปะฝั‹ะน ั‚ะตะบัั‚ RSS",
"loadWebpage": "ะ—ะฐะณั€ัƒะทะธั‚ัŒ ะฒะตะฑ-ัั‚ั€ะฐะฝะธั†ัƒ",
"inputUrl": "ะ’ะฒะตะดะธั‚ะต URL",
"badIcon": "ะะตะดะพะฟัƒัั‚ะธะผะฐั ะธะบะพะฝะบะฐ",
"badUrl": "ะะตะดะพะฟัƒัั‚ะธะผั‹ะน URL",
"deleteWarning": "ะ˜ัั‚ะพั‡ะฝะธะบ ะธ ะฒัะต ัะพั…ั€ะฐะฝั‘ะฝะฝั‹ะต ัั‚ะฐั‚ัŒะธ ะฑัƒะดัƒั‚ ัƒะดะฐะปะตะฝั‹.",
"selected": "ะ’ั‹ะฑะตั€ะธั‚ะต ะธัั‚ะพั‡ะฝะธะบ",
"selectedMulti": "ะ’ั‹ะฑะตั€ะธั‚ะต ะฝะตัะบะพะปัŒะบะพ ะธัั‚ะพั‡ะฝะธะบะพะฒ"
},
"groups": {
"exist": "ะญั‚ะฐ ะณั€ัƒะฟะฟะฐ ัƒะถะต ััƒั‰ะตัั‚ะฒัƒะตั‚.",
"type": "ะขะธะฟ",
"group": "ะ“ั€ัƒะฟะฟะฐ",
"source": "ะ˜ัั‚ะพั‡ะฝะธะบ",
"capacity": "ะะผะบะพัั‚ัŒ",
"exitGroup": "ะะฐะทะฐะด ะบ ะณั€ัƒะฟะฟะฐะผ",
"deleteSource": "ะฃะดะฐะปะธั‚ัŒ ะธะท ะณั€ัƒะฟะฟั‹",
"sourceHint": "ะŸะตั€ะตั‚ะฐัะบะธะฒะฐะนั‚ะต ะธัั‚ะพั‡ะฝะธะบะธ ะดะปั ะธะทะผะตะฝะตะฝะธั ะฟะพั€ัะดะบะฐ.",
"selectAllSources": "ะ’ั‹ะฑั€ะฐั‚ัŒ ะฒัะต ะธัั‚ะพั‡ะฝะธะบะธ",
"create": "ะกะพะทะดะฐั‚ัŒ ะณั€ัƒะฟะฟัƒ",
"selectedGroup": "ะ’ั‹ะฑั€ะฐะฝะฝะฐั ะณั€ัƒะฟะฟะฐ",
"selectedSource": "ะ’ั‹ะฑั€ะฐะฝะฝั‹ะน ะธัั‚ะพั‡ะฝะธะบ",
"enterName": "ะ’ะฒะตะดะธั‚ะต ะฝะฐะทะฒะฐะฝะธะต",
"editName": "ะ˜ะทะผะตะฝะธั‚ัŒ ะฝะฐะทะฒะฐะฝะธะต",
"editGroup": "ะ˜ะทะผะตะฝะธั‚ัŒ ะณั€ัƒะฟะฟัƒ",
"deleteGroup": "ะฃะดะฐะปะธั‚ัŒ ะณั€ัƒะฟะฟัƒ",
"chooseGroup": "ะ’ั‹ะฑั€ะฐั‚ัŒ ะณั€ัƒะฟะฟัƒ",
"addToGroup": "ะ”ะพะฑะฐะฒะธั‚ัŒ ะฒ โ€ฆ",
"groupHint": "ะกะดะตะปะฐะนั‚ะต ะดะฒะพะนะฝะพะน ั‰ะตะปั‡ะพะบ ะฟะพ ะณั€ัƒะฟะฟะต ะดะปั ั€ะตะดะฐะบั‚ะธั€ะพะฒะฐะฝะธั ะธัั‚ะพั‡ะฝะธะบะพะฒ. ะŸะตั€ะตั‚ะฐัะบะธะฒะฐะนั‚ะต ะดะปั ะธะทะผะตะฝะตะฝะธั ะฟะพั€ัะดะบะฐ."
},
"rules": {
"intro": "ะะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ ะพั‚ะผะตั‡ะฐั‚ัŒ ัั‚ะฐั‚ัŒะธ ะธะปะธ ะพั‚ะฟั€ะฐะฒะปัั‚ัŒ ัƒะฒะตะดะพะผะปะตะฝะธั ั ะฟะพะผะพั‰ัŒัŽ ั€ะตะณัƒะปัั€ะฝั‹ั… ะฒั‹ั€ะฐะถะตะฝะธะน.",
"help": "ะฃะทะฝะฐั‚ัŒ ะฑะพะปัŒัˆะต",
"target": "ะฆะตะปัŒ",
"selectTarget": "ะ’ั‹ะฑะตั€ะธั‚ะต ั†ะตะปัŒ",
"new": "ะะพะฒะพะต ะฟั€ะฐะฒะธะปะพ",
"title": "ะะฐะทะฒะฐะฝะธะต",
"content": "ะกะพะดะตั€ะถะธะผะพะต",
"fullSearch": "ะะฐะทะฒะฐะฝะธะต ะธะปะธ ัะพะดะตั€ะถะธะผะพะต",
"creator": "ะะฒั‚ะพั€",
"match": "ัะพะฒะฟะฐะดะฐะตั‚",
"notMatch": "ะฝะต ัะพะฒะฟะฐะดะฐะตั‚",
"regex": "ะ ะตะณัƒะปัั€ะฝะพะต ะฒั‹ั€ะฐะถะตะฝะธะต",
"badRegex": "ะะตะดะพะฟัƒัั‚ะธะผะพะต ั€ะตะณัƒะปัั€ะฝะพะต ะฒั‹ั€ะฐะถะตะฝะธะต.",
"action": "ะ”ะตะนัั‚ะฒะธั",
"selectAction": "ะ’ั‹ะฑะตั€ะธั‚ะต ะดะตะนัั‚ะฒะธั",
"hint": "ะŸั€ะฐะฒะธะปะฐ ะฟั€ะธะผะตะฝััŽั‚ัั ะบ ะฝะพะฒั‹ะผ ะทะฐะณั€ัƒะถะตะฝะฝั‹ะผ ัั‚ะฐั‚ัŒัะผ: ะฒัะต ัั‚ะฐั‚ัŒะธ โ†’ ะณั€ัƒะฟะฟะฐ โ†’ ะธัั‚ะพั‡ะฝะธะบ. ะžะฝะธ ะฒั‹ะฟะพะปะฝััŽั‚ัั ัะฒะตั€ั…ัƒ ะฒะฝะธะท; ะฟะพัะปะตะดัƒัŽั‰ะธะต ะดะตะนัั‚ะฒะธั ะธะผะตัŽั‚ ะฟั€ะธะพั€ะธั‚ะตั‚. ะŸะตั€ะตั‚ะฐั‰ะธั‚ะต ะดะปั ะธะทะผะตะฝะตะฝะธั ะฟะพั€ัะดะบะฐ. ะŸั€ะพะฒะตั€ะบะฐ ะฒะบะปัŽั‡ะฐะตั‚ ะฟั€ะฐะฒะธะปะฐ ะฑะพะปะตะต ัˆะธั€ะพะบะธั… ั†ะตะปะตะน.",
"test": "ะŸั€ะพะฒะตั€ะธั‚ัŒ ะฟั€ะฐะฒะธะปะฐ",
"searchField": "ะŸะพะปะต ะฟะพะธัะบะฐ",
"matchCondition": "ะฃัะปะพะฒะธะต ัะพะฒะฟะฐะดะตะฝะธั",
"save": "ะกะพั…ั€ะฐะฝะธั‚ัŒ ะฟั€ะฐะฒะธะปะพ",
"selectAll": "ะ’ั‹ะฑั€ะฐั‚ัŒ ะฒัะต ะฟั€ะฐะฒะธะปะฐ",
"selectRule": "ะ’ั‹ะฑั€ะฐั‚ัŒ ะฟั€ะฐะฒะธะปะพ",
"saveError": "ะะต ัƒะดะฐะปะพััŒ ัะพั…ั€ะฐะฝะธั‚ัŒ ะฟั€ะฐะฒะธะปะฐ. ะŸะพะฒั‚ะพั€ะธั‚ะต ะฟะพะฟั‹ั‚ะบัƒ."
},
"service": {
"intro": "ะกะธะฝั…ั€ะพะฝะธะทะฐั†ะธั ะผะตะถะดัƒ ัƒัั‚ั€ะพะนัั‚ะฒะฐะผะธ ั ะฟะพะผะพั‰ัŒัŽ RSS ัะตั€ะฒะธัะพะฒ.",
"select": "ะ’ั‹ะฑะตั€ะธั‚ะต ัะตั€ะฒะธั",
"suggest": "ะŸั€ะตะดะปะพะถะธั‚ัŒ ะฝะพะฒั‹ะน ัะตั€ะฒะธั",
"overwriteWarning": "ะ›ะพะบะฐะปัŒะฝั‹ะต ะธัั‚ะพั‡ะฝะธะบะธ ะฑัƒะดัƒั‚ ัƒะดะฐะปะตะฝั‹ ะตัะปะธ ะพะฝะธ ััƒั‰ะตัั‚ะฒัƒัŽั‚ ะฒ ัะตั€ะฒะธัะต.",
"groupsWarning": "ะ“ั€ัƒะฟะฟั‹ ะฝะต ัะธะฝั…ั€ะพะฝะธะทะธั€ัƒัŽั‚ัั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ ั‡ะตั€ะตะท ัะตั€ะฒะธั.",
"rateLimitWarning": "ะงั‚ะพะฑั‹ ะธะทะฑะตะถะฐั‚ัŒ ะพะณั€ะฐะฝะธั‡ะตะฝะธั ั‡ะฐัั‚ะพั‚ั‹ ะทะฐะฟั€ะพัะพะฒ, ะ’ะฐะผ ะฝัƒะถะฝะพ ัะพะทะดะฐั‚ัŒ ัะฒะพะน ะบะปัŽั‡ API.",
"removeAd": "ะฃะฑั€ะฐั‚ัŒ ั€ะตะบะปะฐะผัƒ",
"endpoint": "Endpoint",
"username": "ะ˜ะผั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั",
"password": "ะŸะฐั€ะพะปัŒ",
"unchanged": "ะ‘ะตะท ะธะทะผะตะฝะตะฝะธะน",
"fetchLimit": "ะžะณั€ะฐะฝะธั‡ะตะฝะธะต ัะธะฝั…ั€ะพะฝะธะทะฐั†ะธะธ",
"fetchLimitNum": "{count, plural, =1 {# ะฟะพัะปะตะดะฝัั ัั‚ะฐั‚ัŒั} other {# ะฟะพัะปะตะดะฝะธั… ัั‚ะฐั‚ะตะน}}",
"importGroups": "ะ˜ะผะฟะพั€ั‚ะธั€ะพะฒะฐั‚ัŒ ะณั€ัƒะฟะฟั‹",
"failure": "ะะตั‚ ะฟะพะดะบะปัŽั‡ะตะฝะธั ะบ ัะตั€ะฒะธััƒ",
"failureHint": "Please check the service configuration or network status.",
"fetchUnlimited": "ะ‘ะตะท ะพะณั€ะฐะฝะธั‡ะตะฝะธะน (ะฝะต ั€ะตะบะพะผะตะฝะดัƒะตั‚ัั)",
"exportToLite": "ะญะบัะฟะพั€ั‚ ะฒ Fluent Reader Lite"
},
"app": {
"cleanup": "ะžั‡ะธัั‚ะบะฐ",
"cache": "ะžั‡ะธัั‚ะธั‚ัŒ ะบััˆ",
"cacheSize": "ะ—ะฐะบััˆะธั€ะพะฒะฐะฝะพ {size} ะดะฐะฝะฝั‹ั…",
"deleteChoices": "ะฃะดะฐะปะธั‚ัŒ ัั‚ะฐั‚ัŒะธ ัั‚ะฐั€ัˆะต โ€ฆ ะดะฝะตะน",
"confirmDelete": "ะฃะดะฐะปะธั‚ัŒ",
"daysAgo": "{days, plural, =1 {# ะดะฝั} other {# ะดะฝะตะน}} ะฝะฐะทะฐะด",
"deleteAll": "ะฃะดะฐะปะธั‚ัŒ ะฒัะต ัั‚ะฐั‚ัŒะธ",
"calculatingSize": "ะ’ั‹ั‡ะธัะปะตะฝะธะต ั€ะฐะทะผะตั€ะฐโ€ฆ",
"itemSize": "ะกั‚ะฐั‚ัŒัะผะธ ะทะฐะฝัั‚ะพ ะฟั€ะธะผะตั€ะฝะพ {size} ะฟั€ะพัั‚ั€ะฐะฝัั‚ะฒะฐ ะปะพะบะฐะปัŒะฝะพะณะพ ั…ั€ะฐะฝะธะปะธั‰ะฐ",
"confirmImport": "ะ’ั‹ ะดะตะนัั‚ะฒะธั‚ะตะปัŒะฝะพ ั…ะพั‚ะธั‚ะต ะธะผะฟะพั€ั‚ะธั€ะพะฒะฐั‚ัŒ ะดะฐะฝะฝั‹ะต ะธะท ั„ะฐะนะปะฐ ั€ะตะทะตั€ะฒะฝะพะน ะบะพะฟะธะธ? ะ’ัะต ั‚ะตะบัƒั‰ะธะต ะดะฐะฝะฝั‹ะต ะฑัƒะดัƒั‚ ัƒะดะฐะปะตะฝั‹.",
"data": "ะ”ะฐะฝะฝั‹ะต ะฟั€ะธะปะพะถะตะฝะธั",
"backup": "ะ ะตะทะตั€ะฒะฝะฐั ะบะพะฟะธั",
"restore": "ะ’ะพััั‚ะฐะฝะพะฒะปะตะฝะธะต",
"frData": "ะ”ะฐะฝะฝั‹ะต Fluent Reader",
"language": "ะฏะทั‹ะบ ะธะฝั‚ะตั€ั„ะตะนัะฐ",
"theme": "ะขะตะผะฐ",
"lightTheme": "ะกะฒะตั‚ะปะฐั",
"darkTheme": "ะขั‘ะผะฝะฐั",
"enableProxy": "ะ’ะบะปัŽั‡ะธั‚ัŒ ะฟั€ะพะบัะธ",
"badUrl": "ะะตะดะพะฟัƒัั‚ะธะผั‹ะน URL",
"pac": "PAC ะะดั€ะตั",
"setPac": "ะฃัั‚ะฐะฝะพะฒะธั‚ัŒ PAC",
"pacHint": "ะ”ะปั Socks ะฟั€ะพะบัะธ ั€ะตะบะพะผะตะฝะดัƒะตั‚ัั, ั‡ั‚ะพะฑั‹ PAC ะฒะพะทะฒั€ะฐั‰ะฐะป "SOCKS5" ะดะปั DNS ะฝะฐ ัั‚ะพั€ะพะฝะต ะฟั€ะพะบัะธ. ะ’ั‹ะบะปัŽั‡ะตะฝะธะต ะฟั€ะพะบัะธ ั‚ั€ะตะฑัƒะตั‚ ะฟะตั€ะตะทะฐะฟัƒัะบะฐ.",
"fetchInterval": "ะ˜ะฝั‚ะตั€ะฒะฐะป ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะณะพ ะพะฑะฝะพะฒะปะตะฝะธั",
"never": "ะะธะบะพะณะดะฐ"
}
}


File: src/scripts/i18n/sv.json

{
"allArticles": "Alla artiklar",
"add": "Lรคgg till",
"create": "Skapa",
"icon": "Ikon",
"name": "Namn",
"openExternal": "ร–ppna externt",
"emptyName": "Detta fรคlt kan inte vara tomt.",
"emptyField": "Detta fรคlt kan inte vara tomt.",
"edit": "Redigera",
"delete": "Ta bort",
"followSystem": "Fรถlj systemet",
"more": "Mer",
"close": "Stรคng",
"search": "Sรถk",
"loadMore": "Lรคs in mer",
"dangerButton": "Bekrรคfta {action}?",
"confirmMarkAll": "Vill du verkligen markera alla artiklar pรฅ denna sida som lรคsta?",
"confirm": "Bekrรคfta",
"cancel": "Avbryt",
"time": {
"now": "nu",
"m": "m",
"h": "t",
"d": "d",
"minute": "{m, plural, =1 {# minut} other {# minuter}}",
"hour": "{h, plural, =1 {# timma} other {# timmar}}",
"day": "{d, plural, =1 {# dag} other {# dagar}}"
},
"log": {
"empty": "Ingen avisering",
"fetchFailure": "Kunde inte lรคsa in kรคllan "{name}".",
"fetchSuccess": "Lyckades hรคmta {count, plural, =1 {# artikel} other {# artiklar}}.",
"networkError": "Ett nรคtverksfel uppstod.",
"parseError": "Ett fel uppstod vid tolkning av XML-flรถdet.",
"syncFailure": "Kunde inte synkronisera med tjรคnsten"
},
"nav": {
"menu": "Meny",
"refresh": "Uppdatera",
"markAllRead": "Markera alla som lรคsta",
"notifications": "Aviseringar",
"view": "Visa",
"settings": "Instรคllningar",
"minimize": "Minimera",
"maximize": "Maximera"
},
"menu": {
"close": "Stรคng menyn",
"subscriptions": "Prenumerationer"
},
"article": {
"error": "Kunde inte lรคsa in artikeln.",
"reload": "Vill du lรคsa in igen?",
"empty": "Inga artiklar",
"untitled": "(Namnlรถs)",
"hide": "Dรถlj artikel",
"unhide": "Visa artikel",
"markRead": "Markera som lรคst",
"markUnread": "Markera som olรคst",
"markAbove": "Markera ovanstรฅende som lรคst",
"markBelow": "Markera nedanstรฅende som lรคst",
"star": "Stjรคrna",
"unstar": "Ta bort stjรคrna",
"fontSize": "Teckenstorlek",
"loadWebpage": "Lรคs in webbsidan",
"loadFull": "Lรคs in fullstรคndigt innehรฅll",
"notify": "Avisera om hรคmtat i bakgrunden",
"dontNotify": "Avisera inte"
},
"context": {
"share": "Dela",
"read": "Lรคs",
"copyTitle": "Kopiera titel",
"copyURL": "Kopiera lรคnk",
"copy": "Kopiera",
"search": "Sรถk "{text}" pรฅ {engine}",
"view": "Visa",
"cardView": "Kortvy",
"listView": "Listvy",
"magazineView": "Tidningsvy",
"compactView": "Kompakt vy",
"filter": "Filtrering",
"unreadOnly": "Endast olรคst",
"starredOnly": "Endast stjรคrnmรคrkt",
"fullSearch": "Sรถk i hela texten",
"showHidden": "Visa dolda artiklar",
"manageSources": "Hantera kรคllor",
"saveImageAs": "Spara bild som โ€ฆ",
"copyImage": "Kopiera bild",
"copyImageURL": "Kopiera bildlรคnk",
"caseSensitive": "Skiftlรคgeskรคnslig",
"showCover": "Visa omslag",
"showSnippet": "Visa utdrag",
"fadeRead": "Tona lรคsta artiklar"
},
"searchEngine": {
"name": "Sรถkmotor",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Ett fel uppstod vid skrivning av filen.",
"name": "Instรคllningar",
"fetching": "Uppdaterar kรคllor, vรคnta โ€ฆ",
"exit": "Stรคng instรคllningar",
"sources": "Kรคllor",
"grouping": "Grupper",
"rules": "Regler",
"service": "Tjรคnst",
"app": "Instรคllningar",
"about": "Om",
"version": "Version",
"shortcuts": "Genvรคgar",
"openSource": "Open source",
"feedback": "ร…terkoppling"
},
"sources": {
"serviceWarning": "Kรคllor tillagda eller importerade hรคr, kommer inte att synkroniseras med din tjรคnst.",
"serviceManaged": "Denna kรคlla hanteras av din tjรคnst.",
"untitled": "Kรคlla",
"errorAdd": "Ett fel uppstod dรฅ kรคllan lades till.",
"errorParse": "Ett fel uppstod vid tolkning av OPML-filen.",
"errorParseHint": "Tillse att filen inte รคr skadad och รคr kodad med UTF-8.",
"errorImport": "Fel vid import av {count, plural, =1 {# kรคlla} other {# kรคllor}}.",
"exist": "Denna kรคlla finns redan.",
"opmlFile": "OPML-fil",
"name": "Kรคllnamn",
"editName": "Redigera namn",
"fetchFrequency": "Hรคmta frekvensbegrรคnsning",
"unlimited": "Obegrรคnsad",
"openTarget": "Standard รถppet mรฅl fรถr artiklar",
"delete": "Ta bort kรคlla",
"add": "Lรคgg till kรคlla",
"import": "Importera",
"export": "Exportera",
"rssText": "RSS fulltext",
"loadWebpage": "Lรคs in webbsidaq",
"inputUrl": "Ange URL",
"badIcon": "Ogiltig ikon",
"badUrl": "Ogiltig URL",
"deleteWarning": "Kรคllan och alla sparade artiklar kommer att tas bort.",
"selected": "Valde kรคlla",
"selectedMulti": "Valde flera kรคllor"
},
"groups": {
"exist": "Denna grupp finns redan.",
"type": "Typ",
"group": "Grupp",
"source": "Kรคlla",
"capacity": "Kapacitet",
"exitGroup": "Tillbaka till grupper",
"deleteSource": "Ta bort frรฅn gruppen",
"sourceHint": "Dra och slรคpp kรคllor fรถr att sortera.",
"selectAllSources": "Vรคlj alla kรคllor",
"create": "Skapa grupp",
"selectedGroup": "Valde grupp",
"selectedSource": "Valde kรคlla",
"enterName": "Ange namn",
"editName": "Redigera namn",
"editGroup": "Redigera grupp",
"deleteGroup": "Ta bort grupp",
"chooseGroup": "Vรคlj en grupp",
"addToGroup": "Lรคgg till i ...",
"groupHint": "Dubbelklicka pรฅ en grupp fรถr att redigera kรคllor. Dra och slรคpp fรถr att sortera."
},
"rules": {
"intro": "Markera artiklar automatiskt eller avisera med regular expressions.",
"help": "Lรคs mer",
"target": "Mรฅl",
"selectTarget": "Vรคlj ett mรฅl",
"new": "Ny regel",
"title": "Titel",
"content": "Innehรฅll",
"fullSearch": "Titel eller innehรฅll",
"creator": "Fรถrfattare",
"match": "matchar",
"notMatch": "matchar inte",
"regex": "Regular expression",
"badRegex": "Ogiltigt regular expression.",
"action": "ร…tgรคrder",
"selectAction": "Vรคlj รฅtgรคrder",
"hint": "Regler gรคller fรถr nyligen hรคmtade artiklar: alla artiklar โ†’ grupp โ†’ kรคlla. De kรถrs uppifrรฅn och ned; senare รฅtgรคrder har fรถretrรคde. Dra fรถr att รคndra ordningen. Tester inkluderar regler fรถr bredare mรฅl.",
"test": "Testa regler",
"searchField": "Sรถkfรคlt",
"matchCondition": "Matchningsvillkor",
"save": "Spara regel",
"selectAll": "Vรคlj alla regler",
"selectRule": "Vรคlj regel",
"saveError": "Det gick inte att spara reglerna. Fรถrsรถk igen."
},
"service": {
"intro": "Synkronisera mellan enheter med RSS-tjรคnster.",
"select": "Vรคlj en tjรคnst",
"suggest": "Fรถreslรฅ en ny tjรคnst",
"overwriteWarning": "Lokala kรคllor tas bort, om de finns i tjรคnsten.",
"groupsWarning": "Grupper synkroniseras inte automatiskt med tjรคnsten.",
"rateLimitWarning": "Fรถr att undvika frekvensbegrรคnsning mรฅste du skapa din egen API-nyckel.",
"removeAd": "Ta bort annons",
"endpoint": "Slutpunkt",
"username": "Anvรคndarnamn",
"password": "Lรถsenord",
"unchanged": "Ofรถrรคndrad",
"fetchLimit": "Synkroniseringsgrรคns",
"fetchLimitNum": "{count} senaste artiklar",
"importGroups": "Importera grupper",
"failure": "Kan inte ansluta till tjรคnsten",
"failureHint": "Kontrollera tjรคnstkonfigurationen eller nรคtverksstatus.",
"fetchUnlimited": "Obegrรคnsat (rekommenderas ej)",
"exportToLite": "Exportera till Fluent Reader Lite"
},
"app": {
"cleanup": "Rensa",
"cache": "Rensa cache",
"cacheSize": "Cache-lagra {size} data",
"deleteChoices": "Ta bort artiklar frรฅn ... dagar sedan",
"confirmDelete": "Ta bort",
"daysAgo": "{days, plural, =1 {# dag} other {# dagar}} sedan",
"deleteAll": "Ta bort alla artiklar",
"calculatingSize": "Berรคknar storlek...",
"itemSize": "Omkring {size} lokal datalagring upptas av artiklar",
"confirmImport": "Vill du verkligen importera data frรฅn sรคkerhetskopian? All aktuell data kommer att raderas.",
"data": "Applikationsdata",
"backup": "Sรคkerhetskopier",
"restore": "ร…terstรคll",
"frData": "Fluent Reader Data",
"language": "Skรคrmsprรฅk",
"theme": "Tema",
"lightTheme": "Ljust lรคge",
"darkTheme": "Mรถrkt lรคge",
"enableProxy": "Aktivera proxy",
"badUrl": "Ogiltig URL",
"pac": "PAC-adress",
"setPac": "Ange PAC",
"pacHint": "Fรถr Socks-proxyservrar rekommenderas att PAC returnerar "SOCKS5" fรถr DNS pรฅ proxysidan. Om du stรคnger av proxyn krรคvs omstart.",
"fetchInterval": "Automatiskt hรคmtningsintervall",
"never": "Aldrig"
}
}


File: src/scripts/i18n/tr.json

[Binary file]


File: src/scripts/i18n/uk.json

[Binary file]


File: src/scripts/i18n/zh-CN.json

{
"allArticles": "ๅ…จ้ƒจๆ–‡็ซ ",
"add": "ๆทปๅŠ ",
"create": "ๆ–ฐๅปบ",
"icon": "ๅ›พๆ ‡",
"name": "ๅ็งฐ",
"openExternal": "ๅœจๆต่งˆๅ™จไธญๆ‰“ๅผ€",
"emptyName": "ๅ็งฐไธๅพ—ไธบ็ฉบ",
"emptyField": "ๆญค้กนไธๅพ—ไธบ็ฉบ",
"edit": "็ผ–่พ‘",
"delete": "ๅˆ ้™ค",
"followSystem": "่ทŸ้š็ณป็ปŸ",
"more": "ๆ›ดๅคš",
"close": "ๅ…ณ้—ญ",
"search": "ๆœ็ดข",
"loadMore": "ๅŠ ่ฝฝๆ›ดๅคš",
"dangerButton": "็กฎ่ฎค{action}๏ผŸ",
"confirmMarkAll": "็กฎ่ฎคๅฐ†ๆœฌ้กตๆ‰€ๆœ‰ๆ–‡็ซ ๆ ‡ไธบๅทฒ่ฏป๏ผŸ",
"confirm": "็กฎ่ฎค",
"cancel": "ๅ–ๆถˆ",
"default": "้ป˜่ฎค",
"time": {
"now": "now",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m}ๅˆ†้’Ÿ",
"hour": "{h}ๅฐๆ—ถ",
"day": "{d}ๅคฉ"
},
"log": {
"empty": "ๆ— ๆถˆๆฏ",
"fetchFailure": "ๆ— ๆณ•ๅŠ ่ฝฝ่ฎข้˜…ๆบโ€œ{name}โ€",
"fetchSuccess": "ๆˆๅŠŸๅŠ ่ฝฝ {count} ็ฏ‡ๆ–‡็ซ ",
"networkError": "่ฟžๆŽฅ่ฎข้˜…ๆบๆ—ถๅ‡บ้”™",
"parseError": "่งฃๆžXMLไฟกๆฏๆตๆ—ถๅ‡บ้”™",
"syncFailure": "ๆ— ๆณ•ไธŽๆœๅŠกๅŒๆญฅ"
},
"nav": {
"menu": "่œๅ•",
"refresh": "ๅˆทๆ–ฐ",
"markAllRead": "ๅ…จ้ƒจๆ ‡ไธบๅทฒ่ฏป",
"notifications": "ๆถˆๆฏ",
"view": "่ง†ๅ›พ",
"settings": "้€‰้กน",
"minimize": "ๆœ€ๅฐๅŒ–",
"maximize": "ๆœ€ๅคงๅŒ–"
},
"menu": {
"close": "ๅ…ณ้—ญ่œๅ•",
"subscriptions": "่ฎข้˜…ๆบ"
},
"article": {
"error": "ๆ–‡็ซ ๅŠ ่ฝฝๅคฑ่ดฅ",
"reload": "้‡ๆ–ฐๅŠ ่ฝฝ",
"empty": "ๆ— ๆ–‡็ซ ",
"untitled": "๏ผˆๆ— ๆ ‡้ข˜๏ผ‰",
"hide": "้š่—ๆ–‡็ซ ",
"unhide": "ๅ–ๆถˆ้š่—",
"markRead": "ๆ ‡ไธบๅทฒ่ฏป",
"markUnread": "ๆ ‡ไธบๆœช่ฏป",
"markAbove": "ๅฐ†ไปฅไธŠๆ ‡ไธบๅทฒ่ฏป",
"markBelow": "ๅฐ†ไปฅไธ‹ๆ ‡ไธบๅทฒ่ฏป",
"star": "ๆ ‡ไธบๆ˜Ÿๆ ‡",
"unstar": "ๅ–ๆถˆๆ˜Ÿๆ ‡",
"fontSize": "ๅญ—ไฝ“ๅคงๅฐ",
"loadWebpage": "ๅŠ ่ฝฝ็ฝ‘้กต",
"loadFull": "ๆŠ“ๅ–ๅ…จๆ–‡",
"notify": "ๅŽๅฐๆŠ“ๅ–ๆ—ถๅ‘้€้€š็Ÿฅ",
"dontNotify": "ไธๅ‘้€้€š็Ÿฅ",
"textDir": "ๆ–‡ๆœฌๆ–นๅ‘",
"LTR": "ไปŽๅทฆๅˆฐๅณ",
"RTL": "ไปŽๅณๅˆฐๅทฆ",
"Vertical": "็บตไนฆ",
"font": "ๅญ—ไฝ“"
},
"context": {
"share": "ๅˆ†ไบซ",
"read": "้˜…่ฏป",
"copyTitle": "ๅคๅˆถๆ ‡้ข˜",
"copyURL": "ๅคๅˆถ้“พๆŽฅ",
"copy": "ๅคๅˆถ",
"search": "ไฝฟ็”จ {engine} ๆœ็ดขโ€œ{text}โ€",
"view": "่ง†ๅ›พ",
"cardView": "ๅก็‰‡่ง†ๅ›พ",
"listView": "ๅˆ—่กจ่ง†ๅ›พ",
"magazineView": "ๆ‚ๅฟ—่ง†ๅ›พ",
"compactView": "็ดงๅ‡‘่ง†ๅ›พ",
"filter": "็ญ›้€‰",
"unreadOnly": "ไป…ๆœช่ฏปๆ–‡็ซ ",
"starredOnly": "ไป…ๆ˜Ÿๆ ‡ๆ–‡็ซ ",
"fullSearch": "ๅœจๆญฃๆ–‡ไธญๆœ็ดข",
"showHidden": "ๆ˜พ็คบ้š่—ๆ–‡็ซ ",
"manageSources": "็ฎก็†่ฎข้˜…ๆบ",
"saveImageAs": "ๅฐ†ๅ›พๅƒๅฆๅญ˜ไธบ",
"copyImage": "ๅคๅˆถๅ›พๅƒ",
"copyImageURL": "ๅคๅˆถๅ›พๅƒ้“พๆŽฅ",
"caseSensitive": "ๅŒบๅˆ†ๅคงๅฐๅ†™",
"showCover": "ๆ˜พ็คบๅฐ้ข",
"showSnippet": "ๆ˜พ็คบๆ‘˜่ฆ",
"fadeRead": "ๆทกๅŒ–ๅทฒ่ฏปๆ–‡็ซ "
},
"searchEngine": {
"name": "ๆœ็ดขๅผ•ๆ“Ž",
"bing": "ๅฟ…ๅบ”",
"baidu": "็™พๅบฆ"
},
"settings": {
"writeError": "ๅ†™ๅ…ฅๆ–‡ไปถๆ—ถๅ‘็”Ÿ้”™่ฏฏ",
"name": "้€‰้กน",
"fetching": "ๆญฃๅœจๆ›ดๆ–ฐ่ฎข้˜…ๆบ๏ผŒ่ฏท็จๅ€™โ€ฆ",
"exit": "้€€ๅ‡บ้€‰้กน",
"sources": "่ฎข้˜…ๆบ",
"grouping": "ๅˆ†็ป„ไธŽๆŽ’ๅบ",
"rules": "่ง„ๅˆ™",
"service": "ๆœๅŠก",
"app": "ๅบ”็”จๅๅฅฝ",
"about": "ๅ…ณไบŽ",
"version": "็‰ˆๆœฌ",
"shortcuts": "ๅฟซๆท้”ฎ",
"openSource": "ๅผ€ๆบ้กน็›ฎ",
"feedback": "ๅ้ฆˆ"
},
"sources": {
"serviceWarning": "ๆญคๅค„ๅฏผๅ…ฅๆˆ–ๆทปๅŠ ็š„่ฎข้˜…ๆบๅฐ†ไธไผšไธŽๆœๅŠก็ซฏๅŒๆญฅ",
"serviceManaged": "่ฏฅ่ฎข้˜…ๆบ็”ฑๆœๅŠก็ซฏ็ฎก็†",
"untitled": "่ฎข้˜…ๆบ",
"errorAdd": "ๆทปๅŠ ่ฎข้˜…ๆบๆ—ถๅ‡บ้”™",
"errorParse": "่งฃๆžOPMLๆ–‡ไปถๆ—ถๅ‡บ้”™",
"errorParseHint": "่ฏท็กฎไฟOPMLๆ–‡ไปถๅฎŒๆ•ดไธ”ไฝฟ็”จUTF-8็ผ–็ ใ€‚",
"errorImport": "ๅฏผๅ…ฅ{count}้กน่ฎข้˜…ๆบๆ—ถๅ‡บ้”™",
"exist": "่ฏฅ่ฎข้˜…ๆบๅทฒๅญ˜ๅœจ",
"opmlFile": "OPMLๆ–‡ไปถ",
"name": "่ฎข้˜…ๆบๅ็งฐ",
"editName": "ไฟฎๆ”นๅ็งฐ",
"fetchFrequency": "ๆŠ“ๅ–้ข‘็އ้™ๅˆถ",
"unlimited": "ๆ— ้™ๅˆถ",
"openTarget": "่ฎข้˜…ๆบๆ–‡็ซ ๆ‰“ๅผ€ๆ–นๅผ",
"delete": "ๅˆ ้™ค่ฎข้˜…ๆบ",
"add": "ๆทปๅŠ ่ฎข้˜…ๆบ",
"import": "ๅฏผๅ…ฅๆ–‡ไปถ",
"export": "ๅฏผๅ‡บๆ–‡ไปถ",
"rssText": "RSSๆญฃๆ–‡",
"loadWebpage": "ๅŠ ่ฝฝ็ฝ‘้กต",
"inputUrl": "่พ“ๅ…ฅURL",
"badIcon": "ๅ›พๆ ‡ไธๅญ˜ๅœจๆˆ–้žๅ›พ็‰‡",
"badUrl": "่ฏทๆญฃ็กฎ่พ“ๅ…ฅURL",
"deleteWarning": "่ฟ™ๅฐ†็งป้™ค่ฎข้˜…ๆบไธŽๆ‰€ๆœ‰ๅทฒไฟๅญ˜็š„ๆ–‡็ซ ",
"selected": "้€‰ไธญ่ฎข้˜…ๆบ",
"selectedMulti": "้€‰ไธญๅคšไธช่ฎข้˜…ๆบ",
"hidden": "ไปŽโ€œๅ…จ้ƒจๆ–‡็ซ โ€ไธญ้š่—"
},
"groups": {
"exist": "่ฏฅๅˆ†็ป„ๅทฒๅญ˜ๅœจ",
"type": "็ฑปๅž‹",
"group": "ๅˆ†็ป„",
"source": "่ฎข้˜…ๆบ",
"capacity": "ๅฎน้‡",
"exitGroup": "้€€ๅ‡บๅˆ†็ป„",
"deleteSource": "ไปŽๅˆ†็ป„ๅˆ ้™ค่ฎข้˜…ๆบ",
"sourceHint": "ๆ‹–ๆ‹ฝ่ฎข้˜…ๆบไปฅๆŽ’ๅบ",
"selectAllSources": "้€‰ๆ‹ฉๆ‰€ๆœ‰ๆบ",
"create": "ๆ–ฐๅปบๅˆ†็ป„",
"selectedGroup": "้€‰ไธญๅˆ†็ป„",
"selectedSource": "้€‰ไธญ่ฎข้˜…ๆบ",
"enterName": "่พ“ๅ…ฅๅ็งฐ",
"editName": "ไฟฎๆ”นๅ็งฐ",
"editGroup": "็ผ–่พ‘ๅˆ†็ป„",
"deleteGroup": "ๅˆ ้™คๅˆ†็ป„",
"chooseGroup": "้€‰ๆ‹ฉๅˆ†็ป„",
"addToGroup": "ๆทปๅŠ ่‡ณๅˆ†็ป„",
"groupHint": "ๅŒๅ‡ปๅˆ†็ป„ไปฅไฟฎๆ”น่ฎข้˜…ๆบ๏ผŒๅฏ้€š่ฟ‡ๆ‹–ๆ‹ฝๆŽ’ๅบ"
},
"rules": {
"intro": "้€š่ฟ‡ๆญฃๅˆ™่กจ่พพๅผ่‡ชๅŠจๆ ‡่ฎฐๆ–‡็ซ ๆˆ–ๆŽจ้€้€š็Ÿฅ",
"help": "ไบ†่งฃๆ›ดๅคš",
"target": "็›ฎๆ ‡",
"selectTarget": "้€‰ๆ‹ฉไธ€ไธช็›ฎๆ ‡",
"new": "ๆ–ฐๅปบ่ง„ๅˆ™",
"title": "ๆ ‡้ข˜",
"content": "ๆญฃๆ–‡",
"fullSearch": "ๆ ‡้ข˜ๆˆ–ๆญฃๆ–‡",
"creator": "ไฝœ่€…",
"match": "ๅŒน้…",
"notMatch": "ไธๅŒน้…",
"regex": "ๆญฃๅˆ™่กจ่พพๅผ",
"badRegex": "ๆญฃๅˆ™่กจ่พพๅผ้žๆณ•",
"action": "่กŒไธบ",
"selectAction": "้€‰ๆ‹ฉ่กŒไธบ",
"hint": "่ง„ๅˆ™ไป…ๅบ”็”จไบŽๆ–ฐ่Žทๅ–็š„ๆ–‡็ซ ๏ผŒ้กบๅบไธบ๏ผšๅ…จ้ƒจๆ–‡็ซ  โ†’ ๅˆ†็ป„ โ†’ ่ฎข้˜…ๆบใ€‚่ง„ๅˆ™ไปŽไธŠๅˆฐไธ‹ๆ‰ง่กŒ๏ผŒๅŽ็ปญๆ“ไฝœไผ˜ๅ…ˆ๏ผŒๅฏๆ‹–ๆ‹ฝๆŽ’ๅบใ€‚ๆต‹่ฏ•ๅŒ…ๅซๆ›ดๅคง่Œƒๅ›ด็š„็›ฎๆ ‡่ง„ๅˆ™ใ€‚",
"test": "ๆต‹่ฏ•่ง„ๅˆ™",
"searchField": "ๆœ็ดข่Œƒๅ›ด",
"matchCondition": "ๅŒน้…ๆกไปถ",
"save": "ไฟๅญ˜่ง„ๅˆ™",
"selectAll": "้€‰ๆ‹ฉๅ…จ้ƒจ่ง„ๅˆ™",
"selectRule": "้€‰ๆ‹ฉ่ง„ๅˆ™",
"saveError": "ๆ— ๆณ•ไฟๅญ˜่ง„ๅˆ™๏ผŒ่ฏท้‡่ฏ•ใ€‚"
},
"service": {
"intro": "้€š่ฟ‡ RSS ๆœๅŠก่ทจ่ฎพๅค‡ไฟๆŒๅŒๆญฅ",
"select": "้€‰ๆ‹ฉๆœๅŠก",
"suggest": "ๅปบ่ฎฎไธ€้กนๆ–ฐๆœๅŠก",
"overwriteWarning": "่‹ฅๆœฌๅœฐไธŽๆœๅŠก็ซฏๅญ˜ๅœจURL็›ธๅŒ็š„่ฎข้˜…ๆบ๏ผŒๅˆ™ๆœฌๅœฐ่ฎข้˜…ๆบๅฐ†่ขซๅˆ ้™ค",
"groupsWarning": "ๅˆ†็ป„ไธไผš่‡ชๅŠจไธŽๆœๅŠก็ซฏไฟๆŒๅŒๆญฅ",
"rateLimitWarning": "ไธบ้ฟๅ…้™ๆต๏ผŒๆ‚จ้œ€่ฆๆ–ฐๅปบ่‡ชๅทฑ็š„ API Key",
"removeAd": "็งป้™คๅนฟๅ‘Š",
"endpoint": "็ซฏ็‚น",
"username": "็”จๆˆทๅ",
"password": "ๅฏ†็ ",
"unchanged": "ๆœชๆ›ดๆ”น",
"fetchLimit": "ๅŒๆญฅๆ•ฐ้‡",
"fetchLimitNum": "ๆœ€่ฟ‘ {count} ็ฏ‡ๆ–‡็ซ ",
"importGroups": "ๅฏผๅ…ฅๅˆ†็ป„",
"failure": "่ฟžๆŽฅๅˆฐๆœๅŠกๆ—ถๅ‡บ้”™",
"failureHint": "่ฏทๆฃ€ๆŸฅๆœๅŠก้…็ฝฎๆˆ–็ฝ‘็ปœ่ฟžๆŽฅ",
"fetchUnlimited": "ๆ— ้™ๅˆถ๏ผˆไธๅปบ่ฎฎ๏ผ‰",
"exportToLite": "ๅฏผๅ‡บ่‡ณ Fluent Reader Lite"
},
"app": {
"cleanup": "ๆธ…็†",
"cache": "ๆธ…็ฉบ็ผ“ๅญ˜",
"cacheSize": "ๅทฒ็ผ“ๅญ˜{size}ๆ•ฐๆฎ",
"deleteChoices": "ๅˆ ้™ค โ€ฆ ๅคฉๅ‰็š„ๆ–‡็ซ ",
"confirmDelete": "ๅˆ ้™คๆ–‡็ซ ",
"daysAgo": "{days} ๅคฉๅ‰",
"deleteAll": "ๅˆ ้™คๅ…จ้ƒจๆ–‡็ซ ",
"calculatingSize": "ๆญฃๅœจ่ฎก็ฎ—ๅ ็”จ็ฉบ้—ดโ€ฆ",
"itemSize": "ๆœฌๅœฐๆ–‡็ซ ็บฆๅ ็”จ{size}็ฉบ้—ด",
"confirmImport": "็กฎ่ฎค่ฆไปŽๅค‡ไปฝๆ–‡ไปถๅฏผๅ…ฅๆ•ฐๆฎๅ—๏ผŸ่ฟ™ๅฐ†ๆธ…้™คๆ‰€ๆœ‰ๅบ”็”จๆ•ฐๆฎใ€‚",
"data": "ๅบ”็”จๆ•ฐๆฎ",
"backup": "ๅค‡ไปฝ",
"restore": "่ฟ˜ๅŽŸ",
"frData": "Fluent Readerๆ•ฐๆฎ",
"language": "็•Œ้ข่ฏญ่จ€",
"theme": "ๅบ”็”จไธป้ข˜",
"lightTheme": "ๆต…่‰ฒๆจกๅผ",
"darkTheme": "ๆทฑ่‰ฒๆจกๅผ",
"enableProxy": "ๅฏ็”จไปฃ็†",
"badUrl": "่ฏทๆญฃ็กฎ่พ“ๅ…ฅURL",
"pac": "PACๅœฐๅ€",
"setPac": "่ฎพ็ฝฎPAC",
"pacHint": "ๅฏนไบŽSocksไปฃ็†ๅปบ่ฎฎPAC่ฟ”ๅ›žโ€œSOCKS5โ€ไปฅๅฏ็”จไปฃ็†็ซฏ่งฃๆžใ€‚ๅ…ณ้—ญไปฃ็†้œ€้‡ๅฏๅบ”็”จๅŽ็”Ÿๆ•ˆใ€‚",
"fetchInterval": "่‡ชๅŠจๆŠ“ๅ–้ข‘็އ",
"never": "ไปŽไธ"
}
}


File: src/scripts/i18n/zh-TW.json

{
"allArticles": "ๅ…จ้ƒจๆ–‡็ซ ",
"add": "ๆ–ฐๅขž",
"create": "ๆ–ฐๅปบ",
"icon": "ๅœ–็คบ",
"name": "ๅ็จฑ",
"openExternal": "ๅœจ็€่ฆฝๅ™จไธญ้–‹ๅ•Ÿ",
"emptyName": "ๅ็จฑไธๅพ—็‚บ็ฉบ",
"emptyField": "ๆญค้ …ไธๅพ—็‚บ็ฉบ",
"edit": "็ทจ่ผฏ",
"delete": "ๅˆช้™ค",
"followSystem": "่ทŸ้šจ็ณป็ตฑ",
"more": "ๆ›ดๅคš",
"close": "้—œ้–‰",
"search": "ๆœๅฐ‹",
"loadMore": "่ผ‰ๅ…ฅๆ›ดๅคš",
"dangerButton": "็ขบ่ช{action}๏ผŸ",
"confirmMarkAll": "็ขบ่ชๅฐ‡ๆœฌ้ ๆ‰€ๆœ‰ๆ–‡็ซ ๆจ™็‚บๅทฒ่ฎ€๏ผŸ",
"confirm": "็ขบ่ช",
"cancel": "ๅ–ๆถˆ",
"default": "้ ่จญ",
"time": {
"now": "now",
"m": "m",
"h": "h",
"d": "d",
"minute": "{m}ๅˆ†้˜",
"hour": "{h}ๅฐๆ™‚",
"day": "{d}ๅคฉ"
},
"log": {
"empty": "็„ก่จŠๆฏ",
"fetchFailure": "็„กๆณ•่ผ‰ๅ…ฅ่จ‚้–ฑๆบโ€œ{name}โ€",
"fetchSuccess": "ๆˆๅŠŸ่ผ‰ๅ…ฅ {count} ็ฏ‡ๆ–‡็ซ ",
"networkError": "้€ฃ็ทš่จ‚้–ฑๆบๆ™‚ๅ‡บ้Œฏ",
"parseError": "่งฃๆžXML่ณ‡่จŠๆตๆ™‚ๅ‡บ้Œฏ",
"syncFailure": "็„กๆณ•่ˆ‡ๆœๅ‹™ๅŒๆญฅ"
},
"nav": {
"menu": "้ธๅ–ฎ",
"refresh": "้‡ๆ–ฐๆ•ด็†",
"markAllRead": "ๅ…จ้ƒจๆจ™็‚บๅทฒ่ฎ€",
"notifications": "่จŠๆฏ",
"view": "ๆชข่ฆ–",
"settings": "้ธ้ …",
"minimize": "ๆœ€ๅฐๅŒ–",
"maximize": "ๆœ€ๅคงๅŒ–"
},
"menu": {
"close": "้—œ้–‰้ธๅ–ฎ",
"subscriptions": "่จ‚้–ฑๆบ"
},
"article": {
"error": "ๆ–‡็ซ ่ผ‰ๅ…ฅๅคฑๆ•—",
"reload": "้‡ๆ–ฐ่ผ‰ๅ…ฅ",
"empty": "็„กๆ–‡็ซ ",
"untitled": "๏ผˆ็„กๆจ™้กŒ๏ผ‰",
"hide": "้šฑ่—ๆ–‡็ซ ",
"unhide": "ๅ–ๆถˆ้šฑ่—",
"markRead": "ๆจ™็‚บๅทฒ่ฎ€",
"markUnread": "ๆจ™็‚บๆœช่ฎ€",
"markAbove": "ๅฐ‡ไปฅไธŠๆจ™็‚บๅทฒ่ฎ€",
"markBelow": "ๅฐ‡ไปฅไธ‹ๆจ™็‚บๅทฒ่ฎ€",
"star": "ๆจ™็‚บๆ˜Ÿๆจ™",
"unstar": "ๅ–ๆถˆๆ˜Ÿๆจ™",
"fontSize": "ๅญ—ๅž‹ๅคงๅฐ",
"loadWebpage": "่ผ‰ๅ…ฅ็ถฒ้ ",
"loadFull": "ๆŠ“ๅ–ๅ…จๆ–‡",
"notify": "ๅพŒ่‡บๆŠ“ๅ–ๆ™‚ๅ‚ณ้€้€š็Ÿฅ",
"dontNotify": "ไธๅ‚ณ้€้€š็Ÿฅ",
"textDir": "ๆ–‡ๆœฌๆ–นๅ‘",
"LTR": "ๅพžๅทฆๅˆฐๅณ",
"RTL": "ๅพžๅณๅˆฐๅทฆ",
"Vertical": "็ธฑๆ›ธ",
"font": "ๅญ—้ซ”"
},
"context": {
"share": "ๅˆ†ไบซ",
"read": "้–ฑ่ฎ€",
"copyTitle": "่ค‡่ฃฝๆจ™้กŒ",
"copyURL": "่ค‡่ฃฝ้€ฃ็ต",
"copy": "่ค‡่ฃฝ",
"search": "ไฝฟ็”จ {engine} ๆœๅฐ‹โ€œ{text}โ€",
"view": "ๆชข่ฆ–",
"cardView": "ๅก็‰‡ๆชข่ฆ–",
"listView": "ๅˆ—่กจๆชข่ฆ–",
"magazineView": "้›œ่ชŒๆชข่ฆ–",
"compactView": "็ทŠๆนŠๆชข่ฆ–",
"filter": "็ฏฉ้ธ",
"unreadOnly": "ๅƒ…ๆœช่ฎ€ๆ–‡็ซ ",
"starredOnly": "ๅƒ…ๆ˜Ÿๆจ™ๆ–‡็ซ ",
"fullSearch": "ๅœจๆญฃๆ–‡ไธญๆœๅฐ‹",
"showHidden": "้กฏ็คบ้šฑ่—ๆ–‡็ซ ",
"manageSources": "็ฎก็†่จ‚้–ฑๆบ",
"saveImageAs": "ๅฐ‡ๅฝฑ่ฑกๅฆๅญ˜็‚บ",
"copyImage": "่ค‡่ฃฝๅฝฑ่ฑก",
"copyImageURL": "่ค‡่ฃฝๅฝฑ่ฑก้€ฃ็ต",
"caseSensitive": "ๅ€ๅˆ†ๅคงๅฐๅฏซ",
"showCover": "้กฏ็คบๅฐ้ข",
"showSnippet": "้กฏ็คบๆ‘˜่ฆ",
"fadeRead": "ๆทกๅŒ–ๅทฒ่ฎ€ๆ–‡็ซ "
},
"searchEngine": {
"name": "ๆœๅฐ‹ๅผ•ๆ“Ž",
"bing": "ๅฟ…ๆ‡‰",
"baidu": "็™พๅบฆ"
},
"settings": {
"writeError": "ๅฏซๅ…ฅๆช”ๆกˆๆ™‚็™ผ็”Ÿ้Œฏ่ชค",
"name": "้ธ้ …",
"fetching": "ๆญฃๅœจๆ›ดๆ–ฐ่จ‚้–ฑๆบ๏ผŒ่ซ‹็จๅ€™โ€ฆ",
"exit": "้€€ๅ‡บ้ธ้ …",
"sources": "่จ‚้–ฑๆบ",
"grouping": "ๅˆ†็ต„่ˆ‡ๆŽ’ๅบ",
"rules": "่ฆๅ‰‡",
"service": "ๆœๅ‹™",
"app": "ๆ‡‰็”จๅๅฅฝ",
"about": "้—œๆ–ผ",
"version": "็‰ˆๆœฌ",
"shortcuts": "ๅฟซๆท้ต",
"openSource": "้–‹ๆบ้ …็›ฎ",
"feedback": "ๅ้ฅ‹"
},
"sources": {
"serviceWarning": "ๆญค่™•ๅŒฏๅ…ฅๆˆ–ๆ–ฐๅขž็š„่จ‚้–ฑๆบๅฐ‡ไธๆœƒ่ˆ‡ๆœๅ‹™็ซฏๅŒๆญฅ",
"serviceManaged": "่ฉฒ่จ‚้–ฑๆบ็”ฑๆœๅ‹™็ซฏ็ฎก็†",
"untitled": "่จ‚้–ฑๆบ",
"errorAdd": "ๆ–ฐๅขž่จ‚้–ฑๆบๆ™‚ๅ‡บ้Œฏ",
"errorParse": "่งฃๆžOPMLๆช”ๆกˆๆ™‚ๅ‡บ้Œฏ",
"errorParseHint": "่ซ‹็ขบไฟOPMLๆช”ๆกˆๅฎŒๆ•ดไธ”ไฝฟ็”จUTF-8็ทจ็ขผใ€‚",
"errorImport": "ๅŒฏๅ…ฅ{count}้ …่จ‚้–ฑๆบๆ™‚ๅ‡บ้Œฏ",
"exist": "่ฉฒ่จ‚้–ฑๆบๅทฒๅญ˜ๅœจ",
"opmlFile": "OPMLๆช”ๆกˆ",
"name": "่จ‚้–ฑๆบๅ็จฑ",
"editName": "ไฟฎๆ”นๅ็จฑ",
"fetchFrequency": "ๆŠ“ๅ–้ ป็އ้™ๅˆถ",
"unlimited": "็„ก้™ๅˆถ",
"openTarget": "่จ‚้–ฑๆบๆ–‡็ซ ้–‹ๅ•Ÿๆ–นๅผ",
"delete": "ๅˆช้™ค่จ‚้–ฑๆบ",
"add": "ๆ–ฐๅขž่จ‚้–ฑๆบ",
"import": "ๅŒฏๅ…ฅๆช”ๆกˆ",
"export": "ๅŒฏๅ‡บๆช”ๆกˆ",
"rssText": "RSSๆญฃๆ–‡",
"loadWebpage": "่ผ‰ๅ…ฅ็ถฒ้ ",
"inputUrl": "่ผธๅ…ฅURL",
"badIcon": "ๅœ–็คบไธๅญ˜ๅœจๆˆ–้žๅœ–็‰‡",
"badUrl": "่ซ‹ๆญฃ็ขบ่ผธๅ…ฅURL",
"deleteWarning": "้€™ๅฐ‡็งป้™ค่จ‚้–ฑๆบ่ˆ‡ๆ‰€ๆœ‰ๅทฒๅ„ฒๅญ˜็š„ๆ–‡็ซ ",
"selected": "้ธไธญ่จ‚้–ฑๆบ",
"selectedMulti": "้ธไธญๅคšๅ€‹่จ‚้–ฑๆบ",
"hidden": "ๅพžโ€œๅ…จ้ƒจๆ–‡็ซ โ€ไธญ้šฑ่—"
},
"groups": {
"exist": "่ฉฒๅˆ†็ต„ๅทฒๅญ˜ๅœจ",
"type": "้กžๅž‹",
"group": "ๅˆ†็ต„",
"source": "่จ‚้–ฑๆบ",
"capacity": "ๅฎน้‡",
"exitGroup": "้€€ๅ‡บๅˆ†็ต„",
"deleteSource": "ๅพžๅˆ†็ต„ๅˆช้™ค่จ‚้–ฑๆบ",
"sourceHint": "ๆ‹–ๆ‹ฝ่จ‚้–ฑๆบไปฅๆŽ’ๅบ",
"selectAllSources": "้ธๅ–ๆ‰€ๆœ‰ไพ†ๆบ",
"create": "ๆ–ฐๅปบๅˆ†็ต„",
"selectedGroup": "้ธไธญๅˆ†็ต„",
"selectedSource": "้ธไธญ่จ‚้–ฑๆบ",
"enterName": "่ผธๅ…ฅๅ็จฑ",
"editName": "ไฟฎๆ”นๅ็จฑ",
"editGroup": "็ทจ่ผฏ็พค็ต„",
"deleteGroup": "ๅˆช้™คๅˆ†็ต„",
"chooseGroup": "้ธๆ“‡ๅˆ†็ต„",
"addToGroup": "ๆ–ฐๅขž่‡ณๅˆ†็ต„",
"groupHint": "้›™ๆ“Šๅˆ†็ต„ไปฅไฟฎๆ”น่จ‚้–ฑๆบ๏ผŒๅฏ้€š้Žๆ‹–ๆ‹ฝๆŽ’ๅบ"
},
"rules": {
"intro": "้€š้Žๆญฃ่ฆ่กจ็คบๅผ่‡ชๅ‹•ๆจ™่จ˜ๆ–‡็ซ ๆˆ–ๆŽจ้€้€š็Ÿฅ",
"help": "็žญ่งฃๆ›ดๅคš",
"target": "็›ฎๆจ™",
"selectTarget": "้ธๆ“‡ไธ€ๅ€‹็›ฎๆจ™",
"new": "ๆ–ฐๅปบ่ฆๅ‰‡",
"title": "ๆจ™้กŒ",
"content": "ๆญฃๆ–‡",
"fullSearch": "ๆจ™้กŒๆˆ–ๆญฃๆ–‡",
"creator": "ไฝœ่€…",
"match": "ๅŒน้…",
"notMatch": "ไธๅŒน้…",
"regex": "ๆญฃ่ฆ่กจ็คบๅผ",
"badRegex": "ๆญฃ่ฆ่กจ็คบๅผ้žๆณ•",
"action": "่กŒ็‚บ",
"selectAction": "้ธๆ“‡่กŒ็‚บ",
"hint": "่ฆๅ‰‡ๅƒ…ๅฅ—็”จๆ–ผๆ–ฐๅ–ๅพ—็š„ๆ–‡็ซ ๏ผŒ้ †ๅบ็‚บ๏ผšๅ…จ้ƒจๆ–‡็ซ  โ†’ ็พค็ต„ โ†’ ่จ‚้–ฑๆบใ€‚่ฆๅ‰‡็”ฑไธŠ่€Œไธ‹ๅŸท่กŒ๏ผŒๅพŒ็บŒๆ“ไฝœๅ„ชๅ…ˆ๏ผŒๅฏๆ‹–ๆ›ณๆŽ’ๅบใ€‚ๆธฌ่ฉฆๅŒ…ๅซ่ผƒๅคง็ฏ„ๅœ็š„็›ฎๆจ™่ฆๅ‰‡ใ€‚",
"test": "ๆธฌ่ฉฆ่ฆๅ‰‡",
"searchField": "ๆœๅฐ‹็ฏ„ๅœ",
"matchCondition": "ๆฏ”ๅฐๆขไปถ",
"save": "ๅ„ฒๅญ˜่ฆๅ‰‡",
"selectAll": "้ธๅ–ๅ…จ้ƒจ่ฆๅ‰‡",
"selectRule": "้ธๅ–่ฆๅ‰‡",
"saveError": "็„กๆณ•ๅ„ฒๅญ˜่ฆๅ‰‡๏ผŒ่ซ‹้‡่ฉฆใ€‚"
},
"service": {
"intro": "้€š้Ž RSS ๆœๅ‹™่ทจ่ฃ็ฝฎไฟๆŒๅŒๆญฅ",
"select": "้ธๆ“‡ๆœๅ‹™",
"suggest": "ๅปบ่ญฐไธ€้ …ๆ–ฐๆœๅ‹™",
"overwriteWarning": "่‹ฅๆœฌๅœฐ่ˆ‡ๆœๅ‹™็ซฏๅญ˜ๅœจURL็›ธๅŒ็š„่จ‚้–ฑๆบ๏ผŒๅ‰‡ๆœฌๅœฐ่จ‚้–ฑๆบๅฐ‡่ขซๅˆช้™ค",
"groupsWarning": "ๅˆ†็ต„ไธๆœƒ่‡ชๅ‹•่ˆ‡ๆœๅ‹™็ซฏไฟๆŒๅŒๆญฅ",
"rateLimitWarning": "็‚บ้ฟๅ…้™ๆต๏ผŒๆ‚จ้œ€่ฆๆ–ฐๅปบ่‡ชๅทฑ็š„ API Key",
"removeAd": "็งป้™คๅปฃๅ‘Š",
"endpoint": "็ซฏ้ปž",
"username": "ไฝฟ็”จ่€…ๅ็จฑ",
"password": "ๅฏ†็ขผ",
"unchanged": "ๆœชๆ›ดๆ”น",
"fetchLimit": "ๅŒๆญฅๆ•ธ้‡",
"fetchLimitNum": "ๆœ€่ฟ‘ {count} ็ฏ‡ๆ–‡็ซ ",
"importGroups": "ๅŒฏๅ…ฅๅˆ†็ต„",
"failure": "้€ฃ็ทšๅˆฐๆœๅ‹™ๆ™‚ๅ‡บ้Œฏ",
"failureHint": "่ซ‹ๆชขๆŸฅๆœๅ‹™้…็ฝฎๆˆ–็ถฒ่ทฏ้€ฃ็ทš",
"fetchUnlimited": "็„ก้™ๅˆถ๏ผˆไธๅปบ่ญฐ๏ผ‰",
"exportToLite": "ๅŒฏๅ‡บ่‡ณ Fluent Reader Lite"
},
"app": {
"cleanup": "ๆธ…็†",
"cache": "ๆธ…็ฉบๅฟซๅ–",
"cacheSize": "ๅทฒๅฟซๅ–{size}่ณ‡ๆ–™",
"deleteChoices": "ๅˆช้™ค โ€ฆ ๅคฉๅ‰็š„ๆ–‡็ซ ",
"confirmDelete": "ๅˆช้™คๆ–‡็ซ ",
"daysAgo": "{days} ๅคฉๅ‰",
"deleteAll": "ๅˆช้™คๅ…จ้ƒจๆ–‡็ซ ",
"calculatingSize": "ๆญฃๅœจ่จˆ็ฎ—ไฝ”็”จ็ฉบ้–“โ€ฆ",
"itemSize": "ๆœฌๅœฐๆ–‡็ซ ็ด„ไฝ”็”จ{size}็ฉบ้–“",
"confirmImport": "็ขบ่ช่ฆๅพžๅ‚™ไปฝๆช”ๆกˆๅŒฏๅ…ฅ่ณ‡ๆ–™ๅ—Ž๏ผŸ้€™ๅฐ‡ๆธ…้™คๆ‰€ๆœ‰ๆ‡‰็”จ่ณ‡ๆ–™ใ€‚",
"data": "ๆ‡‰็”จ่ณ‡ๆ–™",
"backup": "ๅ‚™ไปฝ",
"restore": "้‚„ๅŽŸ",
"frData": "Fluent Reader่ณ‡ๆ–™",
"language": "ไป‹้ข่ชž่จ€",
"theme": "ๆ‡‰็”จไธป้กŒ",
"lightTheme": "ๆทบ่‰ฒๆจกๅผ",
"darkTheme": "ๆทฑ่‰ฒๆจกๅผ",
"enableProxy": "ๅ•Ÿ็”จไปฃ็†",
"badUrl": "่ซ‹ๆญฃ็ขบ่ผธๅ…ฅURL",
"pac": "PACๅœฐๅ€",
"setPac": "่จญๅฎšPAC",
"pacHint": "ๅฐๆ–ผSocksไปฃ็†ๅปบ่ญฐPAC่ฟ”ๅ›žโ€œSOCKS5โ€ไปฅๅ•Ÿ็”จไปฃ็†็ซฏ่งฃๆžใ€‚้—œ้–‰ไปฃ็†้œ€้‡ๅ•Ÿๆ‡‰็”จๅพŒ็”Ÿๆ•ˆใ€‚",
"fetchInterval": "่‡ชๅ‹•ๆŠ“ๅ–้ ป็އ",
"never": "ๅพžไธ"
}
}


File: tests/README.md

Private end-to-end tests

The optional e2e submodule is maintained in the private
yang991178/fluent-reader-tests repository. Normal installs, builds, and release
workflows do not need it. Recursive clones require access to that repository.

From the application repository root:

sh
git submodule update --init tests/e2e
npm install
npm run build
npm --prefix tests/e2e ci
npm --prefix tests/e2e test

See tests/e2e/README.md for the harness architecture and diagnostics. Commit
and push test changes in the private repository before publishing an updated
submodule pointer here. Never add test sources or reports directly to this
public repository.


File: .github/FUNDING.yml

These are supported funding model platforms

github: ["yang991178"] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # "fluent-reader"
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom:
[
"https://www.paypal.me/yang991178",
"https://hyliu.me/fluent-reader/imgs/alipay.jpg",
]


File: .github/ISSUE_TEMPLATE/bug_report.md


name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''


Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Platform (please complete the following information):

  • OS: [e.g. Windows 10 2004]
  • Version [e.g. 0.6.1]

Additional context
Add any other context about the problem here.


File: .github/ISSUE_TEMPLATE/feature_request.md


name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''


Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.


File: .github/workflows/pages.yml

name: Deploy GitHub Pages

on:
push:
branches: [master]
paths:
- "docs/**"
- ".github/workflows/pages.yml"
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: false

text
- name: Configure Pages
          uses: actions/configure-pages@v5

        - name: Upload site
          uses: actions/upload-pages-artifact@v3
          with:
              path: docs

        - name: Deploy to GitHub Pages
          id: deployment
          uses: actions/deploy-pages@v5

File: .github/workflows/release-linux.yml

name: CI/CD Release Linux

on:
release:
types:
- published
workflow_dispatch:
inputs:
tag:
required: true
type: string

permissions:
contents: write

jobs:
release-linux:
runs-on: ubuntu-latest
env:
RELEASE_TAG: ${{ github.event.release.tag_name || inputs.tag }}

text
steps:
        - uses: actions/checkout@v7
          with:
              ref: ${{ env.RELEASE_TAG }}

        - uses: actions/setup-node@v7
          with:
              node-version: "24"
              package-manager-cache: false

        - name: Verify release exists
          env:
              GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          run: gh release view "$RELEASE_TAG" --repo "$GITHUB_REPOSITORY" > /dev/null

        - name: Build and package the app
          run: |
              npm install
              npm run build
              npm run package-linux

        - name: Upload AppImage to release assets
          env:
              GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          run: |
              version="$(node -p "require('./package.json').version")"
              asset_path="$RUNNER_TEMP/Fluent.Reader.$version.AppImage"
              cp "./bin/linux/x64/Fluent Reader-$version.AppImage" "$asset_path"
              gh release upload "$RELEASE_TAG" "$asset_path" --repo "$GITHUB_REPOSITORY" --clobber

File: .github/workflows/release-main.yml

name: CI/CD Release

on:
push:
tags:
- "v*"

jobs:
release:
runs-on: windows-latest

text
steps:
        - uses: actions/checkout@v2

        - name: Build and package the app
          run: |
              npm install
              npm run build
              npm run package-win-ci

        - name: Get app version
          id: package-version
          run: |
              PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
              echo ::set-output name=current-version::$PACKAGE_VERSION
          shell: bash

        - name: Create release
          id: create_release
          uses: actions/create-release@v1
          env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          with:
              tag_name: ${{ github.ref }}
              release_name: Fluent Reader v${{ steps.package-version.outputs.current-version }}
              draft: true
              prerelease: false

        - name: Upload x64 exe to release assets
          uses: actions/upload-release-asset@v1
          env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          with:
              upload_url: ${{ steps.create_release.outputs.upload_url }}
              asset_path: ./bin/win32/x64/Fluent Reader Setup ${{ steps.package-version.outputs.current-version }}.exe
              asset_name: Fluent.Reader.Setup.${{ steps.package-version.outputs.current-version }}.x64.exe
              asset_content_type: application/vnd.microsoft.portable-executable

        - name: Upload x64 zip to release assets
          uses: actions/upload-release-asset@v1
          env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          with:
              upload_url: ${{ steps.create_release.outputs.upload_url }}
              asset_path: ./bin/win32/x64/Fluent Reader-${{ steps.package-version.outputs.current-version }}-win.zip
              asset_name: Fluent.Reader.Unpacked.${{ steps.package-version.outputs.current-version }}.x64.zip
              asset_content_type: application/zip