Quellcode durchsuchen

i18n: add Lithuanian translation (#9201)

* i18n: add Lithuanian translation

This PR adds a new **Lithuanian (lietuvių, `lt`)** translation for FreshRSS.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Re-apply my fixes lost due to forced push

---------

Co-authored-by: georatas <191203408+georatas@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
georatas vor 20 Stunden
Ursprung
Commit
f3d3d983fc

+ 1 - 0
.typos.toml

@@ -28,6 +28,7 @@ extend-exclude = [
 	"app/i18n/it/",
 	"app/i18n/ja/",
 	"app/i18n/ko/",
+	"app/i18n/lt/",
 	"app/i18n/lv/",
 	"app/i18n/nl/",
 	"app/i18n/oc/",

+ 1 - 0
CHANGELOG.md

@@ -38,6 +38,7 @@ See also [the FreshRSS releases](https://github.com/FreshRSS/FreshRSS/releases).
 * Extensions
 	* New `freshrss:entryStateChange` JavaScript event for extensions, dispatched when an article has finished being marked as read/unread [#8862](https://github.com/FreshRSS/FreshRSS/pull/9031)
 * I18n
+	* New Lithuanian (lietuvių) translation
 	* Improve Hungarian [#8879](https://github.com/FreshRSS/FreshRSS/pull/8879)
 	* Improve Italian [#8880](https://github.com/FreshRSS/FreshRSS/pull/8880)
 	* Improve Persian [#8923](https://github.com/FreshRSS/FreshRSS/pull/8923)

+ 3 - 2
README.fr.md

@@ -237,13 +237,14 @@ Voir le [dépôt dédié à ces extensions](https://github.com/FreshRSS/Extensio
 | Español (es) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) |
 | فارسی (fa) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Suomi (fi) | ■■■■■■■■■・ 91% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) |
-| Français (fr) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) |
+| Français (fr) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) |
 | עברית (he) | ■■■■・・・・・・ 41% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Magyar (hu) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhu+%2F%28TODO%7CDIRTY%29%24%2F) |
-| Bahasa Indonesia (id) | ■■■■■■■■・・ 89% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) |
+| Bahasa Indonesia (id) | ■■■■■■■■・・ 88% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Italiano (it) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) |
 | 日本語 (ja) | ■■■■■■■■■・ 99% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) |
 | 한국어 (ko) | ■■■■■■■■・・ 81% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) |
+| Lietuvių (lt) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flt+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Latviešu (lv) | ■■■■■■■■・・ 81% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Nederlands (nl) | ■■■■■■■■■・ 98% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Occitan (oc) | ■■■■■■■・・・ 74% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) |

+ 3 - 2
README.md

@@ -133,13 +133,14 @@ See the [repository dedicated to those extensions](https://github.com/FreshRSS/E
 | Español (es) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) |
 | فارسی (fa) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Suomi (fi) | ■■■■■■■■■・ 91% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) |
-| Français (fr) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) |
+| Français (fr) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) |
 | עברית (he) | ■■■■・・・・・・ 41% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Magyar (hu) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhu+%2F%28TODO%7CDIRTY%29%24%2F) |
-| Bahasa Indonesia (id) | ■■■■■■■■・・ 89% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) |
+| Bahasa Indonesia (id) | ■■■■■■■■・・ 88% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fid+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Italiano (it) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fit+%2F%28TODO%7CDIRTY%29%24%2F) |
 | 日本語 (ja) | ■■■■■■■■■・ 99% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fja+%2F%28TODO%7CDIRTY%29%24%2F) |
 | 한국어 (ko) | ■■■■■■■■・・ 81% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fko+%2F%28TODO%7CDIRTY%29%24%2F) |
+| Lietuvių (lt) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flt+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Latviešu (lv) | ■■■■■■■■・・ 81% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Flv+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Nederlands (nl) | ■■■■■■■■■・ 98% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fnl+%2F%28TODO%7CDIRTY%29%24%2F) |
 | Occitan (oc) | ■■■■■■■・・・ 74% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Foc+%2F%28TODO%7CDIRTY%29%24%2F) |

+ 1 - 0
app/i18n/cs/gen.php

@@ -213,6 +213,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/de/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/el/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/en-US/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// IGNORE
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/en/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',
 		'ja' => '日本語',
 		'ko' => '한국어',
+		'lt' => 'Lietuvių',
 		'lv' => 'Latviešu',
 		'nl' => 'Nederlands',
 		'oc' => 'Occitan',

+ 1 - 0
app/i18n/es/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/fa/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/fi/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/fr/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/he/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/hu/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/id/gen.php

@@ -197,6 +197,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/it/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/ja/gen.php

@@ -197,6 +197,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/ko/gen.php

@@ -197,6 +197,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 165 - 0
app/i18n/lt/admin.php

@@ -0,0 +1,165 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'auth' => array(
+		'allow_anonymous' => 'Leisti anoniminį numatytojo naudotojo straipsnių skaitymą (%s)',
+		'allow_anonymous_refresh' => 'Leisti anoniminį straipsnių atnaujinimą',
+		'api_enabled' => 'Leisti <abbr>API</abbr> prieigą <small>(reikalinga mobiliosioms programoms ir dalijimuisi naudotojo užklausomis)</small>',
+		'form' => 'Žiniatinklio forma (tradicinė, reikia „JavaScript“)',
+		'http' => 'HTTP (pažengusiems: valdo žiniatinklio serveris, OIDC, SSO…)',
+		'none' => 'Jokio (pavojinga)',
+		'title' => 'Tapatybės nustatymas',
+		'token' => 'Pagrindinis tapatybės prieigos raktas',
+		'token_help' => 'Leidžia pasiekti visus naudotojo RSS kanalus, taip pat atnaujinti kanalus be tapatybės nustatymo:',
+		'type' => 'Tapatybės nustatymo metodas',
+	),
+	'extensions' => array(
+		'author' => 'Autorius',
+		'community' => 'Prieinami bendruomenės plėtiniai',
+		'description' => 'Aprašymas',
+		'disabled' => 'Išjungtas',
+		'empty_list' => 'Nėra įdiegtų plėtinių',
+		'empty_list_help' => 'Kad išsiaiškintumėte tuščio plėtinių sąrašo priežastį, patikrinkite žurnalus.',
+		'enabled' => 'Įjungtas',
+		'is_compatible' => 'Suderinamas',
+		'latest' => 'Įdiegtas',
+		'name' => 'Pavadinimas',
+		'no_configure_view' => 'Šio plėtinio konfigūruoti negalima.',
+		'system' => array(
+			'_' => 'Sisteminiai plėtiniai',
+			'no_rights' => 'Sisteminis plėtinys (neturite reikiamų teisių)',
+		),
+		'title' => 'Plėtiniai',
+		'update' => 'Yra atnaujinimas',
+		'user' => 'Naudotojo plėtiniai',
+		'version' => 'Versija',
+	),
+	'stats' => array(
+		'_' => 'Statistika',
+		'all_feeds' => 'Visi kanalai',
+		'category' => 'Kategorija',
+		'date_published' => 'Paskelbimo data',
+		'date_received' => 'Gavimo data',
+		'entry_count' => 'Įrašų skaičius',
+		'entry_per_category' => 'Įrašai pagal kategoriją',
+		'entry_per_day' => 'Įrašai per dieną (paskutinės 30 dienų)',
+		'entry_per_day_of_week' => 'Pagal savaitės dieną (vidutiniškai: %.2f žinučių)',
+		'entry_per_hour' => 'Pagal valandą (vidutiniškai: %.2f žinučių)',
+		'entry_per_month' => 'Pagal mėnesį (vidutiniškai: %.2f žinučių)',
+		'entry_repartition' => 'Įrašų pasiskirstymas',
+		'feed' => 'Kanalas',
+		'feed_per_category' => 'Kanalai pagal kategoriją',
+		'idle' => 'Neaktyvūs kanalai',
+		'main' => 'Pagrindinė statistika',
+		'main_stream' => 'Pagrindinis srautas',
+		'nb_unreads' => 'Neskaitytų straipsnių skaičius',
+		'no_idle' => 'Neaktyvių kanalų nėra!',
+		'number_entries' => '%d straipsnių',
+		'overview' => 'Apžvalga',
+		'percent_of_total' => '% nuo visų',
+		'repartition' => 'Straipsnių pasiskirstymas: %s',
+		'status_favorites' => 'Mėgstami',
+		'status_read' => 'Skaityti',
+		'status_total' => 'Iš viso',
+		'status_unread' => 'Neskaityti',
+		'title' => 'Statistika',
+		'top_feed' => 'Populiariausi dešimt kanalų',
+		'unread_dates' => 'Datos su daugiausiai neskaitytų straipsnių',
+	),
+	'system' => array(
+		'_' => 'Sistemos konfigūracija',
+		'auto-update-url' => 'Automatinio atnaujinimo serverio URL',
+		'base-url' => array(
+			'_' => 'Bazinė nuoroda (base URL)',
+			'recommendation' => 'Automatinė rekomendacija: <kbd>%s</kbd>',
+		),
+		'closed_registration_message' => 'Pranešimas, kai registracija uždaryta',
+		'cookie-duration' => array(
+			'help' => 'sekundėmis',
+			'number' => 'Kiek laiko išlaikyti prisijungimą',
+		),
+		'default_closed_registration_message' => 'Šis serveris šiuo metu nepriima naujų registracijų.',
+		'force_email_validation' => 'Priverstinis el. pašto adreso patvirtinimas',
+		'instance-name' => 'Egzemplioriaus pavadinimas',
+		'internal-host-allowlist' => array(
+			'_' => 'Vidinių serverių leistinųjų sąrašas',
+			'help' => 'Po vieną įrašą eilutėje:<ul><li><code>host:port</code>. Pavyzdžiui, <code>127.0.0.1:8080</code> arba <code>rss-bridge:80</code></li><li>CIDR žymėjimas. Pavyzdžiui, <code>0.0.0.0/0</code> – leisti bet kokį IPv4, <code>::/0</code> – leisti bet kokį IPv6</li><li><code>*</code> – leisti bet kokį serverį (nesaugu)</li></ul>',
+		),
+		'max-categories' => 'Didžiausias kategorijų skaičius vienam naudotojui',
+		'max-feeds' => 'Didžiausias kanalų skaičius vienam naudotojui',
+		'override-by-env-var' => 'Šis nustatymas nustatytas aplinkos kintamuoju <kbd>%s</kbd>.',
+		'registration' => array(
+			'number' => 'Didžiausias paskyrų skaičius',
+			'select' => array(
+				'label' => 'Registracijos forma',
+				'option' => array(
+					'noform' => 'Išjungta: nėra registracijos formos',
+					'nolimit' => 'Įjungta: paskyrų skaičius neribojamas',
+					'setaccountsnumber' => 'Nustatyti didžiausią paskyrų skaičių',
+				),
+			),
+			'status' => array(
+				'disabled' => 'Forma išjungta',
+				'enabled' => 'Forma įjungta',
+			),
+			'title' => 'Naudotojų registracijos forma',
+		),
+		'sensitive-parameter' => 'Slaptas parametras. Redaguokite rankiniu būdu faile <kbd>./data/config.php</kbd>',
+		'tos' => array(
+			'disabled' => 'nepateiktos',
+			'enabled' => '<a href="./?a=tos">yra įjungtos</a>',
+			'help' => 'Kaip <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">įjungti naudojimosi sąlygas</a>',
+		),
+		'websub' => array(
+			'help' => 'Apie <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
+		),
+	),
+	'update' => array(
+		'_' => 'Atnaujinti FreshRSS',
+		'apply' => 'Pradėti atnaujinimą',
+		'changelog' => 'Pakeitimų žurnalas',
+		'check' => 'Tikrinti, ar yra naujų atnaujinimų',
+		'copiedFromURL' => 'update.php nukopijuotas iš %s į ./data',
+		'current_version' => 'Dabar įdiegta versija',
+		'last' => 'Paskutinis patikrinimas',
+		'loading' => 'Atnaujinama…',
+		'none' => 'Atnaujinimų nėra',
+		'releaseChannel' => array(
+			'_' => 'Leidimų kanalas',
+			'edge' => 'Nuolatinis leidimas („edge“)',
+			'latest' => 'Stabilus leidimas („latest“)',
+		),
+		'title' => 'Atnaujinti FreshRSS',
+		'viaGit' => 'Pradėtas atnaujinimas per „git“ ir „GitHub.com“',
+	),
+	'user' => array(
+		'admin' => 'Administratorius',
+		'article_count' => 'Straipsniai',
+		'back_to_manage' => '← Grįžti į naudotojų sąrašą',
+		'create' => 'Sukurti naują naudotoją',
+		'database_size' => 'Duomenų bazės dydis',
+		'email' => 'El. pašto adresas',
+		'enabled' => 'Įjungtas',
+		'feed_count' => 'Kanalai',
+		'is_admin' => 'Yra administratorius',
+		'language' => 'Kalba',
+		'last_user_activity' => 'Paskutinis naudotojo aktyvumas',
+		'list' => 'Naudotojų sąrašas',
+		'number' => 'Sukurta %d paskyra',
+		'numbers' => 'Sukurta %d paskyrų',
+		'password_form' => 'Slaptažodis<br /><small>(žiniatinklio formos prisijungimo metodui)</small>',
+		'password_format' => 'Bent 7 simboliai',
+		'title' => 'Tvarkyti naudotojus',
+		'username' => 'Naudotojo vardas',
+	),
+);

+ 33 - 0
app/i18n/lt/api.php

@@ -0,0 +1,33 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'information' => array(
+		'address' => 'Jūsų API adresas:',
+		'output' => array(
+			'encoding-support' => '⚠️ ĮSPĖJIMAS: nėra <code>%2F</code> palaikymo, kai kurios programos gali neveikti!',
+			'invalid-configuration' => '⚠️ ĮSPĖJIMAS: tikėtina neteisinga bazinė nuoroda (base URL) faile ./data/config.php',
+			'pass' => '✔️ GERAI',
+			'unknown-error' => '❌ ',	// IGNORE
+		),
+		'test' => array(
+			'fever' => 'Fever API konfigūracijos patikra:',
+			'greader' => 'Google Reader API konfigūracijos patikra:',
+		),
+		'title' => array(
+			'_' => 'FreshRSS API prieigos taškai',
+			'extension' => 'API plėtiniams',
+			'fever' => 'Su Fever suderinama API',
+			'greader' => 'Su Google Reader suderinama API',
+		),
+	),
+);

+ 390 - 0
app/i18n/lt/conf.php

@@ -0,0 +1,390 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'archiving' => array(
+		'_' => 'Archyvavimas',
+		'exception' => 'Išvalymo išimtis',
+		'help' => 'Daugiau parinkčių yra atskiro kanalo nustatymuose',
+		'keep_favourites' => 'Niekada netrinti mėgstamų',
+		'keep_labels' => 'Niekada netrinti etikečių',
+		'keep_max' => 'Didžiausias saugotinų straipsnių skaičius viename kanale',
+		'keep_min_by_feed' => 'Mažiausias saugotinų straipsnių skaičius viename kanale',
+		'keep_period' => 'Didžiausias saugotinų straipsnių amžius',
+		'keep_unreads' => 'Niekada netrinti neskaitytų straipsnių',
+		'maintenance' => 'Priežiūra',
+		'optimize' => 'Optimizuoti duomenų bazę',
+		'optimize_help' => 'Retkarčiais paleiskite, kad sumažintumėte duomenų bazės dydį',
+		'policy' => 'Išvalymo politika',
+		'policy_warning' => 'Jei nepasirinkta jokia išvalymo politika, bus saugomi visi straipsniai.',
+		'purge_now' => 'Išvalyti dabar',
+		'title' => 'Archyvavimas',
+		'ttl' => 'Automatiškai neatnaujinti dažniau nei',
+	),
+	'display' => array(
+		'_' => 'Rodymas',
+		'article' => array(
+			'authors_date' => array(
+				'_' => 'Autoriai ir data',
+				'both' => 'Antraštėje ir poraštėje',
+				'footer' => 'Poraštėje',
+				'header' => 'Antraštėje',
+				'none' => 'Nerodyti',
+			),
+			'feed_name' => array(
+				'above_title' => 'Virš pavadinimo / žymų',
+				'none' => 'Nerodyti',
+				'with_authors' => 'Autorių ir datos eilutėje',
+			),
+			'feed_title' => 'Kanalo pavadinimas',
+			'icons' => array(
+				'_' => 'Straipsnio piktogramų padėtis<br /><small>(tik skaitymo vaizde)</small>',
+				'above_title' => 'Virš pavadinimo',
+				'with_authors' => 'Autorių ir datos eilutėje',
+			),
+			'tags' => array(
+				'_' => 'Žymos',
+				'both' => 'Antraštėje ir poraštėje',
+				'footer' => 'Poraštėje',
+				'header' => 'Antraštėje',
+				'none' => 'Nerodyti',
+			),
+			'tags_max' => array(
+				'_' => 'Didžiausias rodomų žymų skaičius',
+				'help' => '0 reiškia: rodyti visas žymas ir jų neslėpti',
+			),
+		),
+		'darkMode' => array(
+			'_' => 'Automatinis tamsusis režimas',
+			'auto' => 'Automatiškai',
+			'help' => 'Tik suderinamoms temoms',
+			'no' => 'Ne',
+		),
+		'display_enclosures' => 'Rodyti priedus',
+		'headline' => array(
+			'articles_header_footer' => 'Straipsniai: antraštė / poraštė',
+		),
+		'icon' => array(
+			'bottom_line' => 'Apatinė eilutė',
+			'display_authors' => 'Autoriai',
+			'entry' => 'Straipsnio piktogramos',
+			'publication_date' => 'Paskelbimo data',
+			'related_tags' => 'Straipsnio žymos',
+			'sharing' => 'Dalijimasis',
+			'summary' => 'Santrauka',
+			'top_line' => 'Viršutinė eilutė',
+		),
+		'language' => 'Kalba',
+		'notif_html5' => array(
+			'seconds' => 'sekundės (0 reiškia be laiko limito)',
+			'timeout' => 'HTML5 pranešimo laiko limitas',
+		),
+		'show_nav_buttons' => 'Rodyti naršymo mygtukus',
+		'show_title_unread' => 'Rodyti neskaitytų straipsnių skaičių lango antraštėje',
+		'show_unread_count' => array(
+			'_' => 'Rodyti neskaitytų skaičių šoninėje juostoje',
+			'all' => 'Visoms kategorijoms ir kanalams',
+			'important' => 'Tik svarbiems kanalams',
+			'important_locked' => 'Svarbūs kanalai visada rodo neskaitytų skaičių.',
+			'none' => 'Niekada',
+		),
+		'sidebar_hidden_by_default' => 'Pagal numatymą slėpti šoninę juostą',
+		'theme' => array(
+			'_' => 'Tema',
+			'deprecated' => array(
+				'_' => 'Nebepalaikoma',
+				'description' => 'Ši tema nebepalaikoma ir nebebus prieinama <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">būsimame FreshRSS leidime</a>',
+			),
+		),
+		'theme_not_available' => 'Tema „%s“ nebeprieinama. Pasirinkite kitą temą.',
+		'thumbnail' => array(
+			'label' => 'Miniatiūra',
+			'landscape' => 'Gulsčia',
+			'none' => 'Nerodyti',
+			'portrait' => 'Stačia',
+			'square' => 'Kvadratinė',
+		),
+		'timezone' => 'Laiko juosta',
+		'title' => 'Rodymas',
+		'website' => array(
+			'full' => 'Piktograma ir pavadinimas',
+			'icon' => 'Tik piktograma',
+			'label' => 'Svetainė',
+			'name' => 'Tik pavadinimas',
+			'none' => 'Nerodyti',
+		),
+		'width' => array(
+			'content' => 'Turinio plotis',
+			'large' => 'Platus',
+			'medium' => 'Vidutinis',
+			'no_limit' => 'Visas plotis',
+			'thin' => 'Siauras',
+		),
+	),
+	'logs' => array(
+		'loglist' => array(
+			'level' => 'Žurnalo lygis',
+			'message' => 'Žurnalo pranešimas',
+			'timestamp' => 'Laiko žyma',
+		),
+		'pagination' => array(
+			'first' => 'Pirmas',
+			'last' => 'Paskutinis',
+			'next' => 'Kitas',
+			'previous' => 'Ankstesnis',
+		),
+	),
+	'mark_read_button' => array(
+		'_' => 'Mygtukas „Žymėti visus skaitytais“',
+		'big' => 'Didelis',
+		'none' => 'Nėra',
+		'small' => 'Mažas',
+	),
+	'notification' => array(
+		'html5_enable_notif' => 'Įjungti pranešimą',
+	),
+	'notification_timeout' => array(
+		'bad' => array(
+			'label' => 'Rodyti įspėjimo juostą',
+			'seconds' => 'sekundės (bent 1)',
+		),
+		'good' => array(
+			'label' => 'Rodyti patvirtinimo juostą',
+			'seconds' => 'sekundės (0 reiškia nerodyti)',
+		),
+	),
+	'privacy' => array(
+		'_' => 'Privatumas',
+		'retrieve_extension_list' => 'Gauti plėtinių sąrašą',
+		'send_referrer_allowlist' => 'Svetainės, kurioms leidžiama matyti jūsų serverio adresą (%s)',
+	),
+	'profile' => array(
+		'_' => 'Profilio tvarkymas',
+		'api' => array(
+			'_' => 'Išorinė prieiga per API',
+			'api_not_set' => 'API slaptažodis nenustatytas',
+			'api_set' => 'API slaptažodis nustatytas',
+			'check_link' => 'Patikrinkite API būseną: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
+			'disabled' => 'API prieiga išjungta.',
+			'documentation_link' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">dokumentaciją ir žinomų programų sąrašą</a>',
+			'help' => 'Žr. <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>dokumentaciją</a>',
+			'security_warning' => 'Naudokite HTTPS. API slaptažodis perduodamas atviru tekstu ir gali atsirasti serverio žurnaluose, jei siunčiamas per GET.',
+		),
+		'change_password' => 'Keisti slaptažodį',
+		'confirm_new_password' => 'Patvirtinti naują slaptažodį',
+		'current_password' => 'Dabartinis slaptažodis<br /><small>(žiniatinklio formos prisijungimo metodui)</small>',
+		'delete' => array(
+			'_' => 'Paskyros ištrynimas',
+			'warn' => 'Jūsų paskyra ir visi susiję duomenys bus ištrinti.',
+		),
+		'email' => 'El. pašto adresas',
+		'new_password' => 'Naujas slaptažodis',
+		'password_api' => 'API slaptažodis<br /><small>(pvz., mobiliosioms programoms)</small>',
+		'password_format' => 'Bent 7 simboliai',
+		'title' => 'Profilis',
+	),
+	'query' => array(
+		'_' => 'Naudotojo užklausos',
+		'create' => 'Sukurti naują naudotojo užklausą',
+		'deprecated' => 'Ši užklausa nebegalioja. Nurodyta kategorija ar kanalas ištrinti.',
+		'description' => 'Aprašymas',
+		'filter' => array(
+			'_' => 'Pritaikytas filtras:',
+			'categories' => 'Rodyti pagal kategoriją',
+			'feeds' => 'Rodyti pagal kanalą',
+			'order' => 'Rikiuoti pagal datą',
+			'publish_labels_instead_of_tags' => 'Bendrinamame RSS pakeisti <i>kanalo žymas</i> <i>naudotojo etiketėmis</i>',
+			'search' => 'Išraiška',
+			'shareOpml' => 'Įjungti atitinkamų kategorijų ir kanalų dalijimąsi per OPML',
+			'shareRss' => 'Įjungti dalijimąsi per HTML ir RSS',
+			'state' => 'Būsena',
+			'tags' => 'Rodyti pagal etiketę',
+			'type' => 'Tipas',
+		),
+		'get_A' => 'Rodyti visus kanalus, taip pat rodomus savo kategorijoje',
+		'get_Z' => 'Rodyti visus kanalus, taip pat archyvuotus',
+		'get_all' => 'Rodyti visus straipsnius',
+		'get_all_labels' => 'Rodyti straipsnius su bet kuria etikete',
+		'get_category' => 'Rodyti kategoriją „%s“',
+		'get_favorite' => 'Rodyti mėgstamus straipsnius',
+		'get_feed' => 'Rodyti kanalą „%s“',
+		'get_important' => 'Rodyti straipsnius iš svarbių kanalų',
+		'get_label' => 'Rodyti straipsnius su etikete „%s“',
+		'help' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentaciją apie naudotojo užklausas ir pakartotinį dalijimąsi per HTML / RSS / OPML</a>.',
+		'image_url' => 'Paveikslėlio URL',
+		'name' => 'Pavadinimas',
+		'no_filter' => 'Nėra filtro',
+		'no_queries' => array(
+			'_' => 'Kol kas neišsaugota jokių naudotojo užklausų.',
+			'help' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">dokumentaciją</a>',
+		),
+		'number' => 'Užklausa Nr. %d',
+		'order_asc' => 'Pirma rodyti seniausius straipsnius',
+		'order_desc' => 'Pirma rodyti naujausius straipsnius',
+		'search' => 'Ieškoti „%s“',
+		'share' => array(
+			'_' => 'Dalintis šia užklausa nuoroda',
+			'disabled' => array(
+				'_' => 'išjungta',
+				'title' => 'Dalijimasis',
+			),
+			'greader' => 'Bendrinama nuoroda į GReader JSON',
+			'help' => 'Pateikite šią nuorodą, jei norite pasidalinti šia užklausa su kuo nors',
+			'html' => 'Bendrinama nuoroda į HTML puslapį',
+			'opml' => 'Bendrinama nuoroda į OPML kanalų sąrašą',
+			'rss' => 'Bendrinama nuoroda į RSS kanalą',
+		),
+		'state_0' => 'Rodyti visus straipsnius',
+		'state_1' => 'Rodyti skaitytus straipsnius',
+		'state_2' => 'Rodyti neskaitytus straipsnius',
+		'state_3' => 'Rodyti visus straipsnius',
+		'state_4' => 'Rodyti mėgstamus straipsnius',
+		'state_5' => 'Rodyti skaitytus mėgstamus straipsnius',
+		'state_6' => 'Rodyti neskaitytus mėgstamus straipsnius',
+		'state_7' => 'Rodyti mėgstamus straipsnius',
+		'state_8' => 'Rodyti nemėgstamus straipsnius',
+		'state_9' => 'Rodyti skaitytus nemėgstamus straipsnius',
+		'state_10' => 'Rodyti neskaitytus nemėgstamus straipsnius',
+		'state_11' => 'Rodyti nemėgstamus straipsnius',
+		'state_12' => 'Rodyti visus straipsnius',
+		'state_13' => 'Rodyti skaitytus straipsnius',
+		'state_14' => 'Rodyti neskaitytus straipsnius',
+		'state_15' => 'Rodyti visus straipsnius',
+		'title' => 'Naudotojo užklausos',
+	),
+	'reading' => array(
+		'_' => 'Skaitymas',
+		'after_onread' => 'Po „žymėti visus skaitytais“,',
+		'always_show_favorites' => 'Pagal numatymą mėgstamuose rodyti visus straipsnius',
+		'apply_to_individual_feed' => 'Taikoma kanalams atskirai',
+		'articles_per_page' => 'Straipsnių skaičius puslapyje',
+		'auto_load_more' => 'Įkelti daugiau straipsnių puslapio apačioje',
+		'auto_remove_article' => 'Slėpti straipsnius juos perskaičius',
+		'confirm_enabled' => 'Rodyti patvirtinimo langą atliekant „žymėti visus skaitytais“ veiksmus',
+		'display_articles_unfolded' => 'Pagal numatymą rodyti straipsnius išskleistus',
+		'display_categories_unfolded' => 'Išskleidžiamos kategorijos',
+		'headline' => array(
+			'articles' => 'Straipsniai: atverti / užverti',
+			'categories' => 'Kairioji naršymo sritis: kategorijos',
+			'mark_as_read' => 'Žymėti straipsnį skaitytu',
+			'misc' => 'Įvairūs',
+			'view' => 'Vaizdas',
+		),
+		'hide_read_feeds' => 'Slėpti kategorijas ir kanalus be neskaitytų straipsnių (neveikia su „Rodyti visus straipsnius“ konfigūracija)',
+		'img_with_lazyload' => 'Paveikslėliams įkelti naudoti <em>tingaus įkėlimo</em> (lazy load) režimą',
+		'jump_next' => 'pereiti prie kito neskaityto gretimo',
+		'mark_updated_article_unread' => 'Atnaujintus straipsnius žymėti neskaitytais',
+		'number_divided_when_reader' => 'Skaitymo vaizde dalinti iš 2.',
+		'read' => array(
+			'article_open_on_website' => 'kai straipsnis atveriamas originalioje svetainėje',
+			'article_viewed' => 'kai straipsnis peržiūrimas',
+			'focus' => 'kai suaktyvinamas (išskyrus svarbius kanalus)',
+			'keep_max_n_unread' => 'Didžiausias neskaitytais paliekamų straipsnių skaičius',
+			'scroll' => 'slenkant (išskyrus svarbius kanalus)',
+			'upon_gone' => 'kai jo nebelieka pirminiame naujienų kanale',
+			'upon_reception' => 'gavus straipsnį',
+			'when' => 'Žymėti straipsnį skaitytu…',
+			'when_same_guid_in_category' => 'jei identiškas GUID jau yra tarp <i>n</i> naujausių kategorijos straipsnių',
+			'when_same_title_in_category' => 'jei identiškas pavadinimas jau yra tarp <i>n</i> naujausių kategorijos straipsnių',
+			'when_same_title_in_feed' => 'jei identiškas pavadinimas jau yra tarp <i>n</i> naujausių kanalo straipsnių',
+		),
+		'show' => array(
+			'_' => 'Rodytini straipsniai',
+			'active_category' => 'Aktyvi kategorija',
+			'adaptive' => 'Rodyti neskaitytus, jei tokių yra, kitu atveju – visus straipsnius',
+			'all_articles' => 'Rodyti visus straipsnius',
+			'all_categories' => 'Visos kategorijos',
+			'no_category' => 'Nėra kategorijos',
+			'remember_categories' => 'Įsiminti atvertas kategorijas',
+			'unread' => 'Rodyti neskaitytus',
+			'unread_or_favorite' => 'Rodyti neskaitytus ir mėgstamus',
+		),
+		'show_fav_unread_help' => 'Taikoma ir etiketėms',
+		'sides_close_article' => 'Spustelėjus už straipsnio teksto srities, straipsnis užveriamas',
+		'star' => array(
+			'when' => 'Žymėti straipsnį mėgstamu…',
+		),
+		'sticky_post' => 'Atvertą straipsnį prisegti viršuje',
+		'sticky_sort' => 'Naršant išlaikyti pasirinktinę rikiavimo tvarką',
+		'sticky_sort_help' => 'Nustato, ar išlaikoma paskutinė pasirinktinė rikiavimo tvarka, ar kiekviena kategorija ar kanalas visada naudoja savo numatytąjį ar bendrą nustatymą.',
+		'title' => 'Skaitymas',
+		'view' => array(
+			'default' => 'Numatytasis vaizdas',
+			'global' => 'Bendras vaizdas',
+			'normal' => 'Įprastas vaizdas',
+			'reader' => 'Skaitymo vaizdas',
+		),
+	),
+	'sharing' => array(
+		'_' => 'Dalijimasis',
+		'add' => 'Pridėti dalijimosi būdą',
+		'bluesky' => 'Bluesky',	// IGNORE
+		'deprecated' => 'Ši paslauga nebepalaikoma ir bus pašalinta iš FreshRSS <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="Atverti dokumentaciją, kad sužinotumėte daugiau" target="_blank">būsimame leidime</a>.',
+		'diaspora' => 'Diaspora*',	// IGNORE
+		'email' => 'El. paštas',
+		'facebook' => 'Facebook',	// IGNORE
+		'more_information' => 'Daugiau informacijos',
+		'print' => 'Spausdinti',
+		'raindrop' => 'Raindrop.io',	// IGNORE
+		'remove' => 'Pašalinti dalijimosi būdą',
+		'shaarli' => 'Shaarli',	// IGNORE
+		'share_name' => 'Rodomas dalijimosi pavadinimas',
+		'share_url' => 'Naudotinas dalijimosi URL',
+		'title' => 'Dalijimasis',
+		'twitter' => 'Twitter',	// IGNORE
+		'wallabag' => 'wallabag',	// IGNORE
+	),
+	'shortcut' => array(
+		'_' => 'Spartieji klavišai',
+		'article_action' => 'Straipsnio veiksmai',
+		'auto_share' => 'Dalintis',
+		'auto_share_help' => 'Jei yra tik vienas dalijimosi būdas, naudojamas jis. Kitu atveju būdai pasiekiami pagal jų numerį.',
+		'close_menus' => 'Užverti meniu',
+		'collapse_article' => 'Sutraukti',
+		'first_article' => 'Atverti pirmą straipsnį',
+		'focus_search' => 'Pereiti į paieškos laukelį',
+		'global_view' => 'Perjungti į bendrą vaizdą',
+		'help' => 'Rodyti dokumentaciją',
+		'javascript' => 'Kad galėtumėte naudoti sparčiuosius klavišus, turi būti įjungtas „JavaScript“',
+		'last_article' => 'Atverti paskutinį straipsnį',
+		'load_more' => 'Įkelti daugiau straipsnių',
+		'mark_favorite' => 'Perjungti mėgstamą',
+		'mark_read' => 'Perjungti skaitytą',
+		'navigation' => 'Naršymas',
+		'navigation_help' => 'Su <kbd>⇧ Shift</kbd> modifikatoriumi naršymo spartieji klavišai taikomi kanalams.<br/>Su <kbd>Alt ⎇</kbd> modifikatoriumi – kategorijoms.',
+		'navigation_no_mod_help' => 'Šie naršymo spartieji klavišai nepalaiko modifikatorių.',
+		'next_article' => 'Atverti kitą straipsnį',
+		'next_unread_article' => 'Atverti kitą neskaitytą straipsnį',
+		'non_standard' => 'Kai kurie klavišai (<kbd>%s</kbd>) gali neveikti kaip spartieji.',
+		'normal_view' => 'Perjungti į įprastą vaizdą',
+		'other_action' => 'Kiti veiksmai',
+		'previous_article' => 'Atverti ankstesnį straipsnį',
+		'reading_view' => 'Perjungti į skaitymo vaizdą',
+		'rss_view' => 'Atverti kaip RSS kanalą',
+		'see_on_website' => 'Žiūrėti originalioje svetainėje',
+		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> – žymėti ankstesnius straipsnius skaitytais<br />+ <kbd>⇧ Shift</kbd> – žymėti visus straipsnius skaitytais',
+		'skip_next_article' => 'Suaktyvinti kitą neatveriant',
+		'skip_previous_article' => 'Suaktyvinti ankstesnį neatveriant',
+		'title' => 'Spartieji klavišai',
+		'toggle_aside' => 'Perjungti šoninę juostą',
+		'toggle_media' => 'Leisti / pristabdyti mediją',
+		'user_filter' => 'Pereiti į naudotojo užklausas',
+		'user_filter_help' => 'Jei yra tik viena naudotojo užklausa, naudojama ji. Kitu atveju užklausos pasiekiamos pagal jų numerį.',
+		'views' => 'Vaizdai',
+	),
+	'user' => array(
+		'articles_and_size' => '%s straipsnių (%s)',
+		'current' => 'Dabartinis naudotojas',
+		'is_admin' => 'yra administratorius',
+		'users' => 'Naudotojai',
+	),
+);

+ 152 - 0
app/i18n/lt/feedback.php

@@ -0,0 +1,152 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'access' => array(
+		'denied' => 'Neturite teisės pasiekti šio puslapio',
+		'not_found' => 'Ieškote puslapio, kurio nėra',
+	),
+	'admin' => array(
+		'optimization_complete' => 'Optimizavimas baigtas',
+	),
+	'api' => array(
+		'password' => array(
+			'failed' => 'Jūsų slaptažodžio pakeisti nepavyko',
+			'updated' => 'Jūsų slaptažodis pakeistas',
+		),
+	),
+	'auth' => array(
+		'login' => array(
+			'invalid' => 'Neteisingi prisijungimo duomenys',
+			'success' => 'Esate prisijungę',
+		),
+		'logout' => array(
+			'success' => 'Esate atsijungę',
+		),
+	),
+	'conf' => array(
+		'error' => 'Įrašant konfigūraciją įvyko klaida',
+		'query_created' => 'Užklausa „%s“ sukurta.',
+		'shortcuts_updated' => 'Spartieji klavišai atnaujinti',
+		'updated' => 'Konfigūracija atnaujinta',
+	),
+	'extensions' => array(
+		'already_enabled' => '%s jau įjungtas',
+		'cannot_remove' => '%s pašalinti negalima',
+		'disable' => array(
+			'ko' => '%s išjungti nepavyko. Išsamiau – <a href="%s">FreshRSS žurnaluose</a>.',
+			'ok' => '%s dabar išjungtas',
+		),
+		'enable' => array(
+			'ko' => '%s įjungti nepavyko. Išsamiau – <a href="%s">FreshRSS žurnaluose</a>.',
+			'ok' => '%s dabar įjungtas',
+		),
+		'invalid_view_mode' => 'Netinkamas rodymo režimas „%s“! Grįžtama į „Įprastą vaizdą“.',
+		'no_access' => 'Neturite prieigos prie %s',
+		'not_enabled' => '%s nėra įjungtas',
+		'not_found' => '%s neegzistuoja',
+		'removed' => '%s pašalintas',
+	),
+	'import_export' => array(
+		'export_no_zip_extension' => 'Jūsų serveryje nėra ZIP plėtinio. Pabandykite eksportuoti failus po vieną.',
+		'feeds_imported' => 'Jūsų kanalai importuoti. Kai baigsite importuoti, galite spustelėti mygtuką <i>Atnaujinti kanalus</i>.',
+		'feeds_imported_with_errors' => 'Jūsų kanalai importuoti, tačiau įvyko kelios klaidos. Kai baigsite importuoti, galite spustelėti mygtuką <i>Atnaujinti kanalus</i>.',
+		'file_cannot_be_uploaded' => 'Failo įkelti nepavyko!',
+		'no_zip_extension' => 'Jūsų serveryje nėra ZIP plėtinio.',
+		'zip_error' => 'Apdorojant ZIP įvyko klaida.',
+	),
+	'profile' => array(
+		'error' => 'Jūsų profilio pakeisti nepavyko',
+		'passwords_dont_match' => 'Slaptažodžiai nesutampa',
+		'updated' => 'Jūsų profilis pakeistas',
+	),
+	'sub' => array(
+		'actualize' => 'Atnaujinama',
+		'articles' => array(
+			'marked_read' => 'Pasirinkti straipsniai pažymėti skaitytais.',
+			'marked_unread' => 'Straipsniai pažymėti neskaitytais.',
+		),
+		'category' => array(
+			'created' => 'Kategorija %s sukurta.',
+			'deleted' => 'Kategorija ištrinta.',
+			'emptied' => 'Kategorija ištuštinta',
+			'error' => 'Kategorijos atnaujinti nepavyko',
+			'name_exists' => 'Toks kategorijos pavadinimas jau yra.',
+			'no_id' => 'Turite nurodyti kategorijos ID.',
+			'no_name' => 'Kategorijos pavadinimas negali būti tuščias.',
+			'not_delete_default' => 'Numatytosios kategorijos ištrinti negalima!',
+			'not_exist' => 'Tokios kategorijos nėra!',
+			'over_max' => 'Pasiekėte kategorijų ribą (%d)',
+			'updated' => 'Kategorija atnaujinta.',
+		),
+		'feed' => array(
+			'actualized' => '<em>%s</em> atnaujintas',
+			'actualizeds' => 'RSS kanalai atnaujinti',
+			'added' => 'RSS kanalas <em>%s</em> pridėtas',
+			'already_subscribed' => 'Jūs jau prenumeruojate <em>%s</em>',
+			'cache_cleared' => '<em>%s</em> podėlis (cache) išvalytas',
+			'deleted' => 'Kanalas ištrintas',
+			'error' => 'Kanalo atnaujinti nepavyko',
+			'favicon' => array(
+				'too_large' => 'Įkelta piktograma per didelė. Didžiausias failo dydis – <em>%s</em>.',
+				'unsupported_format' => 'Nepalaikomas paveikslėlio failo formatas!',
+			),
+			'internal_problem' => 'Naujienų kanalo pridėti nepavyko. Išsamiau – <a href="%s">FreshRSS žurnaluose</a>. Galite bandyti pridėti priverstinai, prie URL pridėdami <code>#force_feed</code>.',
+			'invalid_url' => 'URL <em>%s</em> netinkamas',
+			'n_actualized' => 'Atnaujinta kanalų: %d',
+			'n_entries_deleted' => 'Ištrinta straipsnių: %d',
+			'no_refresh' => 'Nėra kanalų, kuriuos reikėtų atnaujinti',
+			'not_added' => '<em>%s</em> pridėti nepavyko',
+			'not_found' => 'Kanalo rasti nepavyko',
+			'over_max' => 'Pasiekėte kanalų ribą (%d)',
+			'reloaded' => '<em>%s</em> įkeltas iš naujo',
+			'selector_preview' => array(
+				'http_error' => 'Nepavyko įkelti svetainės turinio.',
+				'no_entries' => 'Šiame kanale nėra straipsnių. Peržiūrai sukurti reikia bent vieno straipsnio.',
+				'no_feed' => 'Vidinė klaida (kanalo rasti nepavyko).',
+				'no_result' => 'Selektorius nieko neatitiko. Vietoj to bus rodomas originalus kanalo tekstas.',
+				'selector_empty' => 'Selektorius tuščias. Kad sukurtumėte peržiūrą, jį reikia nurodyti.',
+			),
+			'updated' => 'Kanalas atnaujintas',
+		),
+		'purge_completed' => 'Išvalymas baigtas (ištrinta straipsnių: %d)',
+	),
+	'tag' => array(
+		'created' => 'Etiketė „%s“ sukurta.',
+		'error' => 'Etiketės atnaujinti nepavyko!',
+		'name_exists' => 'Toks etiketės pavadinimas jau yra.',
+		'renamed' => 'Etiketė „%s“ pervadinta į „%s“.',
+		'updated' => 'Etiketė atnaujinta.',
+	),
+	'update' => array(
+		'can_apply' => 'Yra FreshRSS atnaujinimas: <strong>versija %s</strong>.',
+		'error' => 'Atnaujinimo metu įvyko klaida: %s',
+		'file_is_nok' => 'Yra FreshRSS atnaujinimas (<strong>versija %s</strong>), tačiau patikrinkite katalogo <em>%s</em> teises. HTTP serveris turi turėti rašymo teisę',
+		'finished' => 'Atnaujinimas baigtas!',
+		'none' => 'Atnaujinimų nėra',
+		'server_not_found' => 'Atnaujinimų serverio rasti nepavyko. [%s]',
+	),
+	'user' => array(
+		'created' => array(
+			'_' => 'Naudotojas %s sukurtas',
+			'error' => 'Naudotojo %s sukurti nepavyko',
+		),
+		'deleted' => array(
+			'_' => 'Naudotojas %s ištrintas',
+			'error' => 'Naudotojo %s ištrinti nepavyko',
+		),
+		'updated' => array(
+			'_' => 'Naudotojas %s atnaujintas',
+			'error' => 'Naudotojas %s nebuvo atnaujintas',
+		),
+	),
+);

+ 349 - 0
app/i18n/lt/gen.php

@@ -0,0 +1,349 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'action' => array(
+		'actualize' => 'Atnaujinti kanalus',
+		'add' => 'Pridėti',
+		'back_to_rss_feeds' => '← Grįžti į savo RSS kanalus',
+		'cancel' => 'Atšaukti',
+		'close' => 'Užverti',
+		'create' => 'Sukurti',
+		'delete_all_feeds' => 'Ištrinti visus kanalus',
+		'delete_errored_feeds' => 'Ištrinti kanalus su klaidomis',
+		'delete_muted_feeds' => 'Ištrinti nutildytus kanalus',
+		'demote' => 'Pažeminti',
+		'disable' => 'Išjungti',
+		'download' => 'Atsisiųsti',
+		'empty' => 'Ištuštinti',
+		'enable' => 'Įjungti',
+		'export' => 'Eksportuoti',
+		'filter' => 'Filtruoti',
+		'import' => 'Importuoti',
+		'load_default_shortcuts' => 'Įkelti numatytuosius sparčiuosius klavišus',
+		'manage' => 'Tvarkyti',
+		'mark_read' => 'Žymėti skaitytu',
+		'menu' => array(
+			'open' => 'Atverti meniu',
+		),
+		'nav_buttons' => array(
+			'next' => 'Kitas straipsnis',
+			'prev' => 'Ankstesnis straipsnis',
+			'up' => 'Aukštyn',
+		),
+		'open_url' => 'Atverti URL',
+		'promote' => 'Paaukštinti',
+		'purge' => 'Išvalyti',
+		'refresh_opml' => 'Atnaujinti OPML',
+		'remove' => 'Pašalinti',
+		'rename' => 'Pervadinti',
+		'see_website' => 'Žiūrėti svetainę',
+		'submit' => 'Pateikti',
+		'truncate' => 'Ištrinti visus straipsnius',
+		'update' => 'Atnaujinti',
+	),
+	'auth' => array(
+		'accept_tos' => 'Sutinku su <a href="%s">naudojimosi sąlygomis</a>.',
+		'email' => 'El. pašto adresas',
+		'keep_logged_in' => 'Neatjungti manęs <small>(%s d.)</small>',
+		'login' => 'Prisijungti',
+		'logout' => 'Atsijungti',
+		'password' => array(
+			'_' => 'Slaptažodis',
+			'format' => '<small>Bent 7 simboliai</small>',
+		),
+		'reauth' => array(
+			'header' => 'Reikia iš naujo patvirtinti tapatybę',
+			'tip' => 'Prisijungti iš naujo neprašysime <u>%d min.</u>',
+			'title' => 'Pakartotinis tapatybės nustatymas',
+		),
+		'registration' => array(
+			'_' => 'Nauja paskyra',
+			'ask' => 'Sukurti paskyrą?',
+			'title' => 'Paskyros kūrimas',
+		),
+		'username' => array(
+			'_' => 'Naudotojo vardas',
+			'format' => '<small>1–39 simboliai: raidės, skaitmenys ir <code>. _ @ -</code></small>',
+		),
+	),
+	'date' => array(
+		'Apr' => '\\b\\a\\l\\a\\n\\d\\ž\\i\\o',
+		'Aug' => '\\r\\u\\g\\p\\j\\ū\\č\\i\\o',
+		'Dec' => '\\g\\r\\u\\o\\d\\ž\\i\\o',
+		'Feb' => '\\v\\a\\s\\a\\r\\i\\o',
+		'Jan' => '\\s\\a\\u\\s\\i\\o',
+		'Jul' => '\\l\\i\\e\\p\\o\\s',
+		'Jun' => '\\b\\i\\r\\ž\\e\\l\\i\\o',
+		'Mar' => '\\k\\o\\v\\o',
+		'May' => '\\g\\e\\g\\u\\ž\\ė\\s',
+		'Nov' => '\\l\\a\\p\\k\\r\\i\\č\\i\\o',
+		'Oct' => '\\s\\p\\a\\l\\i\\o',
+		'Sep' => '\\r\\u\\g\\s\\ė\\j\\o',
+		'apr' => 'Bal.',
+		'april' => 'Balandis',
+		'aug' => 'Rugp.',
+		'august' => 'Rugpjūtis',
+		'before_yesterday' => 'Užvakar',
+		'dec' => 'Gruod.',
+		'december' => 'Gruodis',
+		'feb' => 'Vas.',
+		'february' => 'Vasaris',
+		'format_date' => 'j %s Y',	// IGNORE
+		'format_date_hour' => 'j %s Y H\\:i',
+		'fri' => 'Pn',
+		'jan' => 'Saus.',
+		'january' => 'Sausis',
+		'jul' => 'Liep.',
+		'july' => 'Liepa',
+		'jun' => 'Birž.',
+		'june' => 'Birželis',
+		'last_2_year' => 'Paskutiniai dveji metai',
+		'last_3_month' => 'Paskutiniai trys mėnesiai',
+		'last_3_year' => 'Paskutiniai treji metai',
+		'last_5_year' => 'Paskutiniai penkeri metai',
+		'last_6_month' => 'Paskutiniai šeši mėnesiai',
+		'last_month' => 'Paskutinis mėnuo',
+		'last_week' => 'Paskutinė savaitė',
+		'last_year' => 'Paskutiniai metai',
+		'mar' => 'Kov.',
+		'march' => 'Kovas',
+		'may' => 'Geg.',
+		'may_' => 'Gegužė',
+		'mon' => 'Pr',
+		'month' => 'mėnesiai',
+		'nov' => 'Lapkr.',
+		'november' => 'Lapkritis',
+		'oct' => 'Spal.',
+		'october' => 'Spalis',
+		'sat' => 'Št',
+		'sep' => 'Rugs.',
+		'september' => 'Rugsėjis',
+		'sun' => 'Sk',
+		'thu' => 'Kt',
+		'today' => 'Šiandien',
+		'tue' => 'An',
+		'wed' => 'Tr',
+		'yesterday' => 'Vakar',
+	),
+	'dir' => 'ltr',	// IGNORE
+	'freshrss' => array(
+		'_' => 'FreshRSS',	// IGNORE
+		'about' => 'Apie FreshRSS',
+	),
+	'interval' => array(
+		'day' => array(
+			0 => 'prieš %d dieną',
+			1 => 'prieš %d dienas',
+			2 => 'prieš %d dienų',
+		),
+		'hour' => array(
+			0 => 'prieš %d valandą',
+			1 => 'prieš %d valandas',
+			2 => 'prieš %d valandų',
+		),
+		'justnow' => 'ką tik',
+		'minute' => array(
+			0 => 'prieš %d minutę',
+			1 => 'prieš %d minutes',
+			2 => 'prieš %d minučių',
+		),
+		'month' => array(
+			0 => 'prieš %d mėnesį',
+			1 => 'prieš %d mėnesius',
+			2 => 'prieš %d mėnesių',
+		),
+		'second' => array(
+			0 => 'prieš %d sekundę',
+			1 => 'prieš %d sekundes',
+			2 => 'prieš %d sekundžių',
+		),
+		'year' => array(
+			0 => 'prieš %d metus',
+			1 => 'prieš %d metus',
+			2 => 'prieš %d metų',
+		),
+	),
+	'js' => array(
+		'category_empty' => 'Tuščia kategorija',
+		'confirm_action' => 'Ar tikrai norite atlikti šį veiksmą? Jo negalima atšaukti!',
+		'confirm_action_feed_cat' => 'Ar tikrai norite atlikti šį veiksmą? Prarasite susijusius mėgstamus straipsnius ir naudotojo užklausas. Jo negalima atšaukti!',
+		'confirm_exit_slider' => 'Ar tikrai norite atsisakyti neišsaugotų nustatymų?',
+		'feedback' => array(
+			'body_new_articles' => array(
+				0 => 'FreshRSS yra %d naujas straipsnis.',
+				1 => 'FreshRSS yra %d nauji straipsniai.',
+				2 => 'FreshRSS yra %d naujų straipsnių.',
+			),
+			'body_unread_articles' => array(
+				0 => '(neskaityta: %d)',
+				1 => '(neskaityta: %d)',
+				2 => '(neskaityta: %d)',
+			),
+			'request_failed' => 'Užklausa nepavyko; tai galėjo lemti interneto ryšio problemos.',
+			'title_new_articles' => 'FreshRSS: nauji straipsniai!',
+		),
+		'labels_empty' => 'Etikečių nėra',
+		'new_article' => 'Yra naujų straipsnių; spustelėkite, kad atnaujintumėte puslapį.',
+		'should_be_activated' => 'Turi būti įjungtas „JavaScript“',
+		'unsafe_csp_header' => 'Naudojama CSP antraštė yra nesaugi, ir FreshRSS gali būti pažeidžiama XSS atakų. <a target="_blank" href="https://freshrss.github.io/FreshRSS/en/admins/10_ServerConfig.html#security">Žr. dokumentaciją</a>',
+	),
+	'lang' => array(
+		'cs' => 'Čeština',	// IGNORE
+		'de' => 'Deutsch',	// IGNORE
+		'el' => 'Ελληνικά',	// IGNORE
+		'en' => 'English',	// IGNORE
+		'en-US' => 'English (United States)',	// IGNORE
+		'es' => 'Español',	// IGNORE
+		'fa' => 'فارسی',	// IGNORE
+		'fi' => 'Suomi',	// IGNORE
+		'fr' => 'Français',	// IGNORE
+		'he' => 'עברית',	// IGNORE
+		'hu' => 'Magyar',	// IGNORE
+		'id' => 'Bahasa Indonesia',	// IGNORE
+		'it' => 'Italiano',	// IGNORE
+		'ja' => '日本語',	// IGNORE
+		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// IGNORE
+		'lv' => 'Latviešu',	// IGNORE
+		'nl' => 'Nederlands',	// IGNORE
+		'oc' => 'Occitan',	// IGNORE
+		'pl' => 'Polski',	// IGNORE
+		'pt-BR' => 'Português (Brasil)',	// IGNORE
+		'pt-PT' => 'Português (Portugal)',	// IGNORE
+		'ru' => 'Русский',	// IGNORE
+		'sk' => 'Slovenčina',	// IGNORE
+		'tr' => 'Türkçe',	// IGNORE
+		'uk' => 'Українська',	// IGNORE
+		'zh-CN' => '简体中文',	// IGNORE
+		'zh-TW' => '正體中文',	// IGNORE
+	),
+	'menu' => array(
+		'about' => 'Apie',
+		'account' => 'Paskyra',
+		'admin' => 'Administravimas',
+		'advanced_search' => 'Išplėstinė paieška',
+		'archiving' => 'Archyvavimas',
+		'authentication' => 'Tapatybės nustatymas',
+		'check_install' => 'Diegimo patikra',
+		'configuration' => 'Konfigūracija',
+		'display' => 'Rodymas',
+		'extensions' => 'Plėtiniai',
+		'logs' => 'Žurnalai',
+		'privacy' => 'Privatumas',
+		'queries' => 'Naudotojo užklausos',
+		'reading' => 'Skaitymas',
+		'search' => 'Ieškoti žodžių ar #žymų',
+		'search_help' => 'Išplėstinių <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">paieškos parametrų</a> ieškokite dokumentacijoje',
+		'sharing' => 'Dalijimasis',
+		'shortcuts' => 'Spartieji klavišai',
+		'stats' => 'Statistika',
+		'system' => 'Sistemos konfigūracija',
+		'update' => 'Atnaujinti',
+		'user_management' => 'Tvarkyti naudotojus',
+		'user_profile' => 'Profilis',
+	),
+	'period' => array(
+		'days' => 'dienos',
+		'hours' => 'valandos',
+		'months' => 'mėnesiai',
+		'weeks' => 'savaitės',
+		'years' => 'metai',
+	),
+	'readme' => array(
+		'contribute' => 'prisidėti',
+		'language' => 'Kalba',
+		'translated' => 'Pažanga',
+	),
+	'search' => array(
+		'advanced_search_help' => 'Ši forma padeda sudaryti paieškos užklausas, tačiau rankiniu būdu sudarytos užklausos dar galingesnės.',
+		'authors' => 'Autoriai',
+		'categories' => 'Kategorijos',
+		'content' => 'Turinys',
+		'date_from' => 'Nuo',
+		'date_modified' => 'Serverio keitimo data',
+		'date_past' => 'Praeityje',
+		'date_published' => 'Paskelbimo data',
+		'date_range' => 'Datų intervalas',
+		'date_received' => 'Gavimo data',
+		'date_to' => 'Iki',
+		'date_user' => 'Naudotojo keitimo data',
+		'feeds' => 'Kanalai',
+		'free_text' => 'Laisvas tekstas',
+		'free_text_help' => 'Ieškoti ir pavadinime, ir turinyje',
+		'full_documentation' => 'Žr. <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">visą paieškos dokumentaciją</a>',
+		'labels' => 'Mano etiketės',
+		'multiple_help' => 'Pasirinkite vieną ar kelis (laikykite <kbd>Ctrl</kbd> arba <kbd>Cmd</kbd>)',
+		'sources' => 'Šaltiniai',
+		'tags' => 'Straipsnio žymos',
+		'text' => 'Teksto paieška',
+		'text_help' => 'Kelios eilutės jungiamos loginiu <i>arba</i>. Taip pat palaikomi <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#regex" target="_blank">reguliarieji reiškiniai</a>.',
+		'text_placeholder' => 'Raktažodis',
+		'title' => 'Pavadinimas',
+		'url' => 'URL',	// IGNORE
+		'user_queries' => 'Naudotojo užklausos',
+	),
+	'share' => array(
+		'Known' => 'Žinomos svetainės',
+		'archiveIS' => 'archive.is',	// IGNORE
+		'archiveORG' => 'archive.org',	// IGNORE
+		'archivePH' => 'archive.ph',	// IGNORE
+		'bluesky' => 'Bluesky',	// IGNORE
+		'buffer' => 'Buffer',	// IGNORE
+		'clipboard' => 'Iškarpinė',
+		'diaspora' => 'Diaspora*',	// IGNORE
+		'email' => 'El. paštas',
+		'email-webmail-firefox-fix' => 'El. paštas (žiniatinklio paštas – pataisa „Firefox“)',
+		'facebook' => 'Facebook',	// IGNORE
+		'gnusocial' => 'GNU social',	// IGNORE
+		'jdh' => 'Journal du hacker',	// IGNORE
+		'lemmy' => 'Lemmy',	// IGNORE
+		'linkace' => 'LinkAce',	// IGNORE
+		'linkding' => 'Linkding',	// IGNORE
+		'linkedin' => 'LinkedIn',	// IGNORE
+		'mastodon' => 'Mastodon',	// IGNORE
+		'movim' => 'Movim',	// IGNORE
+		'nextcloud-bookmarks' => 'Nextcloud Bookmarks',	// IGNORE
+		'omnivore' => 'Omnivore',	// IGNORE
+		'pinboard' => 'Pinboard',	// IGNORE
+		'pinterest' => 'Pinterest',	// IGNORE
+		'print' => 'Spausdinti',
+		'raindrop' => 'Raindrop.io',	// IGNORE
+		'reddit' => 'Reddit',	// IGNORE
+		'shaarli' => 'Shaarli',	// IGNORE
+		'telegram' => 'Telegram',	// IGNORE
+		'twitter' => 'Twitter',	// IGNORE
+		'wallabag' => 'wallabag v1',	// IGNORE
+		'wallabagv2' => 'wallabag v2',	// IGNORE
+		'web-sharing-api' => 'Sistemos dalijimasis',
+		'whatsapp' => 'Whatsapp',	// IGNORE
+		'xing' => 'Xing',	// IGNORE
+	),
+	'short' => array(
+		'attention' => 'Dėmesio!',
+		'blank_to_disable' => 'Palikite tuščią, kad išjungtumėte',
+		'by_author' => 'Autorius:',
+		'by_default' => 'Pagal numatymą',
+		'damn' => 'Po galais!',
+		'default_category' => 'Be kategorijos',
+		'no' => 'Ne',
+		'not_applicable' => 'Neprieinama',
+		'ok' => 'Gerai!',
+		'or' => 'arba',
+		'yes' => 'Taip',
+	),
+	'stream' => array(
+		'load_more' => 'Įkelti daugiau straipsnių',
+		'mark_all_read' => 'Žymėti visus skaitytais',
+		'nothing_to_load' => 'Daugiau straipsnių nėra',
+	),
+);

+ 132 - 0
app/i18n/lt/index.php

@@ -0,0 +1,132 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'about' => array(
+		'_' => 'Apie',
+		'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>',	// IGNORE
+		'bug_reports' => array(
+			'environment_information' => array(
+				'_' => 'Sistemos informacija',
+				'browser' => 'Naršyklė',
+				'database' => 'Duomenų bazė',
+				'server_software' => 'Serverio programinė įranga',
+				'version_curl' => 'cURL versija',
+				'version_frss' => 'FreshRSS versija',
+				'version_php' => 'PHP versija',
+			),
+		),
+		'bugs_reports' => 'Klaidų pranešimai',
+		'documentation' => 'Dokumentacija',
+		'freshrss_description' => 'FreshRSS – tai savarankiškai talpinamas RSS agregatorius ir skaityklė. Ji leidžia vienu žvilgsniu skaityti ir sekti kelias naujienų svetaines, nenaršant iš vienos svetainės į kitą. FreshRSS yra lengva, lanksčiai konfigūruojama ir paprasta naudoti.',
+		'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">svetainėje GitHub</a>',
+		'license' => 'Licencija',
+		'project_website' => 'Projekto svetainė',
+		'title' => 'Apie',
+		'version' => 'Versija',
+	),
+	'feed' => array(
+		'empty' => 'Nėra straipsnių, kuriuos būtų galima rodyti.',
+		'published' => array(
+			'_' => 'Paskelbta',
+			'future' => 'Paskelbta ateityje',
+			'today' => 'Paskelbta šiandien',
+			'yesterday' => 'Paskelbta vakar',
+		),
+		'received' => array(
+			'_' => 'Gauta',
+			'today' => 'Gauta šiandien',
+			'yesterday' => 'Gauta vakar',
+		),
+		'rss_of' => '%s RSS kanalas',
+		'title' => 'Pagrindinis srautas',
+		'title_fav' => 'Mėgstami',
+		'title_global' => 'Bendras vaizdas',
+		'userModified' => array(
+			'_' => 'Naudotojo pakeista',
+			'today' => 'Naudotojo pakeista šiandien',
+			'yesterday' => 'Naudotojo pakeista vakar',
+		),
+	),
+	'log' => array(
+		'_' => 'Žurnalai',
+		'clear' => 'Išvalyti žurnalus',
+		'empty' => 'Žurnalo failas tuščias',
+		'title' => 'Žurnalai',
+	),
+	'menu' => array(
+		'about' => 'Apie FreshRSS',
+		'before_one_day' => 'Senesni nei viena diena',
+		'before_one_week' => 'Senesni nei viena savaitė',
+		'bookmark_query' => 'Įsiminti dabartinę užklausą',
+		'favorites' => 'Mėgstami (%s)',
+		'global_view' => 'Bendras vaizdas',
+		'important' => 'Svarbūs kanalai',
+		'main_stream' => 'Pagrindinis srautas',
+		'mark_all_read' => 'Žymėti visus skaitytais',
+		'mark_cat_read' => 'Žymėti kategoriją skaityta',
+		'mark_feed_read' => 'Žymėti kanalą skaitytu',
+		'mark_selection_unread' => 'Žymėti pažymėtus neskaitytais',
+		'mylabels' => 'Mano etiketės',
+		'non-starred' => 'Rodyti nemėgstamus',
+		'normal_view' => 'Įprastas vaizdas',
+		'queries' => 'Naudotojo užklausos',
+		'read' => 'Rodyti skaitytus',
+		'reader_view' => 'Skaitymo vaizdas',
+		'rss_view' => 'RSS kanalas',
+		'search_short' => 'Ieškoti',
+		'sort' => array(
+			'asc' => 'Didėjančiai',
+			'c' => array(
+				'name_asc' => 'Kategorijų, kanalų pavadinimai A→Ž',
+				'name_desc' => 'Kategorijų, kanalų pavadinimai Ž→A',
+			),
+			'date_asc' => 'Paskelbimo data 1→9',
+			'date_desc' => 'Paskelbimo data 9→1',
+			'desc' => 'Mažėjančiai',
+			'f' => array(
+				'name_asc' => 'Kanalo pavadinimas A→Ž',
+				'name_desc' => 'Kanalo pavadinimas Ž→A',
+			),
+			'id_asc' => 'Naujausi gauti gale',
+			'id_desc' => 'Naujausi gauti priekyje',
+			'length_asc' => 'Turinio ilgis 1→9',
+			'length_desc' => 'Turinio ilgis 9→1',
+			'link_asc' => 'Nuoroda A→Ž',
+			'link_desc' => 'Nuoroda Ž→A',
+			'primary' => array(
+				'_' => 'Rikiavimo kriterijus',
+				'help' => 'Daugeliu atvejų rekomenduojama rikiuoti pagal <em>gavimo</em> datą – dėl nuoseklumo ir našumo',
+			),
+			'rand' => 'Atsitiktine tvarka',
+			'secondary' => array(
+				'_' => 'Antrinis rikiavimo kriterijus',
+				'help' => 'Aktualu tik tada, kai pagrindinis rikiavimo kriterijus yra kategorijų ar kanalų pavadinimai',
+			),
+			'title_asc' => 'Pavadinimas A→Ž',
+			'title_desc' => 'Pavadinimas Ž→A',
+			'user_modified_asc' => 'Naudotojo pakeista 1→9',
+			'user_modified_desc' => 'Naudotojo pakeista 9→1',
+		),
+		'starred' => 'Rodyti mėgstamus',
+		'stats' => 'Statistika',
+		'subscription' => 'Prenumeratų tvarkymas',
+		'unread' => 'Rodyti neskaitytus',
+	),
+	'share' => 'Dalintis',
+	'tag' => array(
+		'related' => 'Straipsnio žymos',
+	),
+	'tos' => array(
+		'title' => 'Naudojimosi sąlygos',
+	),
+);

+ 173 - 0
app/i18n/lt/install.php

@@ -0,0 +1,173 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'action' => array(
+		'finish' => 'Užbaigti diegimą',
+		'fix_errors_before' => 'Prieš pereidami prie kito žingsnio, ištaisykite visas klaidas.',
+		'keep_install' => 'Palikti ankstesnę konfigūraciją',
+		'next_step' => 'Pereiti prie kito žingsnio',
+		'reinstall' => 'Įdiegti FreshRSS iš naujo',
+	),
+	'bdd' => array(
+		'_' => 'Duomenų bazė',
+		'conf' => array(
+			'_' => 'Duomenų bazės konfigūracija',
+			'ko' => 'Patikrinkite duomenų bazės konfigūraciją.',
+			'ok' => 'Duomenų bazės konfigūracija išsaugota.',
+		),
+		'host' => 'Serveris (host)',
+		'password' => 'Duomenų bazės slaptažodis',
+		'prefix' => 'Lentelių priešdėlis',
+		'type' => 'Duomenų bazės tipas',
+		'username' => 'Duomenų bazės naudotojo vardas',
+	),
+	'check' => array(
+		'_' => 'Patikros',
+		'already_installed' => 'Aptikome, kad FreshRSS jau įdiegtas!',
+		'cache' => array(
+			'nok' => 'Patikrinkite katalogo <em>%1$s</em> teises naudotojui <em>%2$s</em>. HTTP serveris turi turėti rašymo teisę.',
+			'ok' => 'Podėlio (cache) katalogo teisės tinkamos.',
+		),
+		'ctype' => array(
+			'nok' => 'Nepavyksta rasti reikalingos simbolių tipo tikrinimo bibliotekos (php-ctype).',
+			'ok' => 'Turite reikalingą simbolių tipo tikrinimo biblioteką (ctype).',
+		),
+		'curl' => array(
+			'nok' => 'Nepavyksta rasti reikalingos cURL bibliotekos (php-curl paketas).',
+			'ok' => 'Turite reikalingą cURL biblioteką.',
+		),
+		'data' => array(
+			'nok' => 'Patikrinkite katalogo <em>%1$s</em> teises naudotojui <em>%2$s</em>. HTTP serveris turi turėti rašymo teisę.',
+			'ok' => 'Duomenų (data) katalogo teisės tinkamos.',
+		),
+		'database-connection' => array(
+			'nok' => 'Duomenų bazės ryšio klaida.',
+			'ok' => 'Duomenų bazės ryšys tinkamas.',
+		),
+		'database-table' => array(
+			'nok' => 'Duomenų bazės lentelė „%s“ nepilna.',
+			'ok' => 'Duomenų bazės lentelė „%s“ tinkama.',
+		),
+		'database-tables' => array(
+			'nok' => 'Trūksta kai kurių duomenų bazės lentelių.',
+			'ok' => 'Visos duomenų bazės lentelės yra.',
+		),
+		'database-title' => 'Duomenų bazė',
+		'docroot' => array(
+			'nok' => 'Atrodo, kad jūsų žiniatinklio serverio šakninis katalogas (document root) nenurodo į aplanką <code>./p/</code>. Kiti aplankai, pvz. <code>./data/</code>, gali būti viešai pasiekiami.',
+			'ok' => 'Jūsų žiniatinklio serverio šakninis katalogas teisingai nurodo į aplanką <code>./p/</code>.',
+		),
+		'dom' => array(
+			'nok' => 'Nepavyksta rasti reikalingos bibliotekos DOM naršymui.',
+			'ok' => 'Turite reikalingą biblioteką DOM naršymui.',
+		),
+		'favicons' => array(
+			'nok' => 'Patikrinkite katalogo <em>%1$s</em> teises naudotojui <em>%2$s</em>. HTTP serveris turi turėti rašymo teisę.',
+			'ok' => 'Piktogramų (favicons) katalogo teisės tinkamos.',
+		),
+		'fileinfo' => array(
+			'nok' => 'Nepavyksta rasti rekomenduojamos PHP fileinfo bibliotekos (fileinfo paketas).',
+			'ok' => 'Turite rekomenduojamą PHP fileinfo biblioteką (fileinfo paketas).',
+		),
+		'files' => 'Failų diegimas',
+		'gmp' => array(
+			'nok' => 'Nepavyksta rasti reikalingo GMP plėtinio 32 bitų PHP (php-gmp paketas).',
+			'ok' => 'Turite GMP plėtinį, reikalingą 32 bitų PHP.',
+		),
+		'intl' => array(
+			'nok' => 'Nepavyksta rasti rekomenduojamos bibliotekos php-intl internacionalizacijai.',
+			'ok' => 'Turite rekomenduojamą biblioteką php-intl internacionalizacijai.',
+		),
+		'json' => array(
+			'nok' => 'Nepavyksta rasti reikalingos bibliotekos JSON apdorojimui.',
+			'ok' => 'Turite reikalingą biblioteką JSON apdorojimui.',
+		),
+		'mbstring' => array(
+			'nok' => 'Nepavyksta rasti rekomenduojamos bibliotekos mbstring Unikodui.',
+			'ok' => 'Turite rekomenduojamą biblioteką mbstring Unikodui.',
+		),
+		'pcre' => array(
+			'nok' => 'Nepavyksta rasti reikalingos reguliariųjų reiškinių bibliotekos (php-pcre).',
+			'ok' => 'Turite reikalingą reguliariųjų reiškinių biblioteką (PCRE).',
+		),
+		'pdo-mysql' => array(
+			'nok' => 'Nepavyksta rasti reikalingos PDO tvarkyklės MySQL/MariaDB.',
+		),
+		'pdo-pgsql' => array(
+			'nok' => 'Nepavyksta rasti reikalingos PDO tvarkyklės PostgreSQL.',
+		),
+		'pdo-sqlite' => array(
+			'nok' => 'Nepavyksta rasti PDO tvarkyklės SQLite.',
+			'ok' => 'Turite PDO tvarkyklę SQLite.',
+		),
+		'pdo' => array(
+			'nok' => 'Nepavyksta rasti PDO ar vienos iš palaikomų tvarkyklių (pdo_sqlite, pdo_pgsql, pdo_mysql).',
+			'ok' => 'Turite PDO ir bent vieną iš palaikomų tvarkyklių (pdo_sqlite, pdo_pgsql, pdo_mysql).',
+		),
+		'php' => array(
+			'_' => 'PHP diegimas',
+			'nok' => 'Jūsų PHP versija yra %s, tačiau FreshRSS reikia bent %s versijos.',
+			'ok' => 'Jūsų PHP versija (%s) suderinama su FreshRSS.',
+		),
+		'reload' => 'Tikrinti dar kartą',
+		'tmp' => array(
+			'nok' => 'Patikrinkite katalogo <em>%1$s</em> teises naudotojui <em>%2$s</em>. HTTP serveris turi turėti rašymo teises.',
+			'ok' => 'Laikinojo (temp) katalogo teisės tinkamos.',
+		),
+		'tokens' => array(
+			'nok' => 'Patikrinkite katalogo <em>./data/tokens</em> teises. HTTP serveris turi turėti rašymo teisę',
+			'ok' => 'Prieigos raktų (tokens) katalogo teisės tinkamos.',
+		),
+		'unknown_process_username' => 'nežinomas',
+		'users' => array(
+			'nok' => 'Patikrinkite katalogo <em>%1$s</em> teises naudotojui <em>%2$s</em>. HTTP serveris turi turėti rašymo teises.',
+			'ok' => 'Naudotojų (users) katalogo teisės tinkamos.',
+		),
+		'xml' => array(
+			'nok' => 'Nepavyksta rasti reikalingos bibliotekos XML apdorojimui.',
+			'ok' => 'Turite reikalingą biblioteką XML apdorojimui.',
+		),
+		'zip' => array(
+			'nok' => 'Nepavyksta rasti rekomenduojamo ZIP plėtinio (php-zip paketas).',
+			'ok' => 'Turite rekomenduojamą ZIP plėtinį (php-zip paketas).',
+		),
+	),
+	'conf' => array(
+		'_' => 'Bendroji konfigūracija',
+		'ok' => 'Bendroji konfigūracija išsaugota.',
+	),
+	'congratulations' => 'Sveikiname!',
+	'default_user' => array(
+		'_' => 'Numatytojo naudotojo vardas',
+		'max_char' => '1–39 simboliai: raidės, skaitmenys ir <code>. _ @ -</code>',
+	),
+	'fix_errors_before' => 'Prieš pereidami prie kito žingsnio, ištaisykite klaidas.',
+	'javascript_is_better' => 'FreshRSS malonesnis įjungus „JavaScript“',
+	'js' => array(
+		'confirm_reinstall' => 'Įdiegdami FreshRSS iš naujo prarasite ankstesnę konfigūraciją. Ar tikrai norite tęsti?',
+	),
+	'language' => array(
+		'_' => 'Kalba',
+		'choose' => 'Pasirinkite FreshRSS kalbą',
+		'defined' => 'Kalba nustatyta.',
+	),
+	'missing_applied_migrations' => 'Kažkas nepavyko; turėtumėte rankiniu būdu sukurti tuščią failą <em>%s</em>.',
+	'ok' => 'Diegimas sėkmingas.',
+	'session' => array(
+		'nok' => 'Atrodo, kad žiniatinklio serveris neteisingai sukonfigūruotas slapukams (cookies), kurie reikalingi PHP sesijoms!',
+	),
+	'step' => '%d žingsnis',
+	'steps' => 'Žingsniai',
+	'this_is_the_end' => 'Tai pabaiga',
+	'title' => 'Diegimas · FreshRSS',
+);

+ 10 - 0
app/i18n/lt/plurals.php

@@ -0,0 +1,10 @@
+<?php
+
+// Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);
+// This file is generated by cli/compile.plurals.php.
+// Edit the formula comment and run `make fix-all`.
+
+return array(
+	'nplurals' => 3,
+	'plural' => static fn (int $n): int => ($n % 10 === 1 && $n % 100 !== 11 ? 0 : ($n % 10 >= 2 && ($n % 100 < 10 || $n % 100 >= 20) ? 1 : 2)),
+);

+ 316 - 0
app/i18n/lt/sub.php

@@ -0,0 +1,316 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'api' => array(
+		'documentation' => 'Nukopijuokite šį URL, kad naudotumėte jį išorinėje priemonėje.',
+		'title' => 'API',	// IGNORE
+	),
+	'bookmarklet' => array(
+		'documentation' => 'Nutempkite šį mygtuką į adresyno juostą arba spustelėkite jį dešiniuoju pelės klavišu ir pasirinkite „Įtraukti nuorodą į adresyną“. Tada bet kuriame puslapyje, kurį norite prenumeruoti, spustelėkite mygtuką „Prenumeruoti“.',
+		'label' => 'Prenumeruoti',
+		'title' => 'Adresyno mygtukas (bookmarklet)',
+	),
+	'category' => array(
+		'_' => 'Kategorija',
+		'add' => 'Pridėti kategoriją',
+		'archiving' => 'Archyvavimas',
+		'dynamic_opml' => array(
+			'_' => 'Dinaminis OPML',
+			'help' => 'Nurodykite <a href="http://opml.org/" target="_blank">OPML failo</a> URL, kad ši kategorija būtų dinamiškai užpildyta kanalais',
+		),
+		'empty' => 'Ištuštinti kategoriją',
+		'error' => 'Su šia dinaminio OPML kategorija iškilo problema. Patikrinkite, ar OPML URL vis dar pasiekiamas ir ar neviršytas didžiausias kanalų skaičius vienam naudotojui.',
+		'expand' => 'Išskleisti kategoriją',
+		'information' => 'Informacija',
+		'open' => 'Atverti kategoriją',
+		'opml_url' => 'OPML URL',	// IGNORE
+		'position' => 'Rodymo padėtis',
+		'position_help' => 'Kategorijų rikiavimo tvarkai valdyti',
+		'title' => 'Pavadinimas',
+	),
+	'feed' => array(
+		'accept_cookies' => 'Priimti slapukus',
+		'accept_cookies_help' => 'Leisti kanalo serveriui nustatyti slapukus (saugomi atmintyje tik užklausos trukmei)',
+		'add' => 'Pridėti kanalą',
+		'advanced' => 'Išplėstiniai',
+		'archiving' => 'Archyvavimas',
+		'auth' => array(
+			'configuration' => 'Prisijungimas',
+			'help' => 'Leidžia pasiekti HTTP apsaugotus RSS kanalus',
+			'http' => 'HTTP tapatybės nustatymas',
+			'password' => 'HTTP slaptažodis',
+			'username' => 'HTTP naudotojo vardas',
+		),
+		'change_favicon' => 'Keisti…',
+		'clear_cache' => 'Visada išvalyti podėlį',
+		'content_action' => array(
+			'_' => 'Turinio veiksmas, gaunant straipsnio turinį',
+			'append' => 'Pridėti po esamo turinio',
+			'prepend' => 'Pridėti prieš esamą turinį',
+			'replace' => 'Pakeisti esamą turinį',
+		),
+		'content_retrieval' => 'Turinio gavimas',
+		'css_cookie' => 'Naudoti slapukus, gaunant straipsnio turinį',
+		'css_cookie_help' => 'Pavyzdys: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
+		'css_help' => 'Gauna sutrumpintus RSS kanalus (dėmesio, reikia daugiau laiko!)',
+		'css_path' => 'Straipsnio CSS selektorius originalioje svetainėje',
+		'css_path_filter' => array(
+			'_' => 'Pašalintinų elementų CSS selektorius',
+			'help' => 'CSS selektorius gali būti sąrašas, pvz.: <kbd>footer, aside, p[data-sanitized-class~="menu"]</kbd>',
+		),
+		'description' => 'Aprašymas',
+		'empty' => 'Šis kanalas tuščias. Patikrinkite, ar jis vis dar prižiūrimas.',
+		'error' => 'Su šiuo kanalu iškilo problema. Jei tai kartojasi, patikrinkite, ar jis vis dar pasiekiamas.',
+		'export-as-opml' => array(
+			'download' => 'Atsisiųsti',
+			'help' => 'XML failas (duomenų poaibis. <a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">Žr. dokumentaciją</a>)',
+			'label' => 'Eksportuoti kaip OPML',
+		),
+		'ext_favicon' => 'Nustatyti automatiškai',
+		'favicon_changed_by_ext' => 'Piktogramą nustatė plėtinys <b>%s</b>.',
+		'filteractions' => array(
+			'_' => 'Filtravimo veiksmai',
+			'help' => 'Rašykite po vieną paieškos filtrą eilutėje. Operatoriai – <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">žr. dokumentaciją</a>.',
+			'view_filter' => 'Peržiūrėti filtrus esamiems straipsniams (naujas langas)',
+		),
+		'global_hint' => 'Naudokite <a href="%s">bendrą vaizdą</a>, kad matytumėte, kiek kiekvieno kanalo straipsnių atitinka būseną ar paieškos išraišką',
+		'http_headers' => 'HTTP antraštės',
+		'http_headers_help' => 'Antraštės atskiriamos nauja eilute, o antraštės pavadinimas ir reikšmė – dvitaškiu (pvz.: <kbd><code>Accept: application/atom+xml<br />Authorization: Bearer some-token</code></kbd>).',
+		'icon' => 'Piktograma',
+		'information' => 'Informacija',
+		'keep_adding_feed' => 'Tada pridėti daugiau kanalų',
+		'keep_min' => 'Mažiausias saugotinų straipsnių skaičius',
+		'kind' => array(
+			'_' => 'Kanalo šaltinio tipas',
+			'html_json' => array(
+				'_' => 'HTML + XPath + JSON taškinė notacija (JSON HTML viduje)',
+				'xpath' => array(
+					'_' => 'XPath, skirtas JSON HTML viduje',
+					'help' => 'Pavyzdys: <code>normalize-space(//script[@type="application/json"])</code> (vienas JSON)<br />arba: <code>//script[@type="application/ld+json"]</code> (po vieną JSON objektą kiekvienam straipsniui)',
+				),
+			),
+			'html_xpath' => array(
+				'_' => 'HTML + XPath (žiniatinklio duomenų rinkimas)',
+				'feed_title' => array(
+					'_' => 'kanalo pavadinimas',
+					'help' => 'Pavyzdys: <code>//title</code> arba statinė eilutė: <code>"Mano kanalas"</code>',
+				),
+				'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> – tai standartinė užklausų kalba pažengusiems naudotojams, kurią FreshRSS palaiko žiniatinklio duomenų rinkimui (Web scraping).',
+				'item' => array(
+					'_' => 'naujienų <strong>elementų</strong> radimas<br /><small>(svarbiausia)</small>',
+					'help' => 'Pavyzdys: <code>//div[@class="news-item"]</code>',
+				),
+				'item_author' => array(
+					'_' => 'elemento autorius',
+					'help' => 'Taip pat gali būti statinė eilutė. Pavyzdys: <code>"Anonimas"</code>',
+				),
+				'item_categories' => 'elemento žymos',
+				'item_content' => array(
+					'_' => 'elemento turinys',
+					'help' => 'Pavyzdys, kaip paimti visą elementą: <code>.</code>',
+				),
+				'item_thumbnail' => array(
+					'_' => 'elemento miniatiūra',
+					'help' => 'Pavyzdys: <code>descendant::img/@src</code>',
+				),
+				'item_timeFormat' => array(
+					'_' => 'Pasirinktinis datos / laiko formatas',
+					'help' => 'Neprivaloma. Formatas, palaikomas <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, pvz. <code>d-m-Y H:i:s</code>',
+				),
+				'item_timestamp' => array(
+					'_' => 'elemento data',
+					'help' => 'Rezultatą apdoros <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+				),
+				'item_title' => array(
+					'_' => 'elemento pavadinimas',
+					'help' => 'Ypač naudokite <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">XPath ašį</a> <code>descendant::</code>, pvz. <code>descendant::h2</code>',
+				),
+				'item_uid' => array(
+					'_' => 'unikalus elemento ID',
+					'help' => 'Neprivaloma. Pavyzdys: <code>descendant::div/@data-uri</code>',
+				),
+				'item_uri' => array(
+					'_' => 'elemento nuoroda (URL)',
+					'help' => 'Pavyzdys: <code>descendant::a/@href</code>',
+				),
+				'relative' => 'XPath (santykinis elementui), skirtas:',
+				'xpath' => 'XPath, skirtas:',
+			),
+			'json_dotnotation' => array(
+				'_' => 'JSON (taškinė notacija)',
+				'feed_title' => array(
+					'_' => 'kanalo pavadinimas',
+					'help' => 'Pavyzdys: <code>meta.title</code> arba statinė eilutė: <code>"Mano kanalas"</code>',
+				),
+				'help' => 'JSON taškinė notacija naudoja taškus tarp objektų ir laužtinius skliaustus masyvams (pvz. <code>data.items[0].title</code>)',
+				'item' => array(
+					'_' => 'naujienų <strong>elementų</strong> radimas<br /><small>(svarbiausia)</small>',
+					'help' => 'JSON kelias iki masyvo su elementais, pvz. <code>$</code> arba <code>newsItems</code>',
+				),
+				'item_author' => 'elemento autorius',
+				'item_categories' => 'elemento žymos',
+				'item_content' => array(
+					'_' => 'elemento turinys',
+					'help' => 'Raktas, po kuriuo randamas turinys, pvz. <code>content</code>',
+				),
+				'item_thumbnail' => array(
+					'_' => 'elemento miniatiūra',
+					'help' => 'Pavyzdys: <code>image</code>',
+				),
+				'item_timeFormat' => array(
+					'_' => 'Pasirinktinis datos / laiko formatas',
+					'help' => 'Neprivaloma. Formatas, palaikomas <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, pvz. <code>d-m-Y H:i:s</code>',
+				),
+				'item_timestamp' => array(
+					'_' => 'elemento data',
+					'help' => 'Rezultatą apdoros <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
+				),
+				'item_title' => 'elemento pavadinimas',
+				'item_uid' => 'unikalus elemento ID',
+				'item_uri' => array(
+					'_' => 'elemento nuoroda (URL)',
+					'help' => 'Pavyzdys: <code>permalink</code>',
+				),
+				'json' => 'taškinė notacija, skirta:',
+				'relative' => 'taškinės notacijos kelias (santykinis elementui), skirtas:',
+			),
+			'jsonfeed' => 'JSON Feed',	// IGNORE
+			'rss' => 'RSS / Atom (numatytasis)',
+			'xml_xpath' => 'XML + XPath',	// IGNORE
+		),
+		'last-entry-publication-date' => 'Paskutinis straipsnis paskelbtas <time datetime="%1$s" title="%1$s">%2$s</time>.',
+		'last-entry-received-date' => 'Paskutinis straipsnis gautas <time datetime="%1$s" title="%1$s">%2$s</time>.',
+		'last-error-date' => 'Paskutinis klaidingas atnaujinimas <time datetime="%1$s" title="%1$s">%2$s</time>.',
+		'last-update' => 'Paskutinis sėkmingas atnaujinimas <time datetime="%1$s" title="%1$s">%2$s</time>.',
+		'maintenance' => array(
+			'clear_cache' => 'Išvalyti podėlį',
+			'clear_cache_help' => 'Išvalyti šio kanalo podėlį.',
+			'reload_articles' => 'Įkelti straipsnius iš naujo',
+			'reload_articles_help' => 'Įkelti iš naujo tiek straipsnių ir gauti visą turinį, jei nurodytas selektorius.',
+			'title' => 'Priežiūra',
+		),
+		'max_http_redir' => 'Didžiausias HTTP peradresavimų skaičius',
+		'max_http_redir_help' => 'Nustatykite 0 arba palikite tuščią, kad išjungtumėte, -1 – neribotam peradresavimų skaičiui',
+		'method' => array(
+			'_' => 'HTTP metodas',
+		),
+		'method_help' => 'POST siunta automatiškai palaiko <code>application/x-www-form-urlencoded</code> ir <code>application/json</code>',
+		'method_postparams' => 'POST siunta',
+		'moved_category_deleted' => 'Kai pašalinate kategoriją, jos kanalai automatiškai priskiriami kategorijai <em>%s</em>.',
+		'mute' => array(
+			'_' => 'nutildyti',
+			'state_is_muted' => 'Šis kanalas nutildytas',
+		),
+		'no_selected' => 'Nepasirinktas nė vienas kanalas.',
+		'number_entries' => '%d straipsnių',
+		'open_feed' => 'Atverti kanalą %s',
+		'path_entries_conditions' => 'Turinio gavimo sąlygos',
+		'priority' => array(
+			'_' => 'Matomumas',
+			'category' => 'Rodyti savo kategorijoje',
+			'feed' => 'Rodyti savo kanale',
+			'hidden' => 'Nerodyti',
+			'important' => 'Rodyti tarp svarbių kanalų',
+			'main_stream' => 'Rodyti pagrindiniame sraute',
+		),
+		'proxy' => 'Nustatyti tarpinį serverį (proxy) šiam kanalui gauti',
+		'proxy_help' => 'Pasirinkite protokolą (pvz.: SOCKS5) ir įveskite tarpinio serverio adresą (pvz.: <kbd>127.0.0.1:1080</kbd> arba <kbd>username:password@127.0.0.1:1080</kbd>)',
+		'reset_favicon' => 'Atkurti numatytąją',
+		'selector_preview' => array(
+			'show_raw' => 'Rodyti pirminį kodą',
+			'show_rendered' => 'Rodyti turinį',
+		),
+		'show' => array(
+			'all' => 'Visi kanalai',
+			'error' => 'Rodyti tik kanalus su klaidomis',
+		),
+		'showing' => array(
+			'error' => 'Rodomi tik kanalai su klaidomis',
+		),
+		'ssl_verify' => 'Tikrinti SSL saugumą',
+		'stats' => 'Statistika',
+		'think_to_add' => 'Galite pridėti kanalų.',
+		'timeout' => 'Skirtasis laikas sekundėmis',
+		'title' => 'Pavadinimas',
+		'title_add' => 'Pridėti RSS kanalą',
+		'ttl' => 'Automatiškai neatnaujinti dažniau nei',
+		'unicityCriteria' => array(
+			'_' => 'Straipsnių unikalumo kriterijus',
+			'forced' => '<span title="Blokuoti unikalumo kriterijų, net kai kanale yra pasikartojančių straipsnių">priverstinis</span>',
+			'help' => 'Aktualu netinkamiems kanalams.<br />⚠️ Pakeitus politiką, atsiras dublikatų.',
+			'id' => 'Standartinis ID (numatytasis)',
+			'link' => 'Nuoroda',
+			'sha1:content' => 'Turinys',
+			'sha1:content_published' => 'Turinys + data',
+			'sha1:link_published' => 'Nuoroda + data',
+			'sha1:link_published_title' => 'Nuoroda + data + pavadinimas',
+			'sha1:link_published_title_content' => 'Nuoroda + data + pavadinimas + turinys',
+			'sha1:published' => 'Data',
+			'sha1:title' => 'Pavadinimas',
+			'sha1:title_published' => 'Pavadinimas + data',
+			'sha1:title_published_content' => 'Pavadinimas + data + turinys',
+		),
+		'url' => 'Kanalo URL',
+		'useragent' => 'Nustatyti naudotojo agentą (user agent) šiam kanalui gauti',
+		'useragent_help' => 'Pavyzdys: <kbd>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)</kbd>',
+		'validator' => 'Patikrinti kanalo tinkamumą',
+		'website' => 'Svetainės URL',
+		'websub' => 'Momentiniai pranešimai su WebSub',
+	),
+	'import_export' => array(
+		'export' => array(
+			'_' => 'Eksportuoti',
+			'sqlite' => 'Atsisiųsti naudotojo duomenų bazę kaip SQLite',
+		),
+		'export_labelled' => 'Eksportuoti straipsnius su etiketėmis',
+		'export_opml' => 'Eksportuoti kanalų sąrašą (OPML)',
+		'export_starred' => 'Eksportuoti mėgstamus',
+		'feed_list' => '%s straipsnių sąrašas',
+		'file_to_import' => 'Importuotinas failas<br />(OPML, JSON ar ZIP)',
+		'file_to_import_no_zip' => 'Importuotinas failas<br />(OPML ar JSON)',
+		'import' => 'Importuoti',
+		'starred_list' => 'Mėgstamų straipsnių sąrašas',
+		'title' => 'Importas / eksportas',
+	),
+	'menu' => array(
+		'add' => 'Pridėti kanalą ar kategoriją',
+		'import_export' => 'Importas / eksportas',
+		'label_management' => 'Etikečių tvarkymas',
+		'stats' => array(
+			'idle' => 'Neaktyvūs kanalai',
+			'main' => 'Pagrindinė statistika',
+			'repartition' => 'Straipsnių pasiskirstymas',
+			'unread_dates' => 'Neskaitymo datos',
+		),
+		'subscription_management' => 'Prenumeratų tvarkymas',
+		'subscription_tools' => 'Prenumeratų įrankiai',
+	),
+	'tag' => array(
+		'auto_label' => 'Pridėti šią etiketę naujiems straipsniams',
+		'name' => 'Pavadinimas',
+		'new_name' => 'Naujas pavadinimas',
+		'old_name' => 'Senas pavadinimas',
+	),
+	'title' => array(
+		'_' => 'Prenumeratų tvarkymas',
+		'add' => 'Pridėti kanalą ar kategoriją',
+		'add_category' => 'Pridėti kategoriją',
+		'add_dynamic_opml' => 'Pridėti dinaminį OPML',
+		'add_feed' => 'Pridėti kanalą',
+		'add_label' => 'Pridėti etiketę',
+		'add_opml_category' => 'OPML kategorijos pavadinimas',
+		'delete_label' => 'Ištrinti šią etiketę',
+		'feed_management' => 'RSS kanalų tvarkymas',
+		'subscription_tools' => 'Prenumeratų įrankiai',
+	),
+);

+ 54 - 0
app/i18n/lt/user.php

@@ -0,0 +1,54 @@
+<?php
+
+/******************************************************************************
+ * Each entry of that file can be associated with a comment to indicate its   *
+ * state. When there is no comment, it means the entry is fully translated.   *
+ * The recognized comments are (comment matching is case-insensitive):        *
+ *   + TODO: the entry has never been translated.                             *
+ *   + DIRTY: the entry has been translated but needs to be updated.          *
+ *   + IGNORE: the entry does not need to be translated.                      *
+ * When a comment is not recognized, it is discarded.                         *
+ ******************************************************************************/
+
+return array(
+	'email' => array(
+		'feedback' => array(
+			'invalid' => 'Šis el. pašto adresas netinkamas.',
+			'required' => 'Būtina nurodyti el. pašto adresą.',
+		),
+		'validation' => array(
+			'change_email' => 'Savo el. pašto adresą galite pakeisti <a href="%s">profilio puslapyje</a>.',
+			'email_sent_to' => 'Išsiuntėme jums laišką adresu <strong>%s</strong>. Norėdami patvirtinti adresą, vadovaukitės jame pateiktais nurodymais.',
+			'feedback' => array(
+				'email_failed' => 'Nepavyko išsiųsti jums laiško dėl serverio konfigūracijos klaidos.',
+				'email_sent' => 'Laiškas išsiųstas jūsų adresu.',
+				'error' => 'Nepavyko patvirtinti el. pašto adreso.',
+				'ok' => 'Šis el. pašto adresas patvirtintas.',
+				'unnecessary' => 'Šis el. pašto adresas jau buvo patvirtintas.',
+				'wrong_token' => 'Nepavyko patvirtinti šio el. pašto adreso dėl neteisingo prieigos rakto.',
+			),
+			'need_to' => 'Prieš pradėdami naudotis %s, turite patvirtinti savo el. pašto adresą.',
+			'resend_email' => 'Siųsti laišką pakartotinai',
+			'title' => 'El. pašto adreso patvirtinimas',
+		),
+	),
+	'mailer' => array(
+		'email_need_validation' => array(
+			'body' => 'Ką tik užsiregistravote svetainėje %s, tačiau dar turite patvirtinti savo el. pašto adresą. Tam tiesiog spustelėkite nuorodą:',
+			'title' => 'Turite patvirtinti savo paskyrą',
+			'welcome' => 'Sveiki, %s,',
+		),
+	),
+	'password' => array(
+		'invalid' => 'Slaptažodis netinkamas.',
+	),
+	'tos' => array(
+		'feedback' => array(
+			'invalid' => 'Kad galėtumėte užsiregistruoti, turite sutikti su naudojimosi sąlygomis.',
+		),
+	),
+	'username' => array(
+		'invalid' => 'Šis naudotojo vardas netinkamas.',
+		'taken' => 'Naudotojo vardas %s jau užimtas.',
+	),
+);

+ 1 - 0
app/i18n/lv/gen.php

@@ -213,6 +213,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/nl/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/oc/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/pl/gen.php

@@ -213,6 +213,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/pt-BR/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/pt-PT/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/ru/gen.php

@@ -213,6 +213,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/sk/gen.php

@@ -213,6 +213,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/tr/gen.php

@@ -205,6 +205,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/uk/gen.php

@@ -213,6 +213,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/zh-CN/gen.php

@@ -197,6 +197,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE

+ 1 - 0
app/i18n/zh-TW/gen.php

@@ -199,6 +199,7 @@ return array(
 		'it' => 'Italiano',	// IGNORE
 		'ja' => '日本語',	// IGNORE
 		'ko' => '한국어',	// IGNORE
+		'lt' => 'Lietuvių',	// TODO
 		'lv' => 'Latviešu',	// IGNORE
 		'nl' => 'Nederlands',	// IGNORE
 		'oc' => 'Occitan',	// IGNORE