1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-06-27 16:36:00 +00:00

feat: adding support for saving entries to karakeep

Signed-off-by: Jesse Jaggars <jhjaggars@gmail.com>
This commit is contained in:
Jesse Jaggars 2025-06-04 08:37:11 -04:00 committed by Frédéric Guillot
parent 4e181330d0
commit 43d302e768
28 changed files with 247 additions and 23 deletions

View file

@ -1077,4 +1077,13 @@ var migrations = []func(tx *sql.Tx, driver string) error{
_, err = tx.Exec(`ALTER TABLE users ADD COLUMN always_open_external_links bool default 'f'`) _, err = tx.Exec(`ALTER TABLE users ADD COLUMN always_open_external_links bool default 'f'`)
return err return err
}, },
func(tx *sql.Tx, _ string) (err error) {
sql := `
ALTER TABLE integrations ADD COLUMN karakeep_enabled bool default 'f';
ALTER TABLE integrations ADD COLUMN karakeep_api_key text default '';
ALTER TABLE integrations ADD COLUMN karakeep_url text default '';
`
_, err = tx.Exec(sql)
return
},
} }

View file

@ -13,6 +13,7 @@ import (
"miniflux.app/v2/internal/integration/discord" "miniflux.app/v2/internal/integration/discord"
"miniflux.app/v2/internal/integration/espial" "miniflux.app/v2/internal/integration/espial"
"miniflux.app/v2/internal/integration/instapaper" "miniflux.app/v2/internal/integration/instapaper"
"miniflux.app/v2/internal/integration/karakeep"
"miniflux.app/v2/internal/integration/linkace" "miniflux.app/v2/internal/integration/linkace"
"miniflux.app/v2/internal/integration/linkding" "miniflux.app/v2/internal/integration/linkding"
"miniflux.app/v2/internal/integration/linkwarden" "miniflux.app/v2/internal/integration/linkwarden"
@ -428,6 +429,24 @@ func SendEntry(entry *model.Entry, userIntegrations *model.Integration) {
} }
} }
if userIntegrations.KarakeepEnabled {
slog.Debug("Sending entry to Karakeep",
slog.Int64("user_id", userIntegrations.UserID),
slog.Int64("entry_id", entry.ID),
slog.String("entry_url", entry.URL),
)
client := karakeep.NewClient(userIntegrations.KarakeepAPIKey, userIntegrations.KarakeepURL)
if err := client.SaveUrl(entry.URL); err != nil {
slog.Error("Unable to send entry to Karakeep",
slog.Int64("user_id", userIntegrations.UserID),
slog.Int64("entry_id", entry.ID),
slog.String("entry_url", entry.URL),
slog.Any("error", err),
)
}
}
if userIntegrations.RaindropEnabled { if userIntegrations.RaindropEnabled {
slog.Debug("Sending entry to Raindrop", slog.Debug("Sending entry to Raindrop",
slog.Int64("user_id", userIntegrations.UserID), slog.Int64("user_id", userIntegrations.UserID),

View file

@ -0,0 +1,89 @@
// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
// SPDX-License-Identifier: Apache-2.0
package karakeep // import "miniflux.app/v2/internal/integration/karakeep"
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"time"
"miniflux.app/v2/internal/version"
)
const defaultClientTimeout = 10 * time.Second
type errorResponse struct {
Code string `json:"code"`
Error string `json:"error"`
}
type successResponse struct {
CreatedAt string `json:"createdAt"`
Content struct {
Type string `json:"type"`
Url string `json:"url"`
}
}
type Client interface {
SaveUrl(url string) error
}
type client struct {
wrapped *http.Client
apiEndpoint string
apiToken string
}
func NewClient(apiToken string, apiEndpoint string) Client {
return &client{wrapped: &http.Client{Timeout: defaultClientTimeout}, apiEndpoint: apiEndpoint, apiToken: apiToken}
}
func (c *client) SaveUrl(url string) error {
var payload = map[string]interface{}{
"type": "link",
"url": url,
}
b, err := json.Marshal(payload)
if err != nil {
return err
}
req, err := http.NewRequest(http.MethodPost, c.apiEndpoint, bytes.NewReader(b))
if err != nil {
return err
}
req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", c.apiToken))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("User-Agent", "Miniflux/"+version.Version)
resp, err := c.wrapped.Do(req)
if err != nil {
return err
}
defer resp.Body.Close()
b, err = io.ReadAll(resp.Body)
if err != nil {
return fmt.Errorf("karakeep: failed to parse response: %s", err)
}
if resp.StatusCode >= 400 {
var errResponse errorResponse
if err = json.Unmarshal(b, &errResponse); err != nil {
return fmt.Errorf("karakeep: failed to save URL: status=%d %s", resp.StatusCode, string(b))
}
return fmt.Errorf("karakeep: failed to save URL: status=%d errorcode=%s %s", resp.StatusCode, errResponse.Code, errResponse.Error)
}
var successReponse successResponse
if err = json.Unmarshal(b, &successReponse); err != nil {
return fmt.Errorf("karakeep: failed to parse response, however the request appears successful, is the url correct?: status=%d %s", resp.StatusCode, string(b))
}
return nil
}

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Einträge in Instapaper speichern", "form.integration.instapaper_activate": "Einträge in Instapaper speichern",
"form.integration.instapaper_password": "Instapaper-Passwort", "form.integration.instapaper_password": "Instapaper-Passwort",
"form.integration.instapaper_username": "Instapaper-Benutzername", "form.integration.instapaper_username": "Instapaper-Benutzername",
"form.integration.karakeep_activate": "Einträge in Karakeep speichern",
"form.integration.karakeep_api_key": "Karakeep-API-Schlüssel",
"form.integration.karakeep_url": "Karakeep-API-Endpunkt",
"form.integration.linkace_activate": "Einträge in LinkAce speichern", "form.integration.linkace_activate": "Einträge in LinkAce speichern",
"form.integration.linkace_api_key": "LinkAce-API-Schlüssel", "form.integration.linkace_api_key": "LinkAce-API-Schlüssel",
"form.integration.linkace_check_disabled": "Linkprüfung deaktivieren", "form.integration.linkace_check_disabled": "Linkprüfung deaktivieren",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Globale Feedeinstellungen", "form.prefs.fieldset.global_feed_settings": "Globale Feedeinstellungen",
"form.prefs.fieldset.reader_settings": "Reader-Einstellungen", "form.prefs.fieldset.reader_settings": "Reader-Einstellungen",
"form.prefs.help.external_font_hosts": "Per Leerzeichen getrennte Liste externer Schriftarten-Hosts, die erlaubt werden sollen. Beispiel: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Per Leerzeichen getrennte Liste externer Schriftarten-Hosts, die erlaubt werden sollen. Beispiel: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Artikel immer mit Öffnen der Links lesen",
"form.prefs.label.categories_sorting_order": "Kategorie-Sortierung", "form.prefs.label.categories_sorting_order": "Kategorie-Sortierung",
"form.prefs.label.cjk_reading_speed": "Lesegeschwindigkeit für Chinesisch, Koreanisch und Japanisch (Zeichen pro Minute)", "form.prefs.label.cjk_reading_speed": "Lesegeschwindigkeit für Chinesisch, Koreanisch und Japanisch (Zeichen pro Minute)",
"form.prefs.label.custom_css": "Benutzerdefiniertes CSS", "form.prefs.label.custom_css": "Benutzerdefiniertes CSS",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Einträge automatisch als gelesen markieren, wenn sie angezeigt werden", "form.prefs.label.mark_read_on_view": "Einträge automatisch als gelesen markieren, wenn sie angezeigt werden",
"form.prefs.label.mark_read_on_view_or_media_completion": "Einträge automatisch als gelesen markieren, wenn sie angezeigt werden. Audio/Video bei 90%% Wiedergabe als gelesen markieren", "form.prefs.label.mark_read_on_view_or_media_completion": "Einträge automatisch als gelesen markieren, wenn sie angezeigt werden. Audio/Video bei 90%% Wiedergabe als gelesen markieren",
"form.prefs.label.media_playback_rate": "Wiedergabegeschwindigkeit von Audio/Video", "form.prefs.label.media_playback_rate": "Wiedergabegeschwindigkeit von Audio/Video",
"form.prefs.label.always_open_external_links": "Artikel immer mit Öffnen der Links lesen",
"form.prefs.label.show_reading_time": "Geschätzte Lesezeit für Artikel anzeigen", "form.prefs.label.show_reading_time": "Geschätzte Lesezeit für Artikel anzeigen",
"form.prefs.label.theme": "Thema", "form.prefs.label.theme": "Thema",
"form.prefs.label.timezone": "Zeitzone", "form.prefs.label.timezone": "Zeitzone",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Αποθήκευση άρθρων στο Instapaper", "form.integration.instapaper_activate": "Αποθήκευση άρθρων στο Instapaper",
"form.integration.instapaper_password": "Κωδικός Πρόσβασης Instapaper", "form.integration.instapaper_password": "Κωδικός Πρόσβασης Instapaper",
"form.integration.instapaper_username": "Όνομα Χρήστη Instapaper", "form.integration.instapaper_username": "Όνομα Χρήστη Instapaper",
"form.integration.karakeep_activate": "Αποθήκευση άρθρων στο Karakeep",
"form.integration.karakeep_api_key": "Κλειδί API Karakeep",
"form.integration.karakeep_url": "Τελικό σημείο Karakeep API",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Ταξινόμηση κατηγοριών", "form.prefs.label.categories_sorting_order": "Ταξινόμηση κατηγοριών",
"form.prefs.label.cjk_reading_speed": "Ταχύτητα ανάγνωσης για κινέζικα, κορεάτικα και ιαπωνικά (χαρακτήρες ανά λεπτό)", "form.prefs.label.cjk_reading_speed": "Ταχύτητα ανάγνωσης για κινέζικα, κορεάτικα και ιαπωνικά (χαρακτήρες ανά λεπτό)",
"form.prefs.label.custom_css": "Προσαρμοσμένο CSS", "form.prefs.label.custom_css": "Προσαρμοσμένο CSS",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Αυτόματη επισήμανση καταχωρήσεων ως αναγνωσμένων κατά την προβολή", "form.prefs.label.mark_read_on_view": "Αυτόματη επισήμανση καταχωρήσεων ως αναγνωσμένων κατά την προβολή",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Ταχύτητα αναπαραγωγής του ήχου/βίντεο", "form.prefs.label.media_playback_rate": "Ταχύτητα αναπαραγωγής του ήχου/βίντεο",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Εμφάνιση εκτιμώμενου χρόνου ανάγνωσης για άρθρα", "form.prefs.label.show_reading_time": "Εμφάνιση εκτιμώμενου χρόνου ανάγνωσης για άρθρα",
"form.prefs.label.theme": "Θέμα", "form.prefs.label.theme": "Θέμα",
"form.prefs.label.timezone": "Ζώνη Ώρας", "form.prefs.label.timezone": "Ζώνη Ώρας",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Save entries to Instapaper", "form.integration.instapaper_activate": "Save entries to Instapaper",
"form.integration.instapaper_password": "Instapaper Password", "form.integration.instapaper_password": "Instapaper Password",
"form.integration.instapaper_username": "Instapaper Username", "form.integration.instapaper_username": "Instapaper Username",
"form.integration.karakeep_activate": "Save entries to Karakeep",
"form.integration.karakeep_api_key": "Karakeep API key",
"form.integration.karakeep_url": "Karakeep API Endpoint",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Categories sorting", "form.prefs.label.categories_sorting_order": "Categories sorting",
"form.prefs.label.cjk_reading_speed": "Reading speed for Chinese, Korean and Japanese (characters per minute)", "form.prefs.label.cjk_reading_speed": "Reading speed for Chinese, Korean and Japanese (characters per minute)",
"form.prefs.label.custom_css": "Custom CSS", "form.prefs.label.custom_css": "Custom CSS",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Automatically mark entries as read when viewed", "form.prefs.label.mark_read_on_view": "Automatically mark entries as read when viewed",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Playback speed of the audio/video", "form.prefs.label.media_playback_rate": "Playback speed of the audio/video",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Show estimated reading time for entries", "form.prefs.label.show_reading_time": "Show estimated reading time for entries",
"form.prefs.label.theme": "Theme", "form.prefs.label.theme": "Theme",
"form.prefs.label.timezone": "Timezone", "form.prefs.label.timezone": "Timezone",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Enviar artículos a Instapaper", "form.integration.instapaper_activate": "Enviar artículos a Instapaper",
"form.integration.instapaper_password": "Contraseña de Instapaper", "form.integration.instapaper_password": "Contraseña de Instapaper",
"form.integration.instapaper_username": "Nombre de usuario de Instapaper", "form.integration.instapaper_username": "Nombre de usuario de Instapaper",
"form.integration.karakeep_activate": "Enviar artículos a Karakeep",
"form.integration.karakeep_api_key": "Clave de API de Karakeep",
"form.integration.karakeep_url": "Acceso API de Karakeep",
"form.integration.linkace_activate": "Guardar artículos en LinkAce", "form.integration.linkace_activate": "Guardar artículos en LinkAce",
"form.integration.linkace_api_key": "Clave API de LinkAce", "form.integration.linkace_api_key": "Clave API de LinkAce",
"form.integration.linkace_check_disabled": "Deshabilitar la comprobación de enlace", "form.integration.linkace_check_disabled": "Deshabilitar la comprobación de enlace",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Ajustes globales del feed", "form.prefs.fieldset.global_feed_settings": "Ajustes globales del feed",
"form.prefs.fieldset.reader_settings": "Ajustes del lector", "form.prefs.fieldset.reader_settings": "Ajustes del lector",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Clasificación por categorías", "form.prefs.label.categories_sorting_order": "Clasificación por categorías",
"form.prefs.label.cjk_reading_speed": "Velocidad de lectura en chino, coreano y japonés (caracteres por minuto)", "form.prefs.label.cjk_reading_speed": "Velocidad de lectura en chino, coreano y japonés (caracteres por minuto)",
"form.prefs.label.custom_css": "CSS personalizado", "form.prefs.label.custom_css": "CSS personalizado",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Marcar automáticamente las entradas como leídas cuando se vean", "form.prefs.label.mark_read_on_view": "Marcar automáticamente las entradas como leídas cuando se vean",
"form.prefs.label.mark_read_on_view_or_media_completion": "Marcar las entradas como leídas cuando se vean. Para audio/video, marcar como leído al 90%% de finalización", "form.prefs.label.mark_read_on_view_or_media_completion": "Marcar las entradas como leídas cuando se vean. Para audio/video, marcar como leído al 90%% de finalización",
"form.prefs.label.media_playback_rate": "Velocidad de reproducción del audio/vídeo", "form.prefs.label.media_playback_rate": "Velocidad de reproducción del audio/vídeo",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Mostrar el tiempo estimado de lectura de los artículos", "form.prefs.label.show_reading_time": "Mostrar el tiempo estimado de lectura de los artículos",
"form.prefs.label.theme": "Tema", "form.prefs.label.theme": "Tema",
"form.prefs.label.timezone": "Zona horaria", "form.prefs.label.timezone": "Zona horaria",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Tallenna artikkelit Instapaperiin", "form.integration.instapaper_activate": "Tallenna artikkelit Instapaperiin",
"form.integration.instapaper_password": "Instapaper-salasana", "form.integration.instapaper_password": "Instapaper-salasana",
"form.integration.instapaper_username": "Instapaper-käyttäjätunnus", "form.integration.instapaper_username": "Instapaper-käyttäjätunnus",
"form.integration.karakeep_activate": "Tallenna artikkelit Karakeepiin",
"form.integration.karakeep_api_key": "Karakeep API-avain",
"form.integration.karakeep_url": "Karakeep API-päätepiste",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Kategorioiden lajittelu", "form.prefs.label.categories_sorting_order": "Kategorioiden lajittelu",
"form.prefs.label.cjk_reading_speed": "Kiinan, Korean ja Japanin lukunopeus (merkkejä minuutissa)", "form.prefs.label.cjk_reading_speed": "Kiinan, Korean ja Japanin lukunopeus (merkkejä minuutissa)",
"form.prefs.label.custom_css": "Mukautettu CSS", "form.prefs.label.custom_css": "Mukautettu CSS",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Merkitse kohdat automaattisesti luetuiksi, kun niitä tarkastellaan", "form.prefs.label.mark_read_on_view": "Merkitse kohdat automaattisesti luetuiksi, kun niitä tarkastellaan",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Äänen/videon toistonopeus", "form.prefs.label.media_playback_rate": "Äänen/videon toistonopeus",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Näytä artikkeleiden arvioitu lukuaika", "form.prefs.label.show_reading_time": "Näytä artikkeleiden arvioitu lukuaika",
"form.prefs.label.theme": "Teema", "form.prefs.label.theme": "Teema",
"form.prefs.label.timezone": "Aikavyöhyke", "form.prefs.label.timezone": "Aikavyöhyke",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Sauvegarder les articles vers Instapaper", "form.integration.instapaper_activate": "Sauvegarder les articles vers Instapaper",
"form.integration.instapaper_password": "Mot de passe Instapaper", "form.integration.instapaper_password": "Mot de passe Instapaper",
"form.integration.instapaper_username": "Nom d'utilisateur Instapaper", "form.integration.instapaper_username": "Nom d'utilisateur Instapaper",
"form.integration.karakeep_activate": "Sauvegarder les articles vers Karakeep",
"form.integration.karakeep_api_key": "Clé d'API de Karakeep",
"form.integration.karakeep_url": "URL de l'API de Karakeep",
"form.integration.linkace_activate": "Enregistrer les entrées vers LinkAce", "form.integration.linkace_activate": "Enregistrer les entrées vers LinkAce",
"form.integration.linkace_api_key": "Clé d'API LinkAce", "form.integration.linkace_api_key": "Clé d'API LinkAce",
"form.integration.linkace_check_disabled": "Désactiver la vérification des liens", "form.integration.linkace_check_disabled": "Désactiver la vérification des liens",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Paramètres globaux des abonnements", "form.prefs.fieldset.global_feed_settings": "Paramètres globaux des abonnements",
"form.prefs.fieldset.reader_settings": "Paramètres du lecteur", "form.prefs.fieldset.reader_settings": "Paramètres du lecteur",
"form.prefs.help.external_font_hosts": "Liste de domaine externes autorisés, séparés par des espaces. Par exemple : « fonts.gstatic.com fonts.googleapis.com ».", "form.prefs.help.external_font_hosts": "Liste de domaine externes autorisés, séparés par des espaces. Par exemple : « fonts.gstatic.com fonts.googleapis.com ».",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Colonne de tri des catégories", "form.prefs.label.categories_sorting_order": "Colonne de tri des catégories",
"form.prefs.label.cjk_reading_speed": "Vitesse de lecture pour le chinois, le coréen et le japonais (caractères par minute)", "form.prefs.label.cjk_reading_speed": "Vitesse de lecture pour le chinois, le coréen et le japonais (caractères par minute)",
"form.prefs.label.custom_css": "Feuille de style personnalisée", "form.prefs.label.custom_css": "Feuille de style personnalisée",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Marquer automatiquement les entrées comme lues lorsqu'elles sont consultées", "form.prefs.label.mark_read_on_view": "Marquer automatiquement les entrées comme lues lorsqu'elles sont consultées",
"form.prefs.label.mark_read_on_view_or_media_completion": "Marquer automatiquement les entrées comme lues lorsqu'elles sont consultées. Pour l'audio/vidéo, marquer comme lues après 90%%", "form.prefs.label.mark_read_on_view_or_media_completion": "Marquer automatiquement les entrées comme lues lorsqu'elles sont consultées. Pour l'audio/vidéo, marquer comme lues après 90%%",
"form.prefs.label.media_playback_rate": "Vitesse de lecture de l'audio/vidéo", "form.prefs.label.media_playback_rate": "Vitesse de lecture de l'audio/vidéo",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Afficher le temps de lecture estimé des articles", "form.prefs.label.show_reading_time": "Afficher le temps de lecture estimé des articles",
"form.prefs.label.theme": "Thème", "form.prefs.label.theme": "Thème",
"form.prefs.label.timezone": "Fuseau horaire", "form.prefs.label.timezone": "Fuseau horaire",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "विषय-वस्तु को इंस्टापेपर में सहेजें", "form.integration.instapaper_activate": "विषय-वस्तु को इंस्टापेपर में सहेजें",
"form.integration.instapaper_password": "इंस्टापेपर पासवर्ड", "form.integration.instapaper_password": "इंस्टापेपर पासवर्ड",
"form.integration.instapaper_username": "इंस्टापेपर यूजरनेम", "form.integration.instapaper_username": "इंस्टापेपर यूजरनेम",
"form.integration.karakeep_activate": "Save entries to Karakeep",
"form.integration.karakeep_api_key": "Karakeep API key",
"form.integration.karakeep_url": "Karakeep API Endpoint",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "श्रेणियाँ छँटाई", "form.prefs.label.categories_sorting_order": "श्रेणियाँ छँटाई",
"form.prefs.label.cjk_reading_speed": "चीनी, कोरियाई और जापानी के लिए पढ़ने की गति (प्रति मिनट वर्ण)", "form.prefs.label.cjk_reading_speed": "चीनी, कोरियाई और जापानी के लिए पढ़ने की गति (प्रति मिनट वर्ण)",
"form.prefs.label.custom_css": "कस्टम सीएसएस", "form.prefs.label.custom_css": "कस्टम सीएसएस",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "देखे जाने पर स्वचालित रूप से प्रविष्टियों को पढ़ने के रूप में चिह्नित करें", "form.prefs.label.mark_read_on_view": "देखे जाने पर स्वचालित रूप से प्रविष्टियों को पढ़ने के रूप में चिह्नित करें",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "ऑडियो/वीडियो की प्लेबैक गति", "form.prefs.label.media_playback_rate": "ऑडियो/वीडियो की प्लेबैक गति",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "विषय के लिए अनुमानित पढ़ने का समय दिखाएं", "form.prefs.label.show_reading_time": "विषय के लिए अनुमानित पढ़ने का समय दिखाएं",
"form.prefs.label.theme": "थीम", "form.prefs.label.theme": "थीम",
"form.prefs.label.timezone": "समय क्षेत्र", "form.prefs.label.timezone": "समय क्षेत्र",

View file

@ -231,6 +231,9 @@
"form.integration.instapaper_activate": "Simpan artikel ke Instapaper", "form.integration.instapaper_activate": "Simpan artikel ke Instapaper",
"form.integration.instapaper_password": "Kata Sandi Instapaper", "form.integration.instapaper_password": "Kata Sandi Instapaper",
"form.integration.instapaper_username": "Nama Pengguna Instapaper", "form.integration.instapaper_username": "Nama Pengguna Instapaper",
"form.integration.karakeep_activate": "Simpan artikel ke Karakeep",
"form.integration.karakeep_api_key": "Kunci API Karakeep",
"form.integration.karakeep_url": "Titik URL API Karakeep",
"form.integration.linkace_activate": "Simpan artikel ke LinkAce", "form.integration.linkace_activate": "Simpan artikel ke LinkAce",
"form.integration.linkace_api_key": "Kunci API LinkAce", "form.integration.linkace_api_key": "Kunci API LinkAce",
"form.integration.linkace_check_disabled": "Matikan pemeriksaan tautan", "form.integration.linkace_check_disabled": "Matikan pemeriksaan tautan",
@ -326,6 +329,7 @@
"form.prefs.fieldset.global_feed_settings": "Pengaturan Umpan Global", "form.prefs.fieldset.global_feed_settings": "Pengaturan Umpan Global",
"form.prefs.fieldset.reader_settings": "Pengaturan Pembaca", "form.prefs.fieldset.reader_settings": "Pengaturan Pembaca",
"form.prefs.help.external_font_hosts": "Daftar yang dipisah spasi untuk peladen penyedia fonta eksternal yang diperbolehkan. Seperti: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Daftar yang dipisah spasi untuk peladen penyedia fonta eksternal yang diperbolehkan. Seperti: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Baca artikel dengan membuka tautan eksternal",
"form.prefs.label.categories_sorting_order": "Pengurutan Kategori", "form.prefs.label.categories_sorting_order": "Pengurutan Kategori",
"form.prefs.label.cjk_reading_speed": "Kecepatan membaca untuk bahasa Tiongkok, Korea, dan Jepang (karakter per menit)", "form.prefs.label.cjk_reading_speed": "Kecepatan membaca untuk bahasa Tiongkok, Korea, dan Jepang (karakter per menit)",
"form.prefs.label.custom_css": "Modifikasi CSS", "form.prefs.label.custom_css": "Modifikasi CSS",
@ -346,7 +350,6 @@
"form.prefs.label.mark_read_on_view": "Secara otomatis menandai entri sebagai telah dibaca saat dilihat", "form.prefs.label.mark_read_on_view": "Secara otomatis menandai entri sebagai telah dibaca saat dilihat",
"form.prefs.label.mark_read_on_view_or_media_completion": "Tandai entri sebagai telah dibaca ketika dilihat. Untuk audio/video, tandai sebagai telah dibaca ketika sudah 90% didengar/ditonton.", "form.prefs.label.mark_read_on_view_or_media_completion": "Tandai entri sebagai telah dibaca ketika dilihat. Untuk audio/video, tandai sebagai telah dibaca ketika sudah 90% didengar/ditonton.",
"form.prefs.label.media_playback_rate": "Kecepatan pemutaran audio/video", "form.prefs.label.media_playback_rate": "Kecepatan pemutaran audio/video",
"form.prefs.label.always_open_external_links": "Baca artikel dengan membuka tautan eksternal",
"form.prefs.label.show_reading_time": "Tampilkan perkiraan waktu baca untuk artikel", "form.prefs.label.show_reading_time": "Tampilkan perkiraan waktu baca untuk artikel",
"form.prefs.label.theme": "Tema", "form.prefs.label.theme": "Tema",
"form.prefs.label.timezone": "Zona Waktu", "form.prefs.label.timezone": "Zona Waktu",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Salva gli articoli su Instapaper", "form.integration.instapaper_activate": "Salva gli articoli su Instapaper",
"form.integration.instapaper_password": "Password dell'account Instapaper", "form.integration.instapaper_password": "Password dell'account Instapaper",
"form.integration.instapaper_username": "Nome utente dell'account Instapaper", "form.integration.instapaper_username": "Nome utente dell'account Instapaper",
"form.integration.karakeep_activate": "Salva gli articoli su Karakeep",
"form.integration.karakeep_api_key": "API key dell'account Karakeep",
"form.integration.karakeep_url": "Endpoint dell'API di Karakeep",
"form.integration.linkace_activate": "Salva gli articoli su LinkAce", "form.integration.linkace_activate": "Salva gli articoli su LinkAce",
"form.integration.linkace_api_key": "API key dell'account LinkAce", "form.integration.linkace_api_key": "API key dell'account LinkAce",
"form.integration.linkace_check_disabled": "Disabilita i controlli", "form.integration.linkace_check_disabled": "Disabilita i controlli",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Ordinamento delle categorie", "form.prefs.label.categories_sorting_order": "Ordinamento delle categorie",
"form.prefs.label.cjk_reading_speed": "Velocità di lettura per cinese, coreano e giapponese (caratteri al minuto)", "form.prefs.label.cjk_reading_speed": "Velocità di lettura per cinese, coreano e giapponese (caratteri al minuto)",
"form.prefs.label.custom_css": "CSS personalizzati", "form.prefs.label.custom_css": "CSS personalizzati",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Contrassegna automaticamente le voci come lette quando visualizzate", "form.prefs.label.mark_read_on_view": "Contrassegna automaticamente le voci come lette quando visualizzate",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Velocità di riproduzione dell'audio/video", "form.prefs.label.media_playback_rate": "Velocità di riproduzione dell'audio/video",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Mostra il tempo di lettura stimato per gli articoli", "form.prefs.label.show_reading_time": "Mostra il tempo di lettura stimato per gli articoli",
"form.prefs.label.theme": "Tema", "form.prefs.label.theme": "Tema",
"form.prefs.label.timezone": "Fuso orario", "form.prefs.label.timezone": "Fuso orario",

View file

@ -231,6 +231,9 @@
"form.integration.instapaper_activate": "Instapaper に記事を保存する", "form.integration.instapaper_activate": "Instapaper に記事を保存する",
"form.integration.instapaper_password": "Instapaper のパスワード", "form.integration.instapaper_password": "Instapaper のパスワード",
"form.integration.instapaper_username": "Instapaper のユーザー名", "form.integration.instapaper_username": "Instapaper のユーザー名",
"form.integration.karakeep_activate": "Karakeep に記事を保存する",
"form.integration.karakeep_api_key": "Karakeep の API key",
"form.integration.karakeep_url": "Karakeep の API Endpoint",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -326,6 +329,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "カテゴリの表示順", "form.prefs.label.categories_sorting_order": "カテゴリの表示順",
"form.prefs.label.cjk_reading_speed": "中国語、韓国語、日本語の読書速度(文字数/分)", "form.prefs.label.cjk_reading_speed": "中国語、韓国語、日本語の読書速度(文字数/分)",
"form.prefs.label.custom_css": "カスタム CSS", "form.prefs.label.custom_css": "カスタム CSS",
@ -346,7 +350,6 @@
"form.prefs.label.mark_read_on_view": "表示時にエントリを自動的に既読としてマークします", "form.prefs.label.mark_read_on_view": "表示時にエントリを自動的に既読としてマークします",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "オーディオ/ビデオの再生速度", "form.prefs.label.media_playback_rate": "オーディオ/ビデオの再生速度",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "記事の推定読書時間を表示する", "form.prefs.label.show_reading_time": "記事の推定読書時間を表示する",
"form.prefs.label.theme": "テーマ", "form.prefs.label.theme": "テーマ",
"form.prefs.label.timezone": "タイムゾーン", "form.prefs.label.timezone": "タイムゾーン",

View file

@ -231,6 +231,9 @@
"form.integration.instapaper_activate": "Pó-chûn siau-sit kàu Instapaper", "form.integration.instapaper_activate": "Pó-chûn siau-sit kàu Instapaper",
"form.integration.instapaper_password": "Instapaper bi̍t-bé", "form.integration.instapaper_password": "Instapaper bi̍t-bé",
"form.integration.instapaper_username": "Instapaper Kháu-chō miâ", "form.integration.instapaper_username": "Instapaper Kháu-chō miâ",
"form.integration.karakeep_activate": "Pó-chûn siau-sit kàu Karakeep",
"form.integration.karakeep_api_key": "Karakeep API só-sî",
"form.integration.karakeep_url": "Karakeep API thâu",
"form.integration.linkace_activate": "Pó-chûn siau-sit kàu LinkAce", "form.integration.linkace_activate": "Pó-chûn siau-sit kàu LinkAce",
"form.integration.linkace_api_key": "LinkAce API só-sî", "form.integration.linkace_api_key": "LinkAce API só-sî",
"form.integration.linkace_check_disabled": "Thêng iōng liân-kiat kiám-cha", "form.integration.linkace_check_disabled": "Thêng iōng liân-kiat kiám-cha",
@ -326,6 +329,7 @@
"form.prefs.fieldset.global_feed_settings": "Choân-he̍k siau-sit lâi-goân siat-tēng", "form.prefs.fieldset.global_feed_settings": "Choân-he̍k siau-sit lâi-goân siat-tēng",
"form.prefs.fieldset.reader_settings": "Ia̍t-tha̍k khì siat-tēng", "form.prefs.fieldset.reader_settings": "Ia̍t-tha̍k khì siat-tēng",
"form.prefs.help.external_font_hosts": "Iōng khang-keh keh khui ún-chún ê gōa-pō͘ lī-hêng lâi-goân. Phì-lû \"fonts.gstatic.com fonts.googleapis.com\"", "form.prefs.help.external_font_hosts": "Iōng khang-keh keh khui ún-chún ê gōa-pō͘ lī-hêng lâi-goân. Phì-lû \"fonts.gstatic.com fonts.googleapis.com\"",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Lūi-pia̍t hián-sī sūn-sū", "form.prefs.label.categories_sorting_order": "Lūi-pia̍t hián-sī sūn-sū",
"form.prefs.label.cjk_reading_speed": "Tiong-bûn, Hân-bûn, Li̍t-bûn tha̍k ê sok-tō͘ (múi hun-cheng ē-sái tha̍k kúi ê lī-goân)", "form.prefs.label.cjk_reading_speed": "Tiong-bûn, Hân-bûn, Li̍t-bûn tha̍k ê sok-tō͘ (múi hun-cheng ē-sái tha̍k kúi ê lī-goân)",
"form.prefs.label.custom_css": "Chū tēng ê CSS", "form.prefs.label.custom_css": "Chū tēng ê CSS",
@ -346,7 +350,6 @@
"form.prefs.label.mark_read_on_view": "Phah khui ê sî-chūn sūn-sòa kā siau-sit chù chòe tha̍k kè", "form.prefs.label.mark_read_on_view": "Phah khui ê sî-chūn sūn-sòa kā siau-sit chù chòe tha̍k kè",
"form.prefs.label.mark_read_on_view_or_media_completion": "Phah khui ê sî-chūn sūn-sòa kā siau-sit chù chòe tha̍k kè, m̄-koh nā-sī im-sìn, sī-sìn tio̍h tī hòng-sàng kàu 90%% ê si-chun chiah lâi chù", "form.prefs.label.mark_read_on_view_or_media_completion": "Phah khui ê sî-chūn sūn-sòa kā siau-sit chù chòe tha̍k kè, m̄-koh nā-sī im-sìn, sī-sìn tio̍h tī hòng-sàng kàu 90%% ê si-chun chiah lâi chù",
"form.prefs.label.media_playback_rate": "Im-sìn, sī-sìn pàng ê sok-tō͘", "form.prefs.label.media_playback_rate": "Im-sìn, sī-sìn pàng ê sok-tō͘",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Hián-sī siau-sit àn-sǹg ài gōa-kú lâi tha̍k", "form.prefs.label.show_reading_time": "Hián-sī siau-sit àn-sǹg ài gōa-kú lâi tha̍k",
"form.prefs.label.theme": "Chú-tôe", "form.prefs.label.theme": "Chú-tôe",
"form.prefs.label.timezone": "Sî-khu", "form.prefs.label.timezone": "Sî-khu",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Artikelen opslaan in Instapaper", "form.integration.instapaper_activate": "Artikelen opslaan in Instapaper",
"form.integration.instapaper_password": "Instapaper wachtwoord", "form.integration.instapaper_password": "Instapaper wachtwoord",
"form.integration.instapaper_username": "Instapaper gebruikersnaam", "form.integration.instapaper_username": "Instapaper gebruikersnaam",
"form.integration.karakeep_activate": "Artikelen opslaan in Karakeep",
"form.integration.karakeep_api_key": "Karakeep API-sleutel",
"form.integration.karakeep_url": "Karakeep URL",
"form.integration.linkace_activate": "Artikelen opslaan in LinkAce", "form.integration.linkace_activate": "Artikelen opslaan in LinkAce",
"form.integration.linkace_api_key": "LinkAce API-sleutel", "form.integration.linkace_api_key": "LinkAce API-sleutel",
"form.integration.linkace_check_disabled": "Koppelingcontrole uitschakelen", "form.integration.linkace_check_disabled": "Koppelingcontrole uitschakelen",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Globale Feed Instellingen", "form.prefs.fieldset.global_feed_settings": "Globale Feed Instellingen",
"form.prefs.fieldset.reader_settings": "Lees Instellingen", "form.prefs.fieldset.reader_settings": "Lees Instellingen",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Volgorde categorieën", "form.prefs.label.categories_sorting_order": "Volgorde categorieën",
"form.prefs.label.cjk_reading_speed": "Leessnelheid voor Chinees, Koreaans en Japans (tekens per minuut)", "form.prefs.label.cjk_reading_speed": "Leessnelheid voor Chinees, Koreaans en Japans (tekens per minuut)",
"form.prefs.label.custom_css": "Aangepaste CSS", "form.prefs.label.custom_css": "Aangepaste CSS",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Markeer artikelen automatisch als gelezen wanneer ze worden bekeken", "form.prefs.label.mark_read_on_view": "Markeer artikelen automatisch als gelezen wanneer ze worden bekeken",
"form.prefs.label.mark_read_on_view_or_media_completion": "Markeer artikelen als gelezen wanneer ze worden bekeken. Voor audio/video, markeer als gelezen bij 90%% voltooiing", "form.prefs.label.mark_read_on_view_or_media_completion": "Markeer artikelen als gelezen wanneer ze worden bekeken. Voor audio/video, markeer als gelezen bij 90%% voltooiing",
"form.prefs.label.media_playback_rate": "Afspeelsnelheid van de audio/video", "form.prefs.label.media_playback_rate": "Afspeelsnelheid van de audio/video",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Toon geschatte leestijd van artikelen", "form.prefs.label.show_reading_time": "Toon geschatte leestijd van artikelen",
"form.prefs.label.theme": "Thema", "form.prefs.label.theme": "Thema",
"form.prefs.label.timezone": "Tijdzone", "form.prefs.label.timezone": "Tijdzone",

View file

@ -235,6 +235,9 @@
"form.integration.instapaper_activate": "Zapisuj wpisy w Instapaper", "form.integration.instapaper_activate": "Zapisuj wpisy w Instapaper",
"form.integration.instapaper_password": "Hasło do Instapaper", "form.integration.instapaper_password": "Hasło do Instapaper",
"form.integration.instapaper_username": "Login do Instapaper", "form.integration.instapaper_username": "Login do Instapaper",
"form.integration.karakeep_activate": "Zapisuj wpisy w Karakeep",
"form.integration.karakeep_api_key": "Klucz API do Karakeep",
"form.integration.karakeep_url": "Punkt końcowy API Karakeep",
"form.integration.linkace_activate": "Zapisuj wpisy w LinkAce", "form.integration.linkace_activate": "Zapisuj wpisy w LinkAce",
"form.integration.linkace_api_key": "Klucz API do LinkAce", "form.integration.linkace_api_key": "Klucz API do LinkAce",
"form.integration.linkace_check_disabled": "Wyłącz sprawdzanie łączy", "form.integration.linkace_check_disabled": "Wyłącz sprawdzanie łączy",
@ -330,6 +333,7 @@
"form.prefs.fieldset.global_feed_settings": "Globalne ustawienia kanałów", "form.prefs.fieldset.global_feed_settings": "Globalne ustawienia kanałów",
"form.prefs.fieldset.reader_settings": "Ustawienia czytnika", "form.prefs.fieldset.reader_settings": "Ustawienia czytnika",
"form.prefs.help.external_font_hosts": "Lista hostów zewnętrznych czcionek, na które należy zezwolić, rozdzielona spacjami. Na przykład: „fonts.gstatic.com fonts.googleapis.com”.", "form.prefs.help.external_font_hosts": "Lista hostów zewnętrznych czcionek, na które należy zezwolić, rozdzielona spacjami. Na przykład: „fonts.gstatic.com fonts.googleapis.com”.",
"form.prefs.label.always_open_external_links": "Czytaj artykuły, otwierając łącza zewnętrzne",
"form.prefs.label.categories_sorting_order": "Sortowanie kategorii", "form.prefs.label.categories_sorting_order": "Sortowanie kategorii",
"form.prefs.label.cjk_reading_speed": "Szybkość czytania w języku chińskim, koreańskim i japońskim (znaki na minutę)", "form.prefs.label.cjk_reading_speed": "Szybkość czytania w języku chińskim, koreańskim i japońskim (znaki na minutę)",
"form.prefs.label.custom_css": "Niestandardowy CSS", "form.prefs.label.custom_css": "Niestandardowy CSS",
@ -350,7 +354,6 @@
"form.prefs.label.mark_read_on_view": "Automatycznie oznacz wpisy jako przeczytane podczas przeglądania", "form.prefs.label.mark_read_on_view": "Automatycznie oznacz wpisy jako przeczytane podczas przeglądania",
"form.prefs.label.mark_read_on_view_or_media_completion": "Oznacz wpisy jako przeczytane po wyświetleniu. W przypadku audio i wideo oznacz jako przeczytane po ukończeniu 90%%", "form.prefs.label.mark_read_on_view_or_media_completion": "Oznacz wpisy jako przeczytane po wyświetleniu. W przypadku audio i wideo oznacz jako przeczytane po ukończeniu 90%%",
"form.prefs.label.media_playback_rate": "Szybkość odtwarzania audio i wideo", "form.prefs.label.media_playback_rate": "Szybkość odtwarzania audio i wideo",
"form.prefs.label.always_open_external_links": "Czytaj artykuły, otwierając łącza zewnętrzne",
"form.prefs.label.show_reading_time": "Pokaż szacowany czas czytania wpisów", "form.prefs.label.show_reading_time": "Pokaż szacowany czas czytania wpisów",
"form.prefs.label.theme": "Wygląd", "form.prefs.label.theme": "Wygląd",
"form.prefs.label.timezone": "Strefa czasowa", "form.prefs.label.timezone": "Strefa czasowa",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Salvar itens no Instapaper", "form.integration.instapaper_activate": "Salvar itens no Instapaper",
"form.integration.instapaper_password": "Senha do Instapaper", "form.integration.instapaper_password": "Senha do Instapaper",
"form.integration.instapaper_username": "Nome do usuário do Instapaper", "form.integration.instapaper_username": "Nome do usuário do Instapaper",
"form.integration.karakeep_activate": "Salvar itens no Karakeep",
"form.integration.karakeep_api_key": "Chave de API do Karakeep",
"form.integration.karakeep_url": "Endpoint de API do Karakeep",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Classificação das categorias", "form.prefs.label.categories_sorting_order": "Classificação das categorias",
"form.prefs.label.cjk_reading_speed": "Velocidade de leitura para chinês, coreano e japonês (caracteres por minuto)", "form.prefs.label.cjk_reading_speed": "Velocidade de leitura para chinês, coreano e japonês (caracteres por minuto)",
"form.prefs.label.custom_css": "CSS customizado", "form.prefs.label.custom_css": "CSS customizado",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Marcar automaticamente as entradas como lidas quando visualizadas", "form.prefs.label.mark_read_on_view": "Marcar automaticamente as entradas como lidas quando visualizadas",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Velocidade de reprodução do áudio/vídeo", "form.prefs.label.media_playback_rate": "Velocidade de reprodução do áudio/vídeo",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Mostrar tempo estimado de leitura de artigos", "form.prefs.label.show_reading_time": "Mostrar tempo estimado de leitura de artigos",
"form.prefs.label.theme": "Tema", "form.prefs.label.theme": "Tema",
"form.prefs.label.timezone": "Fuso horário", "form.prefs.label.timezone": "Fuso horário",

View file

@ -235,6 +235,9 @@
"form.integration.instapaper_activate": "Salvează înregistrările pe Instapaper", "form.integration.instapaper_activate": "Salvează înregistrările pe Instapaper",
"form.integration.instapaper_password": "Parolă Instapaper", "form.integration.instapaper_password": "Parolă Instapaper",
"form.integration.instapaper_username": "Utilizator Instapaper", "form.integration.instapaper_username": "Utilizator Instapaper",
"form.integration.karakeep_activate": "Salvare înregistrări în Karakeep",
"form.integration.karakeep_api_key": "Cheie API Karakeep",
"form.integration.karakeep_url": "Punct acces API Karakeep",
"form.integration.linkace_activate": "Salvează intrările în LinkAce", "form.integration.linkace_activate": "Salvează intrările în LinkAce",
"form.integration.linkace_api_key": "Cheie API LinkAce", "form.integration.linkace_api_key": "Cheie API LinkAce",
"form.integration.linkace_check_disabled": "Dezactivează verificarea link-urilor", "form.integration.linkace_check_disabled": "Dezactivează verificarea link-urilor",
@ -330,6 +333,7 @@
"form.prefs.fieldset.global_feed_settings": "Setări Globale pt. Flux", "form.prefs.fieldset.global_feed_settings": "Setări Globale pt. Flux",
"form.prefs.fieldset.reader_settings": "Setări Citire", "form.prefs.fieldset.reader_settings": "Setări Citire",
"form.prefs.help.external_font_hosts": "Lista fonturilor de pe gazdă separate de virgulă care poate fi utilizate. De exemplu: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Lista fonturilor de pe gazdă separate de virgulă care poate fi utilizate. De exemplu: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Sortare categorii", "form.prefs.label.categories_sorting_order": "Sortare categorii",
"form.prefs.label.cjk_reading_speed": "Viteză de citire pentru Chineză, Coreană și Japoneză (caractere pe minut)", "form.prefs.label.cjk_reading_speed": "Viteză de citire pentru Chineză, Coreană și Japoneză (caractere pe minut)",
"form.prefs.label.custom_css": "CSS personalizat", "form.prefs.label.custom_css": "CSS personalizat",
@ -350,7 +354,6 @@
"form.prefs.label.mark_read_on_view": "Marchează intrările ca citite la vizualizare", "form.prefs.label.mark_read_on_view": "Marchează intrările ca citite la vizualizare",
"form.prefs.label.mark_read_on_view_or_media_completion": "Marchează intrările ca citite la vizualizare. Pentru audio/video, marchează ca citit la redarea a 90%% de conținut", "form.prefs.label.mark_read_on_view_or_media_completion": "Marchează intrările ca citite la vizualizare. Pentru audio/video, marchează ca citit la redarea a 90%% de conținut",
"form.prefs.label.media_playback_rate": "Viteza de rulare audio/video", "form.prefs.label.media_playback_rate": "Viteza de rulare audio/video",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Afișare timp estimat de citire pentru înregistrări", "form.prefs.label.show_reading_time": "Afișare timp estimat de citire pentru înregistrări",
"form.prefs.label.theme": "Temă", "form.prefs.label.theme": "Temă",
"form.prefs.label.timezone": "Fus orar", "form.prefs.label.timezone": "Fus orar",

View file

@ -235,6 +235,9 @@
"form.integration.instapaper_activate": "Сохранять статьи в Instapaper", "form.integration.instapaper_activate": "Сохранять статьи в Instapaper",
"form.integration.instapaper_password": "Пароль Instapaper", "form.integration.instapaper_password": "Пароль Instapaper",
"form.integration.instapaper_username": "Имя пользователя Instapaper", "form.integration.instapaper_username": "Имя пользователя Instapaper",
"form.integration.karakeep_activate": "Сохранять статьи в Karakeep",
"form.integration.karakeep_api_key": "API-ключ Karakeep",
"form.integration.karakeep_url": "Конечная точка Karakeep API",
"form.integration.linkace_activate": "Сохранять статьи в LinkAce", "form.integration.linkace_activate": "Сохранять статьи в LinkAce",
"form.integration.linkace_api_key": "API-ключ LinkAce", "form.integration.linkace_api_key": "API-ключ LinkAce",
"form.integration.linkace_check_disabled": "Отключить проверку ссылок", "form.integration.linkace_check_disabled": "Отключить проверку ссылок",
@ -330,6 +333,7 @@
"form.prefs.fieldset.global_feed_settings": "Глобальные настройки подписок", "form.prefs.fieldset.global_feed_settings": "Глобальные настройки подписок",
"form.prefs.fieldset.reader_settings": "Настройки чтения", "form.prefs.fieldset.reader_settings": "Настройки чтения",
"form.prefs.help.external_font_hosts": "Список разрешённых внешних хостов для шрифтов, разделенных пробелами. Например: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Список разрешённых внешних хостов для шрифтов, разделенных пробелами. Например: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Сортировка категорий", "form.prefs.label.categories_sorting_order": "Сортировка категорий",
"form.prefs.label.cjk_reading_speed": "Скорость чтения на китайском, корейском и японском языках (знаков в минуту)", "form.prefs.label.cjk_reading_speed": "Скорость чтения на китайском, корейском и японском языках (знаков в минуту)",
"form.prefs.label.custom_css": "Пользовательский CSS", "form.prefs.label.custom_css": "Пользовательский CSS",
@ -350,7 +354,6 @@
"form.prefs.label.mark_read_on_view": "Автоматически отмечать записи как прочитанные при просмотре", "form.prefs.label.mark_read_on_view": "Автоматически отмечать записи как прочитанные при просмотре",
"form.prefs.label.mark_read_on_view_or_media_completion": "Отмечать статьи как прочитанные при просмотре. Для аудио/видео - при 90%% завершения воспроизведения", "form.prefs.label.mark_read_on_view_or_media_completion": "Отмечать статьи как прочитанные при просмотре. Для аудио/видео - при 90%% завершения воспроизведения",
"form.prefs.label.media_playback_rate": "Скорость воспроизведения аудио/видео", "form.prefs.label.media_playback_rate": "Скорость воспроизведения аудио/видео",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Показать примерное время чтения статей", "form.prefs.label.show_reading_time": "Показать примерное время чтения статей",
"form.prefs.label.theme": "Тема", "form.prefs.label.theme": "Тема",
"form.prefs.label.timezone": "Часовой пояс", "form.prefs.label.timezone": "Часовой пояс",

View file

@ -233,6 +233,9 @@
"form.integration.instapaper_activate": "Makaleleri Instapaper'a kaydet", "form.integration.instapaper_activate": "Makaleleri Instapaper'a kaydet",
"form.integration.instapaper_password": "Instapaper Parolası", "form.integration.instapaper_password": "Instapaper Parolası",
"form.integration.instapaper_username": "Instapaper Kullanıcı Adı", "form.integration.instapaper_username": "Instapaper Kullanıcı Adı",
"form.integration.karakeep_activate": "Makaleleri Karakeep'a kaydet",
"form.integration.karakeep_api_key": "Karakeep API anahtarı",
"form.integration.karakeep_url": "Karakeep API Uç Noktası",
"form.integration.linkace_activate": "Makaleleri LinkAce'e kaydet", "form.integration.linkace_activate": "Makaleleri LinkAce'e kaydet",
"form.integration.linkace_api_key": "LinkAce API anahtarı", "form.integration.linkace_api_key": "LinkAce API anahtarı",
"form.integration.linkace_check_disabled": "Link kontrolünü devre dışı bırak", "form.integration.linkace_check_disabled": "Link kontrolünü devre dışı bırak",
@ -328,6 +331,7 @@
"form.prefs.fieldset.global_feed_settings": "Genel Besleme Ayarları", "form.prefs.fieldset.global_feed_settings": "Genel Besleme Ayarları",
"form.prefs.fieldset.reader_settings": "Okuyucu Ayarları", "form.prefs.fieldset.reader_settings": "Okuyucu Ayarları",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Kategori sıralaması", "form.prefs.label.categories_sorting_order": "Kategori sıralaması",
"form.prefs.label.cjk_reading_speed": "Çince, Korece ve Japonca için okuma hızı (dakika başına karakter)", "form.prefs.label.cjk_reading_speed": "Çince, Korece ve Japonca için okuma hızı (dakika başına karakter)",
"form.prefs.label.custom_css": "Özel CSS", "form.prefs.label.custom_css": "Özel CSS",
@ -348,7 +352,6 @@
"form.prefs.label.mark_read_on_view": "Makaleler görüntülendiğinde otomatik olarak okundu olarak işaretle", "form.prefs.label.mark_read_on_view": "Makaleler görüntülendiğinde otomatik olarak okundu olarak işaretle",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Ses/video oynatma hızı", "form.prefs.label.media_playback_rate": "Ses/video oynatma hızı",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Makaleler için tahmini okuma süresini göster", "form.prefs.label.show_reading_time": "Makaleler için tahmini okuma süresini göster",
"form.prefs.label.theme": "Tema", "form.prefs.label.theme": "Tema",
"form.prefs.label.timezone": "Saat Dilimi", "form.prefs.label.timezone": "Saat Dilimi",

View file

@ -235,6 +235,9 @@
"form.integration.instapaper_activate": "Зберігати статті до Instapaper", "form.integration.instapaper_activate": "Зберігати статті до Instapaper",
"form.integration.instapaper_password": "Пароль Instapaper", "form.integration.instapaper_password": "Пароль Instapaper",
"form.integration.instapaper_username": "Ім’я користувача Instapaper", "form.integration.instapaper_username": "Ім’я користувача Instapaper",
"form.integration.karakeep_activate": "Зберігати статті до Karakeep",
"form.integration.karakeep_api_key": "Ключ API Karakeep",
"form.integration.karakeep_url": "Karakeep API Endpoint",
"form.integration.linkace_activate": "Save entries to LinkAce", "form.integration.linkace_activate": "Save entries to LinkAce",
"form.integration.linkace_api_key": "LinkAce API key", "form.integration.linkace_api_key": "LinkAce API key",
"form.integration.linkace_check_disabled": "Disable link check", "form.integration.linkace_check_disabled": "Disable link check",
@ -330,6 +333,7 @@
"form.prefs.fieldset.global_feed_settings": "Global Feed Settings", "form.prefs.fieldset.global_feed_settings": "Global Feed Settings",
"form.prefs.fieldset.reader_settings": "Reader Settings", "form.prefs.fieldset.reader_settings": "Reader Settings",
"form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".", "form.prefs.help.external_font_hosts": "Space separated list of external font hosts to allow. For example: \"fonts.gstatic.com fonts.googleapis.com\".",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "Сортування за категоріями", "form.prefs.label.categories_sorting_order": "Сортування за категоріями",
"form.prefs.label.cjk_reading_speed": "Швидкість читання для китайської, корейської та японської мови (символів на хвилину)", "form.prefs.label.cjk_reading_speed": "Швидкість читання для китайської, корейської та японської мови (символів на хвилину)",
"form.prefs.label.custom_css": "Спеціальний CSS", "form.prefs.label.custom_css": "Спеціальний CSS",
@ -350,7 +354,6 @@
"form.prefs.label.mark_read_on_view": "Автоматично позначати записи як прочитані під час перегляду", "form.prefs.label.mark_read_on_view": "Автоматично позначати записи як прочитані під час перегляду",
"form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion", "form.prefs.label.mark_read_on_view_or_media_completion": "Mark entries as read when viewed. For audio/video, mark as read at 90%% completion",
"form.prefs.label.media_playback_rate": "Швидкість відтворення аудіо/відео", "form.prefs.label.media_playback_rate": "Швидкість відтворення аудіо/відео",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "Показувати приблизний час читання для записів", "form.prefs.label.show_reading_time": "Показувати приблизний час читання для записів",
"form.prefs.label.theme": "Тема", "form.prefs.label.theme": "Тема",
"form.prefs.label.timezone": "Часовий пояс", "form.prefs.label.timezone": "Часовий пояс",

View file

@ -231,6 +231,9 @@
"form.integration.instapaper_activate": "保存文章到 Instapaper", "form.integration.instapaper_activate": "保存文章到 Instapaper",
"form.integration.instapaper_password": "Instapaper 密码", "form.integration.instapaper_password": "Instapaper 密码",
"form.integration.instapaper_username": "Instapaper 用户名", "form.integration.instapaper_username": "Instapaper 用户名",
"form.integration.karakeep_activate": "保存文章到 Karakeep",
"form.integration.karakeep_api_key": "Karakeep API 密钥",
"form.integration.karakeep_url": "Karakeep API 端点",
"form.integration.linkace_activate": "保存文章到 LinkAce", "form.integration.linkace_activate": "保存文章到 LinkAce",
"form.integration.linkace_api_key": "LinkAce API 密钥", "form.integration.linkace_api_key": "LinkAce API 密钥",
"form.integration.linkace_check_disabled": "关闭链接检查", "form.integration.linkace_check_disabled": "关闭链接检查",
@ -326,6 +329,7 @@
"form.prefs.fieldset.global_feed_settings": "全局订阅源设置", "form.prefs.fieldset.global_feed_settings": "全局订阅源设置",
"form.prefs.fieldset.reader_settings": "阅读器设置", "form.prefs.fieldset.reader_settings": "阅读器设置",
"form.prefs.help.external_font_hosts": "允许外部字体托管的空格分隔列表。例如:\"fonts.gstatic.com fonts.googleapis.com\"。", "form.prefs.help.external_font_hosts": "允许外部字体托管的空格分隔列表。例如:\"fonts.gstatic.com fonts.googleapis.com\"。",
"form.prefs.label.always_open_external_links": "打开外部链接阅读文章",
"form.prefs.label.categories_sorting_order": "分类排序", "form.prefs.label.categories_sorting_order": "分类排序",
"form.prefs.label.cjk_reading_speed": "中文、韩文和日文的阅读速度(每分钟字符数)", "form.prefs.label.cjk_reading_speed": "中文、韩文和日文的阅读速度(每分钟字符数)",
"form.prefs.label.custom_css": "自定义 CSS", "form.prefs.label.custom_css": "自定义 CSS",
@ -346,7 +350,6 @@
"form.prefs.label.mark_read_on_view": "查看时自动将条目标记为已读", "form.prefs.label.mark_read_on_view": "查看时自动将条目标记为已读",
"form.prefs.label.mark_read_on_view_or_media_completion": "当浏览时标记条目为已读。对于音频/视频当播放完成90%%时标记为已读", "form.prefs.label.mark_read_on_view_or_media_completion": "当浏览时标记条目为已读。对于音频/视频当播放完成90%%时标记为已读",
"form.prefs.label.media_playback_rate": "音频/视频的播放速度", "form.prefs.label.media_playback_rate": "音频/视频的播放速度",
"form.prefs.label.always_open_external_links": "打开外部链接阅读文章",
"form.prefs.label.show_reading_time": "显示文章的预计阅读时间", "form.prefs.label.show_reading_time": "显示文章的预计阅读时间",
"form.prefs.label.theme": "主题", "form.prefs.label.theme": "主题",
"form.prefs.label.timezone": "时区", "form.prefs.label.timezone": "时区",

View file

@ -231,6 +231,9 @@
"form.integration.instapaper_activate": "儲存文章到 Instapaper", "form.integration.instapaper_activate": "儲存文章到 Instapaper",
"form.integration.instapaper_password": "Instapaper 密碼", "form.integration.instapaper_password": "Instapaper 密碼",
"form.integration.instapaper_username": "Instapaper 使用者名稱", "form.integration.instapaper_username": "Instapaper 使用者名稱",
"form.integration.karakeep_activate": "儲存文章到 Karakeep",
"form.integration.karakeep_api_key": "Karakeep API 金鑰",
"form.integration.karakeep_url": "Karakeep API 端點",
"form.integration.linkace_activate": "儲存文章到 LinkAce", "form.integration.linkace_activate": "儲存文章到 LinkAce",
"form.integration.linkace_api_key": "LinkAce API 金鑰", "form.integration.linkace_api_key": "LinkAce API 金鑰",
"form.integration.linkace_check_disabled": "停用連結檢查", "form.integration.linkace_check_disabled": "停用連結檢查",
@ -326,6 +329,7 @@
"form.prefs.fieldset.global_feed_settings": "全域 Feed 設定", "form.prefs.fieldset.global_feed_settings": "全域 Feed 設定",
"form.prefs.fieldset.reader_settings": "閱讀器設定", "form.prefs.fieldset.reader_settings": "閱讀器設定",
"form.prefs.help.external_font_hosts": "以空白分隔允許的外部字型來源。例如「fonts.gstatic.com fonts.googleapis.com」。", "form.prefs.help.external_font_hosts": "以空白分隔允許的外部字型來源。例如「fonts.gstatic.com fonts.googleapis.com」。",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.categories_sorting_order": "分類排序", "form.prefs.label.categories_sorting_order": "分類排序",
"form.prefs.label.cjk_reading_speed": "中文、韓文和日文的閱讀速度(每分鐘字元數)", "form.prefs.label.cjk_reading_speed": "中文、韓文和日文的閱讀速度(每分鐘字元數)",
"form.prefs.label.custom_css": "自訂 CSS", "form.prefs.label.custom_css": "自訂 CSS",
@ -346,7 +350,6 @@
"form.prefs.label.mark_read_on_view": "檢視時自動將文章標記為已讀", "form.prefs.label.mark_read_on_view": "檢視時自動將文章標記為已讀",
"form.prefs.label.mark_read_on_view_or_media_completion": "檢視文章即標記為已讀;若是音訊/視訊則在 90% 播放完成時標記", "form.prefs.label.mark_read_on_view_or_media_completion": "檢視文章即標記為已讀;若是音訊/視訊則在 90% 播放完成時標記",
"form.prefs.label.media_playback_rate": "音訊/視訊播放速度", "form.prefs.label.media_playback_rate": "音訊/視訊播放速度",
"form.prefs.label.always_open_external_links": "Read articles by opening external links",
"form.prefs.label.show_reading_time": "顯示文章的預計閱讀時間", "form.prefs.label.show_reading_time": "顯示文章的預計閱讀時間",
"form.prefs.label.theme": "主題", "form.prefs.label.theme": "主題",
"form.prefs.label.timezone": "時區", "form.prefs.label.timezone": "時區",

View file

@ -94,6 +94,9 @@ type Integration struct {
OmnivoreEnabled bool OmnivoreEnabled bool
OmnivoreAPIKey string OmnivoreAPIKey string
OmnivoreURL string OmnivoreURL string
KarakeepEnabled bool
KarakeepAPIKey string
KarakeepURL string
RaindropEnabled bool RaindropEnabled bool
RaindropToken string RaindropToken string
RaindropCollectionID string RaindropCollectionID string

View file

@ -220,7 +220,10 @@ func (s *Storage) Integration(userID int64) (*model.Integration, error) {
pushover_token, pushover_token,
pushover_device, pushover_device,
pushover_prefix, pushover_prefix,
rssbridge_token rssbridge_token,
karakeep_enabled,
karakeep_api_key,
karakeep_url
FROM FROM
integrations integrations
WHERE WHERE
@ -340,6 +343,9 @@ func (s *Storage) Integration(userID int64) (*model.Integration, error) {
&integration.PushoverDevice, &integration.PushoverDevice,
&integration.PushoverPrefix, &integration.PushoverPrefix,
&integration.RSSBridgeToken, &integration.RSSBridgeToken,
&integration.KarakeepEnabled,
&integration.KarakeepAPIKey,
&integration.KarakeepURL,
) )
switch { switch {
case err == sql.ErrNoRows: case err == sql.ErrNoRows:
@ -467,9 +473,12 @@ func (s *Storage) UpdateIntegration(integration *model.Integration) error {
pushover_token=$108, pushover_token=$108,
pushover_device=$109, pushover_device=$109,
pushover_prefix=$110, pushover_prefix=$110,
rssbridge_token=$111 rssbridge_token=$111,
karakeep_enabled=$112,
karakeep_api_key=$113,
karakeep_url=$114
WHERE WHERE
user_id=$112 user_id=$115
` `
_, err := s.db.Exec( _, err := s.db.Exec(
query, query,
@ -584,6 +593,9 @@ func (s *Storage) UpdateIntegration(integration *model.Integration) error {
integration.PushoverDevice, integration.PushoverDevice,
integration.PushoverPrefix, integration.PushoverPrefix,
integration.RSSBridgeToken, integration.RSSBridgeToken,
integration.KarakeepEnabled,
integration.KarakeepAPIKey,
integration.KarakeepURL,
integration.UserID, integration.UserID,
) )
@ -622,6 +634,7 @@ func (s *Storage) HasSaveEntry(userID int64) (result bool) {
shaarli_enabled='t' OR shaarli_enabled='t' OR
webhook_enabled='t' OR webhook_enabled='t' OR
omnivore_enabled='t' OR omnivore_enabled='t' OR
karakeep_enabled='t' OR
raindrop_enabled='t' OR raindrop_enabled='t' OR
betula_enabled='t' OR betula_enabled='t' OR
cubox_enabled='t' OR cubox_enabled='t' OR

View file

@ -364,6 +364,25 @@
</div> </div>
</details> </details>
<details {{ if .form.KarakeepEnabled }}open{{ end }}>
<summary>Karakeep</summary>
<div class="form-section">
<label>
<input type="checkbox" name="karakeep_enabled" value="1" {{ if .form.KarakeepEnabled }}checked{{ end }}> {{ t "form.integration.karakeep_activate" }}
</label>
<label for="form-karakeep-api-key">{{ t "form.integration.karakeep_api_key" }}</label>
<input type="text" name="karakeep_api_key" id="form-karakeep-api-key" value="{{ .form.KarakeepAPIKey }}" spellcheck="false">
<label for="form-karakeep-url">{{ t "form.integration.karakeep_url" }}</label>
<input type="url" name="karakeep_url" id="form-karakeep-url" value="{{ .form.KarakeepURL }}" placeholder="https://try.karakeep.app/api/v1/bookmarks" spellcheck="false">
<div class="buttons">
<button type="submit" class="button button-primary" data-label-loading="{{ t "form.submit.saving" }}">{{ t "action.update" }}</button>
</div>
</div>
</details>
<details {{ if .form.PinboardEnabled }}open{{ end }}> <details {{ if .form.PinboardEnabled }}open{{ end }}>
<summary>Pinboard</summary> <summary>Pinboard</summary>
<div class="form-section"> <div class="form-section">

View file

@ -97,6 +97,9 @@ type IntegrationForm struct {
OmnivoreEnabled bool OmnivoreEnabled bool
OmnivoreAPIKey string OmnivoreAPIKey string
OmnivoreURL string OmnivoreURL string
KarakeepEnabled bool
KarakeepAPIKey string
KarakeepURL string
RaindropEnabled bool RaindropEnabled bool
RaindropToken string RaindropToken string
RaindropCollectionID string RaindropCollectionID string
@ -209,6 +212,9 @@ func (i IntegrationForm) Merge(integration *model.Integration) {
integration.OmnivoreEnabled = i.OmnivoreEnabled integration.OmnivoreEnabled = i.OmnivoreEnabled
integration.OmnivoreAPIKey = i.OmnivoreAPIKey integration.OmnivoreAPIKey = i.OmnivoreAPIKey
integration.OmnivoreURL = i.OmnivoreURL integration.OmnivoreURL = i.OmnivoreURL
integration.KarakeepEnabled = i.KarakeepEnabled
integration.KarakeepAPIKey = i.KarakeepAPIKey
integration.KarakeepURL = i.KarakeepURL
integration.RaindropEnabled = i.RaindropEnabled integration.RaindropEnabled = i.RaindropEnabled
integration.RaindropToken = i.RaindropToken integration.RaindropToken = i.RaindropToken
integration.RaindropCollectionID = i.RaindropCollectionID integration.RaindropCollectionID = i.RaindropCollectionID
@ -324,6 +330,9 @@ func NewIntegrationForm(r *http.Request) *IntegrationForm {
OmnivoreEnabled: r.FormValue("omnivore_enabled") == "1", OmnivoreEnabled: r.FormValue("omnivore_enabled") == "1",
OmnivoreAPIKey: r.FormValue("omnivore_api_key"), OmnivoreAPIKey: r.FormValue("omnivore_api_key"),
OmnivoreURL: r.FormValue("omnivore_url"), OmnivoreURL: r.FormValue("omnivore_url"),
KarakeepEnabled: r.FormValue("karakeep_enabled") == "1",
KarakeepAPIKey: r.FormValue("karakeep_api_key"),
KarakeepURL: r.FormValue("karakeep_url"),
RaindropEnabled: r.FormValue("raindrop_enabled") == "1", RaindropEnabled: r.FormValue("raindrop_enabled") == "1",
RaindropToken: r.FormValue("raindrop_token"), RaindropToken: r.FormValue("raindrop_token"),
RaindropCollectionID: r.FormValue("raindrop_collection_id"), RaindropCollectionID: r.FormValue("raindrop_collection_id"),

View file

@ -111,6 +111,9 @@ func (h *handler) showIntegrationPage(w http.ResponseWriter, r *http.Request) {
OmnivoreEnabled: integration.OmnivoreEnabled, OmnivoreEnabled: integration.OmnivoreEnabled,
OmnivoreAPIKey: integration.OmnivoreAPIKey, OmnivoreAPIKey: integration.OmnivoreAPIKey,
OmnivoreURL: integration.OmnivoreURL, OmnivoreURL: integration.OmnivoreURL,
KarakeepEnabled: integration.KarakeepEnabled,
KarakeepAPIKey: integration.KarakeepAPIKey,
KarakeepURL: integration.KarakeepURL,
RaindropEnabled: integration.RaindropEnabled, RaindropEnabled: integration.RaindropEnabled,
RaindropToken: integration.RaindropToken, RaindropToken: integration.RaindropToken,
RaindropCollectionID: integration.RaindropCollectionID, RaindropCollectionID: integration.RaindropCollectionID,