Merge branch 'libre-tube:master' into master

This commit is contained in:
ձռօռყ_սռĸռօառ 2022-06-13 14:09:43 +05:30 committed by GitHub
commit c4aecb3119
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 2759 additions and 860 deletions

22
.github/tg.py vendored Normal file
View File

@ -0,0 +1,22 @@
import telegram
from tgconfig import TG_TOKEN
from json import load
from time import sleep
f = open('commit.json')
data = load(f)
f.close()
TG_CHAT_ID = "-1001537505605"
bot = telegram.Bot(TG_TOKEN)
bot.send_photo(TG_CHAT_ID, open('alpha.png', 'rb'), f'''*Libretube {data['sha'][0:7]} // Alpha*
{data['commit']['message']}
Signed-off-by: {data['commit']['author']['name']}
''', parse_mode=telegram.ParseMode.MARKDOWN)
bot.send_document(TG_CHAT_ID, open('app-arm64-v8a-debug.apk', 'rb'))
bot.send_document(TG_CHAT_ID, open('app-armeabi-v7a-debug.apk', 'rb'))
bot.send_document(TG_CHAT_ID, open('app-x86_64-debug.apk', 'rb'))
bot.send_document(TG_CHAT_ID, open('app-x86-debug.apk', 'rb'))

42
.github/workflows/tg-bot.yml vendored Normal file
View File

@ -0,0 +1,42 @@
name: Telegram Builder
on:
workflow_dispatch:
push:
paths-ignore:
- "README*.md"
- "fastlane/**"
- "assets/**"
- ".github/**/*.md"
jobs:
debug-builds:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
- uses: actions/setup-python@v3
with:
python-version: '3.x' # Version range or exact version of a Python version to use, using SemVer's version range syntax
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
- name: set up JDK 11
uses: actions/setup-java@v3
with:
java-version: 11
distribution: "temurin"
cache: "gradle"
- name: Build debug APK and run jvm tests
run: ./gradlew assembleDebug
- name: Telegram Bot
run: |
mv app/build/outputs/apk/debug/*.apk .github/
cd .github
curl https://libre-tube.github.io/assets/LibreAlpha.png --output alpha.png
echo "TG_TOKEN = '${{ secrets.TG_TOKEN }}'" > tgconfig.py
curl https://api.github.com/repos/${{ github.repository }}/commits/${{ github.sha }} > commit.json
python -m pip install --upgrade pip
pip install python-telegram-bot
python tg.py

View File

@ -8,6 +8,7 @@
[![Reddit](https://libre-tube.github.io/assets/rd-widget.svg)](https://www.reddit.com/r/Libretube/)
[<img src="https://libre-tube.github.io/assets/fdrload.png" alt="Get it on F-Droid" height="80">](https://f-droid.org/en/packages/com.github.libretube/)
[<img src="https://libre-tube.github.io/assets/izzyload.png" alt="Get it on IzzyOnDroid" height="80">](https://apt.izzysoft.de/fdroid/index/apk/com.github.libretube)
[<img src="https://libre-tube.github.io/assets/ghload.png" alt="Get it on GitHub" height="80">](https://github.com/libre-tube/LibreTube/releases/latest)
[<img src="https://libre-tube.github.io/assets/tgload.png" alt="Get it on GitHub" height="80">](https://t.me/LibreTube)
</div>
@ -49,6 +50,8 @@ WARNING: THIS IS A BETA VERSION, THEREFORE YOU MAY ENCOUNTER BUGS. IF YOU DO, OP
</a>
### Donate
[![Support us on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dlibretubeteam%26type%3Dpatrons&style=for-the-badge)](https://patreon.com/libretubeteam)
**BTC:** `bc1q0hk2smc74ej8fxupfrp05wk867e54e2zztnxfc`
**XMR:** `44txdmy4E5bDzMYQJh1ZSoHbrp1sWfpGa2FYg26L2ya8EaRejPsh42yVrYhepW9P4YWvrqmTZvms35z5FDgqy1xcVewk18d`

View File

@ -53,7 +53,7 @@ class MainActivity : AppCompatActivity() {
CronetHelper.initCronet(this.applicationContext)
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
RetrofitInstance.url =
sharedPreferences.getString("instance", "https://pipedapi.kavin.rocks/")!!
sharedPreferences.getString("selectInstance", "https://pipedapi.kavin.rocks/")!!
SponsorBlockSettings.sponsorBlockEnabled =
sharedPreferences.getBoolean("sb_enabled_key", false)
SponsorBlockSettings.sponsorNotificationsEnabled =

View File

@ -10,9 +10,9 @@ import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.formatShort
import com.github.libretube.fragments.PlayerFragment
import com.github.libretube.obj.StreamItem
import com.github.libretube.util.formatShort
import com.squareup.picasso.Picasso
class ChannelAdapter(private val videoFeed: MutableList<StreamItem>) :

View File

@ -14,10 +14,10 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.MainActivity
import com.github.libretube.R
import com.github.libretube.formatShort
import com.github.libretube.obj.Comment
import com.github.libretube.obj.CommentsPage
import com.github.libretube.util.RetrofitInstance
import com.github.libretube.util.formatShort
import com.squareup.picasso.Picasso
import java.io.IOException
import kotlinx.coroutines.CoroutineScope

View File

@ -10,8 +10,8 @@ import androidx.core.os.bundleOf
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.MainActivity
import com.github.libretube.R
import com.github.libretube.formatShort
import com.github.libretube.obj.Comment
import com.github.libretube.util.formatShort
import com.squareup.picasso.Picasso
class RepliesAdapter(

View File

@ -14,9 +14,9 @@ import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.MainActivity
import com.github.libretube.R
import com.github.libretube.dialogs.VideoOptionsDialog
import com.github.libretube.formatShort
import com.github.libretube.fragments.PlayerFragment
import com.github.libretube.obj.SearchItem
import com.github.libretube.util.formatShort
import com.squareup.picasso.Picasso
class SearchAdapter(

View File

@ -4,17 +4,19 @@ import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AutoCompleteTextView
import android.widget.EditText
import android.widget.TextView
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.fragments.SearchFragment
import com.google.android.material.imageview.ShapeableImageView
class SearchHistoryAdapter(
private val context: Context,
private var historyList: List<String>,
private val editText: AutoCompleteTextView
private val editText: EditText,
private val searchFragment: SearchFragment
) :
RecyclerView.Adapter<SearchHistoryViewHolder>() {
@ -34,17 +36,14 @@ class SearchHistoryAdapter(
holder.v.findViewById<ShapeableImageView>(R.id.delete_history).setOnClickListener {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
historyList = historyList - history
sharedPreferences.edit().putStringSet("search_history", HashSet(historyList))
.apply()
sharedPreferences.edit().putStringSet("search_history", HashSet(historyList)).apply()
notifyDataSetChanged()
}
holder.v.setOnClickListener {
editText.setText(history)
searchFragment.fetchSearch(history)
}
}
}

View File

@ -0,0 +1,43 @@
package com.github.libretube.adapters
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.fragments.SearchFragment
class SearchSuggestionsAdapter(
private var suggestionsList: List<String>,
private var editText: EditText,
private val searchFragment: SearchFragment
) :
RecyclerView.Adapter<SearchSuggestionsViewHolder>() {
override fun getItemCount(): Int {
return suggestionsList.size
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SearchSuggestionsViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val cell = layoutInflater.inflate(R.layout.searchsuggestion_row, parent, false)
return SearchSuggestionsViewHolder(cell)
}
override fun onBindViewHolder(holder: SearchSuggestionsViewHolder, position: Int) {
val suggestion = suggestionsList[position]
val suggestionTextView = holder.v.findViewById<TextView>(R.id.suggestion_text)
suggestionTextView.text = suggestion
holder.v.setOnClickListener {
editText.setText(suggestion)
searchFragment.fetchSearch(editText.text.toString())
}
}
}
class SearchSuggestionsViewHolder(val v: View) : RecyclerView.ViewHolder(v) {
init {
}
}

View File

@ -15,9 +15,9 @@ import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.MainActivity
import com.github.libretube.R
import com.github.libretube.dialogs.VideoOptionsDialog
import com.github.libretube.formatShort
import com.github.libretube.fragments.PlayerFragment
import com.github.libretube.obj.StreamItem
import com.github.libretube.util.formatShort
import com.squareup.picasso.Picasso
class SubscriptionAdapter(

View File

@ -15,9 +15,9 @@ import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.MainActivity
import com.github.libretube.R
import com.github.libretube.dialogs.VideoOptionsDialog
import com.github.libretube.formatShort
import com.github.libretube.fragments.PlayerFragment
import com.github.libretube.obj.StreamItem
import com.github.libretube.util.formatShort
import com.squareup.picasso.Picasso
class TrendingAdapter(

View File

@ -0,0 +1,106 @@
package com.github.libretube.dialogs
import android.app.Dialog
import android.os.Bundle
import android.util.Log
import android.util.TypedValue
import android.view.View
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.core.text.HtmlCompat
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
import com.github.libretube.R
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.textfield.TextInputEditText
import java.net.URL
class CustomInstanceDialog : DialogFragment() {
val TAG = "CustomInstanceDialog"
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return activity?.let {
val builder = MaterialAlertDialogBuilder(it)
val inflater = requireActivity().layoutInflater
val view: View = inflater.inflate(R.layout.dialog_custom_instance, null)
val instanceNameEditText = view.findViewById<TextInputEditText>(R.id.instanceName)
val instanceApiUrlEditText = view.findViewById<TextInputEditText>(R.id.instanceApiUrl)
val addInstanceButton = view.findViewById<Button>(R.id.addInstance)
val cancelButton = view.findViewById<Button>(R.id.cancel)
cancelButton.setOnClickListener {
dismiss()
}
addInstanceButton.setOnClickListener {
val instanceName = instanceNameEditText.text.toString()
val instanceApiUrl = instanceApiUrlEditText.text.toString()
if (instanceName != "" && instanceApiUrl != "") {
try {
// check whether the URL is valid, otherwise catch
val u = URL(instanceApiUrl).toURI()
saveCustomInstance(instanceName, instanceApiUrl)
activity?.recreate()
dismiss()
} catch (e: Exception) {
// invalid URL
Toast.makeText(
context, getString(R.string.invalid_url), Toast.LENGTH_SHORT
).show()
}
} else {
// at least one empty input
Toast.makeText(
context, context?.getString(R.string.empty_instance), Toast.LENGTH_SHORT
).show()
}
}
val typedValue = TypedValue()
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
val appName = HtmlCompat.fromHtml(
"Libre<span style='color:$hexColor';>Tube</span>",
HtmlCompat.FROM_HTML_MODE_COMPACT
)
view.findViewById<TextView>(R.id.title).text = appName
builder.setView(view)
builder.create()
} ?: throw IllegalStateException("Activity cannot be null")
}
private fun saveCustomInstance(instanceName: String, instanceApiUrl: String) {
val sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(requireContext())
// get the names of the other custom instances
var customInstancesNames = try {
sharedPreferences
.getStringSet("custom_instances_name", HashSet())!!.toList()
} catch (e: Exception) {
emptyList()
}
// get the urls of the other custom instances
var customInstancesUrls = try {
sharedPreferences
.getStringSet("custom_instances_url", HashSet())!!.toList()
} catch (e: Exception) {
emptyList()
}
// append new instance to the list
customInstancesNames += instanceName
customInstancesUrls += instanceApiUrl
Log.e(TAG, customInstancesNames.toString())
// save them to the shared preferences
sharedPreferences.edit()
.putStringSet("custom_instances_name", HashSet(customInstancesNames))
.putStringSet("custom_instances_url", HashSet(customInstancesUrls))
.apply()
}
}

View File

@ -16,7 +16,7 @@ class ShareDialog(private val videoId: String) : DialogFragment() {
val sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(requireContext())
val instancePref = sharedPreferences.getString(
"instance",
"selectInstance",
"https://pipedapi.kavin.rocks"
)!!
val instance = "&instance=${URLEncoder.encode(instancePref, "UTF-8")}"

View File

@ -17,9 +17,9 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.github.libretube.R
import com.github.libretube.adapters.ChannelAdapter
import com.github.libretube.formatShort
import com.github.libretube.obj.Subscribe
import com.github.libretube.util.RetrofitInstance
import com.github.libretube.util.formatShort
import com.google.android.material.button.MaterialButton
import com.squareup.picasso.Picasso
import java.io.IOException

View File

@ -48,8 +48,8 @@ import com.github.libretube.adapters.TrendingAdapter
import com.github.libretube.dialogs.AddtoPlaylistDialog
import com.github.libretube.dialogs.DownloadDialog
import com.github.libretube.dialogs.ShareDialog
import com.github.libretube.formatShort
import com.github.libretube.hideKeyboard
import com.github.libretube.obj.ChapterSegment
import com.github.libretube.obj.PipedStream
import com.github.libretube.obj.Segment
import com.github.libretube.obj.Segments
@ -58,6 +58,7 @@ import com.github.libretube.obj.Subscribe
import com.github.libretube.preferences.SponsorBlockSettings
import com.github.libretube.util.CronetHelper
import com.github.libretube.util.RetrofitInstance
import com.github.libretube.util.formatShort
import com.google.android.exoplayer2.C
import com.google.android.exoplayer2.DefaultLoadControl
import com.google.android.exoplayer2.ExoPlayer
@ -80,6 +81,7 @@ import com.google.android.exoplayer2.upstream.DefaultDataSource
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
import com.google.android.exoplayer2.util.RepeatModeUtil
import com.google.android.material.button.MaterialButton
import com.google.android.material.card.MaterialCardView
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.squareup.picasso.Picasso
import java.io.IOException
@ -112,6 +114,7 @@ class PlayerFragment : Fragment() {
private lateinit var motionLayout: MotionLayout
private lateinit var exoPlayer: ExoPlayer
private lateinit var segmentData: Segments
private var relatedStreamsEnabled = true
private lateinit var relDownloadVideo: LinearLayout
@ -259,13 +262,9 @@ class PlayerFragment : Fragment() {
}
}
view.findViewById<com.google.android.material.card.MaterialCardView>(R.id.comments_toggle)
view.findViewById<MaterialCardView>(R.id.comments_toggle)
.setOnClickListener {
commentsRecView.visibility =
if (commentsRecView.isVisible) View.GONE else View.VISIBLE
relatedRecView.visibility =
if (relatedRecView.isVisible) View.GONE else View.VISIBLE
if (!commentsLoaded!!) fetchComments()
toggleComments()
}
// FullScreen button trigger
@ -328,6 +327,14 @@ class PlayerFragment : Fragment() {
GridLayoutManager(view.context, resources.getInteger(R.integer.grid_items))
}
private fun toggleComments() {
commentsRecView.visibility =
if (commentsRecView.isVisible) View.GONE else View.VISIBLE
relatedRecView.visibility =
if (relatedRecView.isVisible) View.GONE else View.VISIBLE
if (!commentsLoaded!!) fetchComments()
}
override fun onDestroy() {
super.onDestroy()
try {
@ -418,13 +425,19 @@ class PlayerFragment : Fragment() {
}
}
}
// check whether related streams are enabled
val sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(requireContext())
relatedStreamsEnabled = sharedPreferences.getBoolean("related_streams_toggle", true)
runOnUiThread {
createExoPlayer(view)
prepareExoPlayerView()
if (response.chapters != null) initializeChapters(response.chapters)
setResolutionAndSubtitles(view, response)
exoPlayer.prepare()
exoPlayer.play()
initializePlayerView(view, response)
if (!relatedStreamsEnabled) toggleComments()
}
}
}
@ -445,7 +458,8 @@ class PlayerFragment : Fragment() {
private fun initializePlayerView(view: View, response: Streams) {
view.findViewById<TextView>(R.id.player_views_info).text =
response.views.formatShort() + " views • " + response.uploadDate
context?.getString(R.string.views, response.views.formatShort()) +
"" + response.uploadDate
view.findViewById<TextView>(R.id.textLike).text = response.likes.formatShort()
val channelImage = view.findViewById<ImageView>(R.id.player_channelImage)
Picasso.get().load(response.uploaderAvatar).into(channelImage)
@ -539,11 +553,12 @@ class PlayerFragment : Fragment() {
}
}
}
relatedRecView.adapter = TrendingAdapter(
response.relatedStreams!!,
childFragmentManager
)
if (relatedStreamsEnabled) {
relatedRecView.adapter = TrendingAdapter(
response.relatedStreams!!,
childFragmentManager
)
}
val description = response.description!!
view.findViewById<TextView>(R.id.player_description).text =
// detect whether the description is html formatted
@ -581,6 +596,12 @@ class PlayerFragment : Fragment() {
}
}
private fun initializeChapters(chapters: List<ChapterSegment>) {
chapters.forEach { chapter ->
Log.e(TAG, chapter.title!!)
}
}
private fun setResolutionAndSubtitles(view: View, response: Streams) {
var videosNameArray: Array<CharSequence> = arrayOf()
videosNameArray += "HLS"

View File

@ -1,7 +1,6 @@
package com.github.libretube.fragments
import android.content.Context
import android.content.DialogInterface
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
@ -12,8 +11,7 @@ import android.view.ViewGroup
import android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.ArrayAdapter
import android.widget.AutoCompleteTextView
import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView.GONE
import android.widget.TextView.OnEditorActionListener
@ -27,12 +25,12 @@ import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.adapters.SearchAdapter
import com.github.libretube.adapters.SearchHistoryAdapter
import com.github.libretube.adapters.SearchSuggestionsAdapter
import com.github.libretube.hideKeyboard
import com.github.libretube.util.RetrofitInstance
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.io.IOException
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import retrofit2.HttpException
@ -42,8 +40,11 @@ class SearchFragment : Fragment() {
private var apiSearchFilter = "all"
private var nextPage: String? = null
private lateinit var searchRecView: RecyclerView
private lateinit var historyRecView: RecyclerView
private lateinit var autoTextView: EditText
private var searchAdapter: SearchAdapter? = null
private var isLoading: Boolean = true
private var isFetchingSearch: Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -62,18 +63,15 @@ class SearchFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
searchRecView = view.findViewById<RecyclerView>(R.id.search_recycler)
searchRecView = view.findViewById(R.id.search_recycler)
historyRecView = view.findViewById(R.id.history_recycler)
autoTextView = view.findViewById(R.id.autoCompleteTextView)
val autoTextView = view.findViewById<AutoCompleteTextView>(R.id.autoCompleteTextView)
val clearSearchButton = view.findViewById<ImageView>(R.id.clearSearch_imageView)
val historyRecycler = view.findViewById<RecyclerView>(R.id.history_recycler)
val filterImageView = view.findViewById<ImageView>(R.id.filterMenu_imageView)
var tempSelectedItem = 0
val sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(requireContext())
clearSearchButton.setOnClickListener {
autoTextView.text.clear()
}
@ -92,53 +90,41 @@ class SearchFragment : Fragment() {
MaterialAlertDialogBuilder(view.context)
.setTitle(getString(R.string.choose_filter))
.setSingleChoiceItems(
filterOptions, selectedFilter,
DialogInterface.OnClickListener { _, id ->
tempSelectedItem = id
}
)
.setSingleChoiceItems(filterOptions, selectedFilter) { _, id ->
tempSelectedItem = id
}
.setPositiveButton(
getString(R.string.okay),
DialogInterface.OnClickListener { _, _ ->
selectedFilter = tempSelectedItem
apiSearchFilter = when (selectedFilter) {
0 -> "all"
1 -> "videos"
2 -> "channels"
3 -> "playlists"
4 -> "music_songs"
5 -> "music_videos"
6 -> "music_albums"
7 -> "music_playlists"
else -> "all"
}
fetchSearch(autoTextView.text.toString())
) { _, _ ->
selectedFilter = tempSelectedItem
apiSearchFilter = when (selectedFilter) {
0 -> "all"
1 -> "videos"
2 -> "channels"
3 -> "playlists"
4 -> "music_songs"
5 -> "music_videos"
6 -> "music_albums"
7 -> "music_playlists"
else -> "all"
}
)
fetchSearch(autoTextView.text.toString())
}
.setNegativeButton(getString(R.string.cancel), null)
.create()
.show()
}
// show search history
searchRecView.visibility = GONE
historyRecycler.visibility = VISIBLE
historyRecycler.layoutManager = LinearLayoutManager(view.context)
val historyList = getHistory()
if (historyList.isNotEmpty()) {
historyRecycler.adapter =
SearchHistoryAdapter(requireContext(), historyList, autoTextView)
}
historyRecView.layoutManager = LinearLayoutManager(view.context)
showHistory()
searchRecView.layoutManager = GridLayoutManager(view.context, 1)
autoTextView.requestFocus()
val imm =
requireContext().getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.showSoftInput(autoTextView, InputMethodManager.SHOW_IMPLICIT)
autoTextView.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(
s: CharSequence?,
@ -150,8 +136,6 @@ class SearchFragment : Fragment() {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (s!! != "") {
searchRecView.visibility = VISIBLE
historyRecycler.visibility = GONE
searchRecView.adapter = null
searchRecView.viewTreeObserver
@ -163,21 +147,13 @@ class SearchFragment : Fragment() {
GlobalScope.launch {
fetchSuggestions(s.toString(), autoTextView)
delay(1000)
fetchSearch(s.toString())
}
}
}
override fun afterTextChanged(s: Editable?) {
if (s!!.isEmpty()) {
searchRecView.visibility = GONE
historyRecycler.visibility = VISIBLE
val historyList = getHistory()
if (historyList.isNotEmpty()) {
historyRecycler.adapter =
SearchHistoryAdapter(requireContext(), historyList, autoTextView)
}
showHistory()
}
}
})
@ -185,45 +161,44 @@ class SearchFragment : Fragment() {
OnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
hideKeyboard()
autoTextView.dismissDropDown()
if (sharedPreferences.getBoolean(
"search_history_toggle",
true
)
) {
val newString = autoTextView.text.toString()
addToHistory(newString)
}
searchRecView.visibility = VISIBLE
historyRecView.visibility = GONE
fetchSearch(autoTextView.text.toString())
return@OnEditorActionListener true
}
false
}
)
autoTextView.setOnItemClickListener { _, _, _, _ ->
hideKeyboard()
}
}
private fun fetchSuggestions(query: String, autoTextView: AutoCompleteTextView) {
lifecycleScope.launchWhenCreated {
val response = try {
RetrofitInstance.api.getSuggestions(query)
} catch (e: IOException) {
println(e)
Log.e(TAG, "IOException, you might not have internet connection")
return@launchWhenCreated
} catch (e: HttpException) {
Log.e(TAG, "HttpException, unexpected response")
return@launchWhenCreated
private fun fetchSuggestions(query: String, autoTextView: EditText) {
fun run() {
lifecycleScope.launchWhenCreated {
searchRecView.visibility = GONE
historyRecView.visibility = VISIBLE
val response = try {
RetrofitInstance.api.getSuggestions(query)
} catch (e: IOException) {
println(e)
Log.e(TAG, "IOException, you might not have internet connection")
return@launchWhenCreated
} catch (e: HttpException) {
Log.e(TAG, "HttpException, unexpected response")
return@launchWhenCreated
}
val suggestionsAdapter =
SearchSuggestionsAdapter(response, autoTextView, this@SearchFragment)
historyRecView.adapter = suggestionsAdapter
}
val adapter =
ArrayAdapter(requireContext(), android.R.layout.simple_list_item_1, response)
autoTextView.setAdapter(adapter)
}
if (!isFetchingSearch) run()
}
private fun fetchSearch(query: String) {
fun fetchSearch(query: String) {
lifecycleScope.launchWhenCreated {
isFetchingSearch = true
hideKeyboard()
Log.e("here", "here")
val response = try {
RetrofitInstance.api.getSearchResults(query, apiSearchFilter)
} catch (e: IOException) {
@ -237,11 +212,15 @@ class SearchFragment : Fragment() {
nextPage = response.nextpage
if (response.items!!.isNotEmpty()) {
runOnUiThread {
historyRecView.visibility = GONE
searchRecView.visibility = VISIBLE
searchAdapter = SearchAdapter(response.items, childFragmentManager)
searchRecView.adapter = searchAdapter
}
}
addToHistory(query)
isLoading = false
isFetchingSearch = false
}
}
@ -286,27 +265,37 @@ class SearchFragment : Fragment() {
hideKeyboard()
}
private fun showHistory() {
searchRecView.visibility = GONE
val historyList = getHistory()
if (historyList.isNotEmpty()) {
historyRecView.adapter =
SearchHistoryAdapter(requireContext(), historyList, autoTextView, this)
historyRecView.visibility = VISIBLE
}
}
private fun addToHistory(query: String) {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
val searchHistoryEnabled = sharedPreferences.getBoolean("search_history_toggle", true)
if (searchHistoryEnabled) {
var historyList = getHistory()
var historyList = getHistory()
if ((historyList.isNotEmpty() && historyList.contains(query)) || query == "") {
return
} else {
historyList = historyList + query
}
if (historyList.isNotEmpty() && query == historyList[historyList.size - 1]) {
return
} else if (query == "") {
return
} else {
historyList = historyList + query
if (historyList.size > 10) {
historyList = historyList.takeLast(10)
}
val set: Set<String> = HashSet(historyList)
sharedPreferences.edit().putStringSet("search_history", set)
.apply()
}
if (historyList.size > 10) {
historyList = historyList.takeLast(10)
}
val set: Set<String> = HashSet(historyList)
sharedPreferences.edit().putStringSet("search_history", set)
.apply()
}
private fun getHistory(): List<String> {

View File

@ -13,7 +13,6 @@ import android.widget.TextView
import androidx.fragment.app.Fragment
import com.github.libretube.BuildConfig
import com.github.libretube.R
import com.github.libretube.util.checkUpdate
import com.google.android.material.dialog.MaterialAlertDialogBuilder
class AboutFragment : Fragment() {
@ -65,10 +64,6 @@ class AboutFragment : Fragment() {
.show()
true
}
val update = view.findViewById<LinearLayout>(R.id.update)
update?.setOnClickListener {
checkUpdate(childFragmentManager)
}
}
private fun openLinkFromHref(link: String) {

View File

@ -19,8 +19,8 @@ class AppearanceSettings : PreferenceFragmentCompat() {
val themeToggle = findPreference<ListPreference>("theme_togglee")
themeToggle?.setOnPreferenceChangeListener { _, _ ->
activity?.recreate()
requireMainActivityRestart = true
ThemeHelper().restartMainActivity(requireContext())
true
}

View File

@ -0,0 +1,335 @@
package com.github.libretube.preferences
import android.Manifest
import android.content.ContentResolver
import android.content.Context
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.widget.TextView
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.app.ActivityCompat.recreate
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import com.github.libretube.R
import com.github.libretube.dialogs.CustomInstanceDialog
import com.github.libretube.dialogs.LoginDialog
import com.github.libretube.requireMainActivityRestart
import com.github.libretube.util.RetrofitInstance
import java.io.IOException
import java.io.InputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
import org.chromium.base.ThreadUtils.runOnUiThread
import org.json.JSONObject
import org.json.JSONTokener
import retrofit2.HttpException
class InstanceSettings : PreferenceFragmentCompat() {
val TAG = "InstanceSettings"
override fun onCreate(savedInstanceState: Bundle?) {
MainSettings.getContent =
registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? ->
if (uri != null) {
try {
// Open a specific media item using ParcelFileDescriptor.
val resolver: ContentResolver =
requireActivity()
.contentResolver
// "rw" for read-and-write;
// "rwt" for truncating or overwriting existing file contents.
// val readOnlyMode = "r"
// uri - I have got from onActivityResult
val type = resolver.getType(uri)
var inputStream: InputStream? = resolver.openInputStream(uri)
val channels = ArrayList<String>()
if (type == "application/json") {
val json = inputStream?.bufferedReader()?.readLines()?.get(0)
val jsonObject = JSONTokener(json).nextValue() as JSONObject
Log.e(TAG, jsonObject.getJSONArray("subscriptions").toString())
for (
i in 0 until jsonObject.getJSONArray("subscriptions")
.length()
) {
var url =
jsonObject.getJSONArray("subscriptions").getJSONObject(i)
.getString("url")
url = url.replace("https://www.youtube.com/channel/", "")
Log.e(TAG, url)
channels.add(url)
}
} else {
if (type == "application/zip") {
val zis = ZipInputStream(inputStream)
var entry: ZipEntry? = zis.nextEntry
while (entry != null) {
if (entry.name.endsWith(".csv")) {
inputStream = zis
break
}
entry = zis.nextEntry
}
}
inputStream?.bufferedReader()?.readLines()?.forEach {
if (it.isNotBlank()) {
val channelId = it.substringBefore(",")
if (channelId.length == 24)
channels.add(channelId)
}
}
}
inputStream?.close()
subscribe(channels)
} catch (e: Exception) {
Log.e(TAG, e.toString())
Toast.makeText(
context,
R.string.error,
Toast.LENGTH_SHORT
).show()
}
}
}
super.onCreate(savedInstanceState)
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.instance_settings, rootKey)
val topBarTextView = activity?.findViewById<TextView>(R.id.topBar_textView)
topBarTextView?.text = getString(R.string.instance)
val instance = findPreference<ListPreference>("selectInstance")
// fetchInstance()
initCustomInstances()
instance?.setOnPreferenceChangeListener { _, newValue ->
requireMainActivityRestart = true
RetrofitInstance.url = newValue.toString()
RetrofitInstance.lazyMgr.reset()
logout()
true
}
val customInstance = findPreference<Preference>("customInstance")
customInstance?.setOnPreferenceClickListener {
val newFragment = CustomInstanceDialog()
newFragment.show(childFragmentManager, "CustomInstanceDialog")
true
}
val clearCustomInstances = findPreference<Preference>("clearCustomInstances")
clearCustomInstances?.setOnPreferenceClickListener {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
sharedPreferences.edit()
.remove("custom_instances_name")
.remove("custom_instances_url")
.commit()
activity?.recreate()
true
}
val login = findPreference<Preference>("login_register")
login?.setOnPreferenceClickListener {
requireMainActivityRestart = true
val newFragment = LoginDialog()
newFragment.show(childFragmentManager, "Login")
true
}
val importFromYt = findPreference<Preference>("import_from_yt")
importFromYt?.setOnPreferenceClickListener {
val sharedPref = context?.getSharedPreferences("token", Context.MODE_PRIVATE)
val token = sharedPref?.getString("token", "")!!
// check StorageAccess
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Log.d("myz", "" + Build.VERSION.SDK_INT)
if (ContextCompat.checkSelfPermission(
this.requireContext(),
Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this.requireActivity(),
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.MANAGE_EXTERNAL_STORAGE
),
1
) // permission request code is just an int
} else if (token != "") {
MainSettings.getContent.launch("*/*")
} else {
Toast.makeText(context, R.string.login_first, Toast.LENGTH_SHORT).show()
}
} else {
if (ActivityCompat.checkSelfPermission(
requireContext(),
Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED ||
ActivityCompat.checkSelfPermission(
requireContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this.requireActivity(),
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
),
1
)
} else if (token != "") {
MainSettings.getContent.launch("*/*")
} else {
Toast.makeText(context, R.string.login_first, Toast.LENGTH_SHORT).show()
}
}
true
}
}
private fun initCustomInstances() {
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
// get the names of the custom instances
val customInstancesNames = try {
sharedPreferences
.getStringSet("custom_instances_name", HashSet())!!.toList()
} catch (e: Exception) {
emptyList()
}
// get the urls of the custom instances
val customInstancesUrls = try {
sharedPreferences
.getStringSet("custom_instances_url", HashSet())!!.toList()
} catch (e: Exception) {
emptyList()
}
val instanceNames = resources.getStringArray(R.array.instances) + customInstancesNames
val instanceValues = resources.getStringArray(R.array.instancesValue) + customInstancesUrls
// add custom instances to the list preference
val instance = findPreference<ListPreference>("selectInstance")
instance?.entries = instanceNames
instance?.entryValues = instanceValues
instance?.summaryProvider =
Preference.SummaryProvider<ListPreference> { preference ->
val text = preference.entry
if (TextUtils.isEmpty(text)) {
"kavin.rocks (Official)"
} else {
text
}
}
}
private fun logout() {
val sharedPref = context?.getSharedPreferences("token", Context.MODE_PRIVATE)
val token = sharedPref?.getString("token", "")
if (token != "") {
with(sharedPref!!.edit()) {
putString("token", "")
apply()
}
Toast.makeText(context, R.string.loggedout, Toast.LENGTH_SHORT).show()
}
}
private fun fetchInstance() {
lifecycleScope.launchWhenCreated {
val response = try {
RetrofitInstance.api.getInstances("https://instances.tokhmi.xyz/")
} catch (e: IOException) {
println(e)
Log.e("settings", "IOException, you might not have internet connection")
return@launchWhenCreated
} catch (e: HttpException) {
Log.e("settings", "HttpException, unexpected response $e")
return@launchWhenCreated
} catch (e: Exception) {
Log.e("settings", e.toString())
return@launchWhenCreated
}
val listEntries: MutableList<String> = ArrayList()
val listEntryValues: MutableList<String> = ArrayList()
for (item in response) {
listEntries.add(item.name!!)
listEntryValues.add(item.api_url!!)
}
// add custom instances to the list
val entries = listEntries.toTypedArray<CharSequence>()
val entryValues = listEntryValues.toTypedArray<CharSequence>()
runOnUiThread {
val instance = findPreference<ListPreference>("selectInstance")
instance?.entries = entries
instance?.entryValues = entryValues
instance?.summaryProvider =
Preference.SummaryProvider<ListPreference> { preference ->
val text = preference.entry
if (TextUtils.isEmpty(text)) {
"kavin.rocks (Official)"
} else {
text
}
}
}
}
}
private fun Fragment?.runOnUiThread(action: () -> Unit) {
this ?: return
if (!isAdded) return // Fragment not attached to an Activity
activity?.runOnUiThread(action)
}
private fun subscribe(channels: List<String>) {
fun run() {
lifecycleScope.launchWhenCreated {
val response = try {
val sharedPref =
context?.getSharedPreferences("token", Context.MODE_PRIVATE)
RetrofitInstance.api.importSubscriptions(
false,
sharedPref?.getString("token", "")!!,
channels
)
} catch (e: IOException) {
Log.e(TAG, "IOException, you might not have internet connection")
return@launchWhenCreated
} catch (e: HttpException) {
Log.e(TAG, "HttpException, unexpected response$e")
return@launchWhenCreated
}
if (response.message == "ok") {
Toast.makeText(
context,
R.string.importsuccess,
Toast.LENGTH_SHORT
).show()
}
}
}
run()
}
}

View File

@ -1,37 +1,17 @@
package com.github.libretube.preferences
import android.Manifest
import android.content.ContentResolver
import android.content.Context
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import com.github.libretube.BuildConfig
import com.github.libretube.R
import com.github.libretube.dialogs.LoginDialog
import com.github.libretube.isCurrentViewMainSettings
import com.github.libretube.requireMainActivityRestart
import com.github.libretube.util.RetrofitInstance
import com.github.libretube.util.ThemeHelper
import java.io.IOException
import java.io.InputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
import org.json.JSONObject
import org.json.JSONTokener
import retrofit2.HttpException
import com.github.libretube.util.checkUpdate
class MainSettings : PreferenceFragmentCompat() {
val TAG = "SettingsFragment"
@ -40,76 +20,6 @@ class MainSettings : PreferenceFragmentCompat() {
lateinit var getContent: ActivityResultLauncher<String>
}
override fun onCreate(savedInstanceState: Bundle?) {
getContent =
registerForActivityResult(ActivityResultContracts.GetContent()) { uri: Uri? ->
if (uri != null) {
try {
// Open a specific media item using ParcelFileDescriptor.
val resolver: ContentResolver =
requireActivity()
.contentResolver
// "rw" for read-and-write;
// "rwt" for truncating or overwriting existing file contents.
// val readOnlyMode = "r"
// uri - I have got from onActivityResult
val type = resolver.getType(uri)
var inputStream: InputStream? = resolver.openInputStream(uri)
val channels = ArrayList<String>()
if (type == "application/json") {
val json = inputStream?.bufferedReader()?.readLines()?.get(0)
val jsonObject = JSONTokener(json).nextValue() as JSONObject
Log.e(TAG, jsonObject.getJSONArray("subscriptions").toString())
for (
i in 0 until jsonObject.getJSONArray("subscriptions")
.length()
) {
var url =
jsonObject.getJSONArray("subscriptions").getJSONObject(i)
.getString("url")
url = url.replace("https://www.youtube.com/channel/", "")
Log.e(TAG, url)
channels.add(url)
}
} else {
if (type == "application/zip") {
val zis = ZipInputStream(inputStream)
var entry: ZipEntry? = zis.nextEntry
while (entry != null) {
if (entry.name.endsWith(".csv")) {
inputStream = zis
break
}
entry = zis.nextEntry
}
}
inputStream?.bufferedReader()?.readLines()?.forEach {
if (it.isNotBlank()) {
val channelId = it.substringBefore(",")
if (channelId.length == 24)
channels.add(channelId)
}
}
}
inputStream?.close()
subscribe(channels)
} catch (e: Exception) {
Log.e(TAG, e.toString())
Toast.makeText(
context,
R.string.error,
Toast.LENGTH_SHORT
).show()
}
}
}
super.onCreate(savedInstanceState)
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings, rootKey)
@ -125,27 +35,10 @@ class MainSettings : PreferenceFragmentCompat() {
true
}
val instance = findPreference<ListPreference>("instance")
fetchInstance()
instance?.setOnPreferenceChangeListener { _, newValue ->
RetrofitInstance.url = newValue.toString()
RetrofitInstance.lazyMgr.reset()
val sharedPref = context?.getSharedPreferences("token", Context.MODE_PRIVATE)
if (sharedPref?.getString("token", "") != "") {
with(sharedPref!!.edit()) {
putString("token", "")
apply()
}
Toast.makeText(context, R.string.loggedout, Toast.LENGTH_SHORT).show()
}
true
}
val login = findPreference<Preference>("login_register")
login?.setOnPreferenceClickListener {
requireMainActivityRestart = true
val newFragment = LoginDialog()
newFragment.show(childFragmentManager, "Login")
val instance = findPreference<Preference>("instance")
instance?.setOnPreferenceClickListener {
val newFragment = InstanceSettings()
navigateSettings(newFragment)
true
}
@ -156,8 +49,8 @@ class MainSettings : PreferenceFragmentCompat() {
true
}
val sponsorblock = findPreference<Preference>("sponsorblock")
sponsorblock?.setOnPreferenceClickListener {
val sponsorBlock = findPreference<Preference>("sponsorblock")
sponsorBlock?.setOnPreferenceClickListener {
val newFragment = SponsorBlockSettings()
navigateSettings(newFragment)
true
@ -177,56 +70,10 @@ class MainSettings : PreferenceFragmentCompat() {
true
}
val importFromYt = findPreference<Preference>("import_from_yt")
importFromYt?.setOnPreferenceClickListener {
val sharedPref = context?.getSharedPreferences("token", Context.MODE_PRIVATE)
val token = sharedPref?.getString("token", "")!!
// check StorageAccess
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
Log.d("myz", "" + Build.VERSION.SDK_INT)
if (ContextCompat.checkSelfPermission(
this.requireContext(),
Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this.requireActivity(),
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.MANAGE_EXTERNAL_STORAGE
),
1
) // permission request code is just an int
} else if (token != "") {
getContent.launch("*/*")
} else {
Toast.makeText(context, R.string.login_first, Toast.LENGTH_SHORT).show()
}
} else {
if (ActivityCompat.checkSelfPermission(
requireContext(),
Manifest.permission.READ_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED ||
ActivityCompat.checkSelfPermission(
requireContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this.requireActivity(),
arrayOf(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
),
1
)
} else if (token != "") {
getContent.launch("*/*")
} else {
Toast.makeText(context, R.string.login_first, Toast.LENGTH_SHORT).show()
}
}
val update = findPreference<Preference>("update")
update?.title = getString(R.string.version, BuildConfig.VERSION_NAME)
update?.setOnPreferenceClickListener {
checkUpdate(childFragmentManager)
true
}
}
@ -237,80 +84,4 @@ class MainSettings : PreferenceFragmentCompat() {
.replace(R.id.settings, newFragment)
.commitNow()
}
private fun fetchInstance() {
lifecycleScope.launchWhenCreated {
val response = try {
RetrofitInstance.api.getInstances("https://instances.tokhmi.xyz/")
} catch (e: IOException) {
println(e)
Log.e("settings", "IOException, you might not have internet connection")
return@launchWhenCreated
} catch (e: HttpException) {
Log.e("settings", "HttpException, unexpected response $e")
return@launchWhenCreated
} catch (e: Exception) {
Log.e("settings", e.toString())
return@launchWhenCreated
}
val listEntries: MutableList<String> = ArrayList()
val listEntryValues: MutableList<String> = ArrayList()
for (item in response) {
listEntries.add(item.name!!)
listEntryValues.add(item.api_url!!)
}
val entries = listEntries.toTypedArray<CharSequence>()
val entryValues = listEntryValues.toTypedArray<CharSequence>()
runOnUiThread {
val instance = findPreference<ListPreference>("instance")
instance?.entries = entries
instance?.entryValues = entryValues
instance?.summaryProvider =
Preference.SummaryProvider<ListPreference> { preference ->
val text = preference.entry
if (TextUtils.isEmpty(text)) {
"kavin.rocks (Official)"
} else {
text
}
}
}
}
}
private fun Fragment?.runOnUiThread(action: () -> Unit) {
this ?: return
if (!isAdded) return // Fragment not attached to an Activity
activity?.runOnUiThread(action)
}
private fun subscribe(channels: List<String>) {
fun run() {
lifecycleScope.launchWhenCreated {
val response = try {
val sharedPref =
context?.getSharedPreferences("token", Context.MODE_PRIVATE)
RetrofitInstance.api.importSubscriptions(
false,
sharedPref?.getString("token", "")!!,
channels
)
} catch (e: IOException) {
Log.e(TAG, "IOException, you might not have internet connection")
return@launchWhenCreated
} catch (e: HttpException) {
Log.e(TAG, "HttpException, unexpected response$e")
return@launchWhenCreated
}
if (response.message == "ok") {
Toast.makeText(
context,
R.string.importsuccess,
Toast.LENGTH_SHORT
).show()
}
}
}
run()
}
}

View File

@ -1,4 +1,4 @@
package com.github.libretube
package com.github.libretube.util
import java.math.BigDecimal
import java.math.RoundingMode

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="?android:attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/black"
android:pathData="M4,6L2,6v14c0,1.1 0.9,2 2,2h14v-2L4,20L4,6zM20,2L8,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM19,11h-4v4h-2v-4L9,11L9,9h4L13,5h2v4h4v2z" />
</vector>

View File

@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="420.83"
android:viewportHeight="420.83"
android:tint="?android:attr/colorControlNormal">
<path
android:fillColor="#FF000000"
android:pathData="M210.31,32.5C164.41,32.5 120.8,50 87.53,81.77 54.37,113.43 34.86,155.97 32.62,201.54c-0.11,2.31 0.72,4.57 2.32,6.25 1.6,1.68 3.81,2.63 6.13,2.63l38.23,0c4.46,0 8.15,-3.46 8.44,-7.92 4.12,-64.44 57.96,-114.92 122.58,-114.92 67.73,0 122.83,55.1 122.83,122.84 0,67.73 -55.1,122.84 -122.83,122.84 -15.31,0 -30.25,-2.78 -44.39,-8.26l14.68,-13.04c2.27,-1.99 3.31,-5.04 2.72,-8.01 -0.59,-2.96 -2.71,-5.39 -5.57,-6.36l-95.54,-27.52c-2.86,-0.97 -6.02,-0.34 -8.29,1.65 -2.27,1.99 -3.31,5.04 -2.72,8L91.44,373.38c0.59,2.96 2.71,5.39 5.57,6.36 2.86,0.97 6.02,0.34 8.29,-1.65l15.73,-13.78c27.01,15.7 57.88,24.01 89.27,24.01 98.1,0 177.91,-79.81 177.91,-177.91C388.22,112.31 308.41,32.5 210.31,32.5Z"
android:strokeWidth="1" />
<path
android:fillColor="#FF000000"
android:pathData="m197.48,233.65l100.2,0c2.33,0 4.23,-1.9 4.23,-4.23l0,-25.37c0,-2.33 -1.9,-4.23 -4.23,-4.23l-70.6,0l0,-76.94c0,-2.33 -1.9,-4.23 -4.23,-4.23l-25.37,0c-2.33,0 -4.23,1.9 -4.23,4.23l0,106.54c0,2.33 1.9,4.23 4.23,4.23z"
android:strokeWidth="1" />
</vector>

View File

@ -11,7 +11,7 @@
android:id="@+id/back_imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginLeft="6dp"
android:layout_marginVertical="10dp"
android:backgroundTint="@android:color/transparent"
android:src="@drawable/ic_arrow_back" />

View File

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:gravity="center"
android:layout_margin="10dp"
android:textSize="20sp" />
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false"
android:layout_marginTop="16dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="4dp"
app:boxCornerRadiusBottomStart="15dp"
app:boxCornerRadiusBottomEnd="15dp"
app:boxCornerRadiusTopEnd="15dp"
app:boxCornerRadiusTopStart="15dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/instanceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/instance_name"
android:inputType="text"
android:padding="12dp" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:hintEnabled="false"
android:layout_marginTop="16dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
app:boxCornerRadiusBottomStart="15dp"
app:boxCornerRadiusBottomEnd="15dp"
app:boxCornerRadiusTopEnd="15dp"
app:boxCornerRadiusTopStart="15dp"
>
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/instanceApiUrl"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/instance_api_url"
android:padding="12dp" />
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="end">
<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:layout_gravity="end"
android:backgroundTint="@android:color/transparent"
android:textColor="?attr/colorPrimary"
android:textSize="14sp"
android:padding="8dp"
android:layout_marginBottom="8dp"
style="?android:attr/buttonBarButtonStyle" />
<Button
android:id="@+id/addInstance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/addInstance"
android:layout_gravity="end"
android:backgroundTint="@android:color/transparent"
android:textColor="?attr/colorPrimary"
android:textSize="14sp"
android:padding="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
style="?android:attr/buttonBarButtonStyle" />
</LinearLayout>
</LinearLayout>

View File

@ -39,7 +39,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
android:paddingHorizontal="20dp" android:paddingVertical="10dp">
<TextView
android:layout_width="match_parent"
@ -59,7 +59,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
android:paddingHorizontal="20dp" android:paddingVertical="10dp">
<TextView
android:layout_width="match_parent"
@ -79,7 +79,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
android:paddingHorizontal="20dp" android:paddingVertical="10dp">
<TextView
android:layout_width="match_parent"
@ -99,7 +99,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
android:paddingHorizontal="20dp" android:paddingVertical="10dp">
<TextView
android:layout_width="match_parent"
@ -119,7 +119,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
android:paddingHorizontal="20dp" android:paddingVertical="10dp">
<TextView
android:layout_width="match_parent"
@ -134,26 +134,6 @@
</LinearLayout>
<LinearLayout
android:id="@+id/update"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/update"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/update_summary" />
</LinearLayout>
</LinearLayout>
</ScrollView>

View File

@ -42,12 +42,11 @@
android:background="@android:color/transparent"
app:hintEnabled="false">
<AutoCompleteTextView
<EditText
android:id="@+id/autoCompleteTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:dropDownWidth="match_parent"
android:hint="@string/search_hint"
android:imeOptions="actionSearch"
android:inputType="text"

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:paddingVertical="6dp"
android:background="?android:attr/selectableItemBackground">
<ImageView
android:id="@+id/search_icon"
android:layout_width="18dp"
android:layout_height="18dp"
android:src="@drawable/ic_search"
android:layout_marginTop="3dp"
android:layout_marginHorizontal="5dp" />
<TextView
android:id="@+id/suggestion_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_gravity="center" />
</LinearLayout>

View File

@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="Search"
android:title="@string/search_hint"
android:icon="@drawable/ic_search"
android:id="@+id/action_search"
app:showAsAction="always" />

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="yes">Bəli</string>
<string name="choose_quality_dialog">Keyfiyyəti Seçin:</string>
<string name="choose_quality_dialog">Keyfiyyət</string>
<string name="search_hint">Axtarın</string>
<string name="videos">Videolar</string>
<string name="subscribe">Abunə Olun</string>
@ -17,15 +17,15 @@
<string name="cancel">İmtina</string>
<string name="loggedIn">Daxil oldunuz.</string>
<string name="loggedout">Çıxıldı.</string>
<string name="registered">Qeydiyyatdan keçibsiz.İndi kanallara abunə ola bilərsiniz.</string>
<string name="registered">Qeydiyyatdan keçibsiniz.İndi kanallara abunə ola bilərsiniz.</string>
<string name="already_logged_in">Artıq daxil olmusunuz.İstəsəniz hesabınızdan çıxa bilərsiniz.</string>
<string name="login_first">Zəhmət olmasa daxil olun və yenidən cəhd edin!</string>
<string name="login_first">Zəhmət olmasa daxil olun və yenidən cəhd edin.</string>
<string name="startpage">Ev</string>
<string name="subscriptions">Abunəliklər</string>
<string name="library">Kitabxana</string>
<string name="instances">Server seçin</string>
<string name="customInstance">Fərdi server əlavə edin</string>
<string name="region">Məkan Seçin</string>
<string name="customInstance">Fərdi server</string>
<string name="region">Məkan</string>
<string name="all">Hamısı</string>
<string name="choose_filter">Axtarış filtrini seçin</string>
<string name="channels">Kanallar</string>
@ -40,33 +40,33 @@
<string name="music_playlists">YT Musiqi Pleylistləri</string>
<string name="defaultTab">Defolt Tab</string>
<string name="sponsorblock">SponsorBlok</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app/ saytından API istifadə edir</string>
<string name="category_intro_description">Aktual məzmunu olmayan bir aralıq.Fasilə, statik çərçivə, təkrarlanan animasiya ola bilər. Bu məlumatı ehtiva edən keçidlər üçün istifadə edilməməlidir.</string>
<string name="category_outro">Bitiş Kartları/Kanal Nişanı</string>
<string name="category_outro_description">YouTube bitiş kartları göründüyü zaman. Məlumatla nəticə çıxarmaq üçün deyil.</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app API istifadə edir</string>
<string name="category_intro_description">Həqiqi məzmunu olmayan aralıq. Fasilə, statik çərçivə, təkrarlanan animasiya ola bilər. Məlumat ehtiva edən keçidlər üçün istifadə edilməməlidir.</string>
<string name="category_outro">Son kartlar və kanal nişanı</string>
<string name="category_outro_description">Bitişdən sonra məlumat. Məlumatla nəticə çıxarmaq üçün deyil.</string>
<string name="category_segments">Seqmentlər</string>
<string name="category_sponsor">Sponsor</string>
<string name="category_selfpromo">Ödənişsiz/Özünü Reklam</string>
<string name="category_selfpromo_description">Ödənişsiz və ya özünü reklam istisna olmaqla, \"sponsor\" kimi. Buraya mallar, ianələr və ya onların kiminlə əməkdaşlıq etdiyi şəxslər barədə məlumatlar haqqında bölmələr daxildir.</string>
<string name="category_interaction_description">Bəyənin, abunə olun və ya məzmunun ortasında onları izləmək üçün qısa xatırlatma olduqda. Əgər uzun və ya konkret bir şey haqqındadırsa, bunun əvəzinə \"Özünü reklam\" lazımdır.</string>
<string name="category_selfpromo_description">Ödənişsiz və ya özünü reklam istisna olmaqla, \"sponsor\" kimi. Buraya mallar, ianələr və ya onların kiminlə əməkdaşlıq etdiyi barədə məlumatlar haqqında bölmələr daxildir.</string>
<string name="category_interaction_description">Bəyənmək, abunə olmaq və ya məzmunun ortasında izləmək üçün qısa xatırlatma olduqda. Əgər uzun və ya konkret bir şey haqqındadırsa, bunun əvəzinə özünü reklam lazımdır.</string>
<string name="license">Lisenziya</string>
<string name="emptyPlaylistName">Pleylist adı boş ola bilməz</string>
<string name="success">Uğurlu oldu!</string>
<string name="success">Bitdi.</string>
<string name="comments">Şərhlər</string>
<string name="noInternet">İnternet Bağlantısı Yoxdur</string>
<string name="noInternet">Əvvəlcə İnternetə Qoşulun.</string>
<string name="retry">Yenidən Cəhd Edin</string>
<string name="segment_skipped">Seqment ötürüldü</string>
<string name="sponsorblock_state">Aktivləşdirildi</string>
<string name="sponsorblock_state">Açıq</string>
<string name="category_sponsor_description">Ödənişli reklam, yönləndirmə və birbaşa reklamlar. Özünü tanıtmaq və ya bəyəndikləri səbəblərə/yaradıcılara/veb-saytlara/məhsullara pulsuz çağırışlar üçün deyil.</string>
<string name="category_interaction">İnteraksiya Xatırlatma (Abunə olun)</string>
<string name="category_interaction">İnteraksiya xatırlatma(bəyən və abunə ol)</string>
<string name="category_intro">Fasilə/Giriş Animasiyası</string>
<string name="login_register">Daxil olun/Qeydiyyatdan keçin</string>
<string name="login_register">Daxil olun/qeydiyyatdan keçin</string>
<string name="please_login">Zəhmət olmasa əvvəlcə tənzimləmələrdə daxil olun və ya qeydiyyatdan keçin.</string>
<string name="importsuccess">Abunə Olundu</string>
<string name="subscribeIsEmpty">Əvvəlcə bəzi kanallara abunə olun.</string>
<string name="cannotDownload">Bu yayımı endirmək mümkün deyil.</string>
<string name="dlcomplete">Endirmə tamamlandı.</string>
<string name="dlisinprogress">Digər endirmə hələdə davam edir. Zəhmət olmasa, bitənə qədər gözləyin.</string>
<string name="dlisinprogress">Bütün endirmələr bitənə qədər gözləyin…</string>
<string name="downloadfailed">Endirmək alınmadı.</string>
<string name="vlc">VLC-də Açın</string>
<string name="vlcerror">VLC-də açmaq mümkün deyil. O, quraşdırılmamış ola bilər.</string>
@ -77,67 +77,96 @@
<string name="unknown_error">Şəbəkə xətası.</string>
<string name="error">Nəsə xəta baş verdi.</string>
<string name="empty">Siz istifadəçi adı və şifrə daxil etməlisiniz.</string>
<string name="notgmail">Bu sizin Gmail hesabınız deyil.</string>
<string name="notgmail">Bu, LibreTube hesabı üçündür.</string>
<string name="defres">Defolt video keyfiyyəti</string>
<string name="grid">Şəbəkə sütunları</string>
<string name="emptyList">Burada heç nə yoxdur.</string>
<string name="deletePlaylist">Pleylisti silin</string>
<string name="areYouSure">Pleylist silinsin\?</string>
<string name="createPlaylist">Pleylist yaradın</string>
<string name="playlistCreated">Pleylist yaradıldı!</string>
<string name="playlistName">Pleylist Adı</string>
<string name="playlistCreated">Pleylist yaradıldı.</string>
<string name="playlistName">Pleylist adı</string>
<string name="addToPlaylist">Pleylistə əlavə edin</string>
<string name="fail">Uğursuz oldu :(</string>
<string name="about">Haqqında</string>
<string name="changeLanguage">Dili Dəyişdirin</string>
<string name="systemLanguage">Sistem Dili</string>
<string name="systemDefault">Sistem Defoltu</string>
<string name="lightTheme">ıq Mövzu</string>
<string name="darkTheme">Tünd Mövzu</string>
<string name="changeLanguage">Dil</string>
<string name="systemLanguage">Sistem</string>
<string name="systemDefault">Sistem</string>
<string name="lightTheme">Parlaq işıq</string>
<string name="darkTheme">Zülmət qaranlıq</string>
<string name="subscribers">%1$s abunəçi</string>
<string name="videoCount">%1$s video</string>
<string name="settings">Tənzimləmələr</string>
<string name="location">Məkan</string>
<string name="instance">Server</string>
<string name="customization">Fərdiləşdirmə</string>
<string name="customization">Tənzimləmələr</string>
<string name="website">Veb Sayt</string>
<string name="color_accent">Vurğu Rəngi</string>
<string name="color_red">Qırmızı</string>
<string name="color_blue">Piksel Mavisi</string>
<string name="color_yellow">Sarı</string>
<string name="color_green">Yaşıl</string>
<string name="color_purple">Bənövşəyi</string>
<string name="oledTheme">OLED Mövzu</string>
<string name="material_you">Öz Dizaynı</string>
<string name="color_accent">Vurğular</string>
<string name="color_red">Rahatladıcı qırmızı</string>
<string name="color_blue">Qayıq mavisi</string>
<string name="color_yellow">Yeeting sarı</string>
<string name="color_green">Qonaq yaşılı</string>
<string name="color_purple">Zövqlü bənövşəyi</string>
<string name="oledTheme">Zil qara</string>
<string name="material_you">Mistik Material 3</string>
<string name="sponsorblock_notifications">Bildirişlər</string>
<string name="enabled">Aktivləşdirildi</string>
<string name="disabled">Qeyri-aktivdir</string>
<string name="app_icon">Tətbiq Nişanı</string>
<string name="enabled">Açıq</string>
<string name="disabled">Bağlı</string>
<string name="app_icon">Nişan</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Arxa Fonda Oynat</string>
<string name="playOnBackground">Arxa fonda oynadın</string>
<string name="update_available">%1$s Versiyası Mövcuddur</string>
<string name="update_available_text">Yeni yeniləmə mövcuddur. GitHub-da yeniləmə səhifəsinə yönləndirilmək üçün oldu düyməsini klikləyin.</string>
<string name="update_available_text">Onu endirmək üçün GitHub\'da buraxılışlara keçilsin\?</string>
<string name="appearance">Görünüş</string>
<string name="app_behavior">Tətbiq Davranışı</string>
<string name="app_behavior">Davranış</string>
<string name="downloads">Endirmələr</string>
<string name="video_format">Video formatı</string>
<string name="video_format_summary">Endirilmiş videolar video formatına çevrilir (yalnız hər iki audio və video endirildikdə tətbiq edilir).</string>
<string name="download_directory">Endirmə qovluğu</string>
<string name="download_directory_summary">Endirdiyiniz medianın saxlandığı qovluq.</string>
<string name="website_summary">Tətbiq və onun xüsusiyyətləri haqqında daha çox öyrənmək üçün veb saytımızı ziyarət edin.</string>
<string name="video_format_summary">Həm səs, həm də video endirilərsə, faylların dönüşdürülməsi.</string>
<string name="download_directory">Bura Endirin</string>
<string name="download_directory_summary">Endirilmiş media harada saxlanılır.</string>
<string name="website_summary">Tətbiq və onun xüsusiyyətləri haqqında ətraflı məlumat üçün veb sayta daxil olun.</string>
<string name="contributing">Töhfə</string>
<string name="contributing_summary">İdeyalarınız, tərcümələriniz, dizayn dəyişiklikləriniz, kodun təmizlənməsi və ya real ağır kod dəyişiklikləriniz olsun, kömək həmişə xoşdur. Nə qədər çox edilsə, bir o qədər yaxşı olar!</string>
<string name="license_summary">GNU Ümumi İctimai Lisenziya proqram təminatı və digər iş növləri üçün pulsuz,ümumi lisenziyadır.</string>
<string name="contributing_summary">İdeyalar, tərcümələr, dizayn dəyişiklikləri təmin edin, kodu aydınlaşdırın və yazın. Nə qədər çox etsəniz, bir o qədər yaxşıdır!</string>
<string name="license_summary">GPLv3+ kopyalanmış azad lisenziyadır. İstifadə edin, öyrənin, dəyişdirin və paylaşın; hamı ilə.</string>
<string name="donate">İanə Edin</string>
<string name="donate_summary">Tətbiqi bəyənirsinizsə və işimizi qiymətləndirirsinizsə, ianə etmənizdən məmnun olarıq.</string>
<string name="update">Tətbiq Yenilənməsi</string>
<string name="app_uptodate">Tətbiq Yenilənir</string>
<string name="donate_summary">Mümkünsə, bunun sizə nə dəyəri varsa verin. LibreTube komandası ianə və ya yardımınızdan kiçikdir.</string>
<string name="update">Yeni versiyanı axtarın</string>
<string name="app_uptodate">Ən son versiya işlədilir.</string>
<string name="playback_speed">Defolt oynatma sürəti</string>
<string name="advanced">Qabaqcıl</string>
<string name="player">Oynadıcı</string>
<string name="appearance_summary">Tətbiqin istədiyiniz kimi görünməsini təmin edin.</string>
<string name="advanced_summary">Oynadıcı, Endirmələr, Tarixçə</string>
<string name="update_summary">Yeni tətbiq yeniləməsinin mövcud olub-olmadığını yoxlamaq üçün bura klikləyin.</string>
<string name="no_update_available">Hazırda yeni yeniləmə mövcud deyil. Bizimlə qalın!</string>
<string name="appearance_summary">Tətbiqi öz zövqünüzə uyğunlaşdırın.</string>
<string name="advanced_summary">Oynadıcı, endirmələr, tarixçə</string>
<string name="update_summary">Tətbiqin güncəl olub-olmadığını öyrənmək üçün klikləyin.</string>
<string name="no_update_available">Ən son versiyanı işlədirsiniz.</string>
<string name="live">Canlı</string>
<string name="authors">Müəlliflər</string>
<string name="authors_summary">LibreTube komandası və bunların necə baş verdiyini öyrənin.</string>
<string name="no_replies">Bu şərhə cavab yoxdur.</string>
<string name="downloads_directory">Endirmə qovluğu</string>
<string name="music_directory">Musiqi qovluğu</string>
<string name="movies_directory">Film qovluğu</string>
<string name="shareTo">URL Paylaşın</string>
<string name="download_folder">Ad</string>
<string name="sdcard">SD kart</string>
<string name="internal_storage">Daxili yaddaş</string>
<string name="download_folder_summary">Endirilmiş media qovluğunun adı saxlanılır.</string>
<string name="views">%1$s baxış</string>
<string name="defaultIcon">Defolt</string>
<string name="legacyIcon">İtmiş miras</string>
<string name="fireIcon">Dəbli yanğın</string>
<string name="gradientIcon">Glib gradyanı</string>
<string name="shapedIcon">Axmaq formada</string>
<string name="flameIcon">Uçan alov</string>
<string name="birdIcon">Gücləndirilmiş quş</string>
<string name="torchIcon">Dəbli fənər</string>
<string name="instance_name">Server adı</string>
<string name="instance_api_url">Server API url\'si</string>
<string name="addInstance">Server Əlavə Edin</string>
<string name="invalid_url">Lütfən, etibarlı url daxil edin</string>
<string name="customInstance_summary">Fərdi server əlavə edin (riski özünüzə aiddir</string>
<string name="instance_summary">Piped, giriş, abunəliklər</string>
<string name="empty_instance">Siz adı və API url\'ni doldurmalısınız.</string>
<string name="clear_customInstances">Fərdi serverləri silin</string>
</resources>

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="choose_quality_dialog">Kvalitet</string>
<string name="library">Bibliotek</string>
<string name="unsubscribe">Ophæv abonnement</string>
<string name="password">Password</string>
<string name="login">Log ind</string>
<string name="register">Registrer dig</string>
<string name="logout">Log ud</string>
<string name="loggedout">Udlogget.</string>
<string name="already_logged_in">Allerede indlogget. Du kan logge ud av din konto når du vil.</string>
<string name="login_register">Log ind/registrer dig</string>
<string name="please_login">Log ind eller registrer dig i indstillingerne først.</string>
<string name="dlcomplete">Nedlastning fuldført.</string>
<string name="dlisinprogress">Vent til alle nedlastninger er fuldført …</string>
<string name="downloadfailed">Nedlastning mislykkets.</string>
<string name="vlc">Åbne i VLC</string>
<string name="server_error">Det er et problem med tjeneren. Prøv en anden instans\?</string>
<string name="unknown_error">Netværksfel.</string>
<string name="empty">Du må skrive ind brugernavn og password.</string>
<string name="defres">Forvalg for videoopløsning.</string>
<string name="grid">Rudenetskolonner</string>
<string name="emptyList">Ingenting her.</string>
<string name="createPlaylist">Opret afspilningsliste</string>
<string name="areYouSure">Slet afspilningslisten\?</string>
<string name="playlistCreated">Afspilningsliste oprettet.</string>
<string name="emptyPlaylistName">Afspilningslistenavnet kan ikke være tomt.</string>
<string name="addToPlaylist">Leg til i afspilningsliste</string>
<string name="lightTheme">Lystig lys</string>
<string name="darkTheme">Svagsynet svart</string>
<string name="subscribers">%1$s abonnementer</string>
<string name="settings">Indstillinger</string>
<string name="location">Sted</string>
<string name="instance">Instans</string>
<string name="website">Website</string>
<string name="videoCount">%1$s videoer</string>
<string name="noInternet">Koble til Internet først.</string>
<string name="retry">Prøv igen</string>
<string name="comments">Kommentarer</string>
<string name="choose_filter">Vælg søgefilter</string>
<string name="channels">Kanaler</string>
<string name="all">Alle</string>
<string name="playlists">Spillelister</string>
<string name="okay">OK</string>
<string name="history">Historik</string>
<string name="search_history">Søgehistorik</string>
<string name="clear_history">Ryd historik</string>
<string name="music_songs">YT Musik-spor</string>
<string name="music_videos">YT Musik-videoer</string>
<string name="music_albums">YT Musik-album</string>
<string name="music_playlists">YT Musik-afspilningslister</string>
<string name="defaultTab">Standardfaneblad</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="sponsorblock_summary">Brug https://sponsor.ajay.app-API-et</string>
<string name="segment_skipped">Undgået segment</string>
<string name="sponsorblock_state"></string>
<string name="category_segments">Segmenter</string>
<string name="category_sponsor">Sponsor</string>
<string name="category_selfpromo_description">Ligner «Sponsor», bortset fra at dette er ubetalt selv-promotion. Dette inkluderer segmenter om ting, donationer, eller info om samarbejdspartnere.</string>
<string name="category_intro_description">Interval uden faktisk indhold. Kan være en pause, statisk ramme, gentagende animation. Skal ikke bruges for overganger som indeholder info.</string>
<string name="sponsorblock_notifications">Notifikationer</string>
<string name="app_icon">Ikon</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Spil i bakgrunden</string>
<string name="update_available">Version %1$s er tilgængelig</string>
<string name="update_available_text">Gå til udgivelser på GitHub for å laste ned\?</string>
<string name="appearance">Udseende</string>
<string name="app_behavior">Adfærd</string>
<string name="downloads">Nedlastninger</string>
<string name="license">Lisens</string>
<string name="color_accent">Sekundærfarve</string>
<string name="color_red">Rolig rød</string>
<string name="color_blue">Belejlig blå</string>
<string name="video_format">Videoformat</string>
<string name="download_directory">Last ned til …</string>
<string name="download_directory_summary">Der nedlastede medier lagres.</string>
<string name="contributing">Bidrag</string>
<string name="contributing_summary">Tilby idéer, oversættelser, designændringer, rens og skriv kode. Desto mer der bliver gjort, desto bedre bliver det.</string>
<string name="video_format_summary">Konvertering af filer om både lyd og video er nedlastet.</string>
<string name="donate_summary">Gi det dette er værd for dig, hvis du kan. LibreTube-laget er mindre end din donation eller hjælp.</string>
<string name="no_update_available">Du kører den sidste versionen.</string>
<string name="playback_speed">Forvalg for afspilningshastighed</string>
<string name="advanced">Avancered</string>
<string name="appearance_summary">Juster programmet til din smag.</string>
<string name="live">Direkte</string>
<string name="no_replies">Ubesvaret kommentar.</string>
<string name="authors">Udviklere</string>
<string name="download_folder">Navn</string>
<string name="internal_storage">Internlager</string>
<string name="authors_summary">Bliv kend med LibreTube-laget og hvordan alt sker.</string>
<string name="download_folder_summary">Navnet på mappen nedlastede medier lagres i.</string>
<string name="movies_directory">Filmmappe</string>
<string name="shareTo">Del URL til …</string>
<string name="defaultIcon">Forvalg</string>
<string name="downloads_directory">Nedlastningsmappe</string>
<string name="music_directory">Musikmappe</string>
<string name="sdcard">SD-kort</string>
<string name="fireIcon">Fashionabel flamme</string>
<string name="torchIcon">Fiktiv fakkel</string>
<string name="shapedIcon">Formodentlig formet</string>
<string name="flameIcon">Flyende flamme</string>
<string name="birdIcon">Fremmed fugl</string>
<string name="startpage">Hjem</string>
<string name="subscriptions">Abonnementer</string>
<string name="instances">Vælg en instans</string>
<string name="app_theme">Dragt</string>
<string name="yes">Ja</string>
<string name="search_hint">Søg</string>
<string name="save">Lagre</string>
<string name="videos">Videoer</string>
<string name="subscribe">Abonner</string>
<string name="loggedIn">Indlogget.</string>
<string name="region">Vælg en region</string>
<string name="share">Del</string>
<string name="username">Brugernavn</string>
<string name="error">Der gik nogenting galt.</string>
<string name="download">Last ned</string>
<string name="cancel">Afbryd</string>
<string name="registered">Registrered. Du kan nu abonnere på kanaler.</string>
<string name="login_first">Log ind og prøv igen.</string>
<string name="importsuccess">Abonneret</string>
<string name="customInstance">Leg til egendefineret instans</string>
<string name="subscribeIsEmpty">Abonner på nogle kanaler først.</string>
<string name="cannotDownload">Kan ikke laste ned denne strømmen.</string>
<string name="vlcerror">Kan ikke åbne i VLC. Måske det ikke er installeret\?</string>
<string name="import_from_yt">Importer abonnementer</string>
<string name="import_from_yt_summary">Fra YouTube eller NewPipe</string>
<string name="notgmail">Dette er for en LibreTube-konto.</string>
<string name="deletePlaylist">Slet afspilningslisten</string>
<string name="success">Færdig.</string>
<string name="update">Se efter ny version</string>
<string name="playlistName">Afspilningslistenavn</string>
<string name="fail">Mislykket :(</string>
<string name="about">Om</string>
<string name="changeLanguage">Sprog</string>
<string name="systemLanguage">System</string>
<string name="disabled">Af</string>
<string name="systemDefault">System</string>
<string name="customization">Justeringer</string>
<string name="oledTheme">Svagsynet svart</string>
<string name="enabled"></string>
<string name="color_purple">Lemfældig lilla</string>
<string name="material_you">Mystisk Materiel 3</string>
<string name="update_summary">Klik for at finne ud om programmet er av nyeste dato.</string>
<string name="piped">Piped</string>
<string name="app_uptodate">Kører sidste version.</string>
<string name="donate">Doner</string>
<string name="player">Afspiller</string>
<string name="advanced_summary">Afspiller, nedlastninger, historik</string>
<string name="views">%1$s visninger</string>
<string name="gradientIcon">Glidende gradient</string>
<string name="legacyIcon">God gammeldags</string>
<string name="color_yellow">Gallisk gul</string>
<string name="color_green">Gestende grøn</string>
<string name="website_summary">Besøg vores website for mer info om programmet og dets funktioner.</string>
<string name="category_sponsor_description">Betalt promotion, betalte henvisninger, og direkte reklame. Ikke for selv-promotion, eller gratis nævning av tiltag/skabere/websites/produkter.</string>
<string name="category_interaction">Interaktionspåmindelse (lig og abonner)</string>
<string name="category_selfpromo">Ubetalt/selv-promotion</string>
<string name="category_intro">Pausesegment/introanimation</string>
<string name="category_interaction_description">Korte påmindelser om å lige, abonnere, eller følge midt i indhold. Hvis det er langt eller specifikt skal det gå som selv-promotion.</string>
<string name="category_outro">Slutinfo og rulletekst</string>
<string name="category_outro_description">Info som kommer efter slutten af videoen. Ikke for konklusioner med info.</string>
<string name="license_summary">GPLv3+ er en gemenfrihedslig lisens. Brug, studer, ændre og del; med alle.</string>
</resources>

View File

@ -16,35 +16,35 @@
<string name="loggedIn">Angemeldet.</string>
<string name="loggedout">Abgemeldet.</string>
<string name="registered">Registrierung erfolgreich! Du kannst nun Kanäle abonnieren.</string>
<string name="login_first">Bitte melde dich an und versuche es nochmal!</string>
<string name="login_first">Bitte melde dich an und versuche es nochmal.</string>
<string name="instances">Instanz wählen</string>
<string name="customInstance">Benutzerdefinierte Instanz hinzufügen</string>
<string name="region">Region wählen</string>
<string name="customInstance">Benutzerdefinierte Instanz</string>
<string name="region">Region</string>
<string name="importsuccess">Abonniert</string>
<string name="subscribeIsEmpty">Abonniere erst einige Kanäle.</string>
<string name="cannotDownload">Video kann nicht heruntergeladen werden.</string>
<string name="dlisinprogress">Ein anderer Datenübertragung läuft bereits, bitte warte bis dieser beendet ist.</string>
<string name="dlisinprogress">Bitte warte, bis alle Datenübertragungen abgeschlossen sind </string>
<string name="downloadfailed">Herunterladen fehlgeschlagen.</string>
<string name="vlcerror">Kann nicht in VLC geöffnet werden. Möglicherweise ist es nicht installiert.</string>
<string name="app_theme">Erscheinungsbild</string>
<string name="server_error">Der Server meldet Schwierigkeiten. Versuche eine andere Instanz\?</string>
<string name="unknown_error">Netzwerkfehler.</string>
<string name="error">Etwas ist schiefgelaufen.</string>
<string name="notgmail">Dies ist nicht dein Gmail-Konto.</string>
<string name="notgmail">Dies ist für ein LibreTube-Konto.</string>
<string name="defres">Standard-Auflösung</string>
<string name="grid">Spaltenanzahl</string>
<string name="emptyList">Gähnende Leere.</string>
<string name="success">Erfolgreich!</string>
<string name="success">Erledigt.</string>
<string name="yes">Ja</string>
<string name="download">Herunterladen</string>
<string name="cancel">Abbrechen</string>
<string name="createPlaylist">Wiedergabeliste erstellen</string>
<string name="playlistCreated">Wiedergabeliste erstellt!</string>
<string name="playlistCreated">Wiedergabeliste erstellt.</string>
<string name="playlistName">Name der Wiedergabeliste</string>
<string name="addToPlaylist">Zu Wiedergabeliste hinzufügen</string>
<string name="fail">Fehlgeschlagen :(</string>
<string name="choose_quality_dialog">Qualtität wählen:</string>
<string name="login_register">Anmelden/Registrieren</string>
<string name="choose_quality_dialog">Qualtität:</string>
<string name="login_register">Anmelden/registrieren</string>
<string name="dlcomplete">Herunterladen abgeschlossen.</string>
<string name="save">Speichern</string>
<string name="already_logged_in">Du bist bereits angemeldet. Du kannst dich hier von deinem Account abmelden.</string>
@ -55,21 +55,21 @@
<string name="deletePlaylist">Wiedergabeliste löschen</string>
<string name="areYouSure">Bist du sicher, dass du die Wiedergabeliste löschen möchtest\?</string>
<string name="about">Über</string>
<string name="systemDefault">Automatisch</string>
<string name="lightTheme">Hell</string>
<string name="darkTheme">Dunkel</string>
<string name="systemDefault">System</string>
<string name="lightTheme">Helles Farbschema</string>
<string name="darkTheme">Dunkles Farbschema</string>
<string name="subscribers">%1$s Abonnenten</string>
<string name="emptyPlaylistName">Der Name der Wiedergabeliste darf nicht leer sein</string>
<string name="import_from_yt_summary">Von YouTube oder NewPipe</string>
<string name="changeLanguage">Sprache ändern</string>
<string name="systemLanguage">Systemsprache</string>
<string name="changeLanguage">Sprache</string>
<string name="systemLanguage">System</string>
<string name="comments">Kommentare</string>
<string name="retry">Erneut versuchen</string>
<string name="noInternet">Keine Internetverbindung</string>
<string name="noInternet">Stelle zunächst eine Verbindung zum Internet her.</string>
<string name="videoCount">%1$s Videos</string>
<string name="settings">Einstellungen</string>
<string name="location">Standort</string>
<string name="customization">Anpassung</string>
<string name="customization">Anpassungen</string>
<string name="website">Website</string>
<string name="instance">Instanz</string>
<string name="choose_filter">Suchfilter wählen</string>
@ -85,37 +85,81 @@
<string name="music_playlists">YT Musik-Wiedergabelisten</string>
<string name="playlists">Wiedergabelisten</string>
<string name="category_intro">Pause/Intro-Animation</string>
<string name="category_outro">Endkarten/Credits</string>
<string name="sponsorblock_summary">Verwendet die API von https://sponsor.ajay.app/</string>
<string name="category_outro">Endkarten und Abspann</string>
<string name="sponsorblock_summary">Verwendet die https://sponsor.ajay.app API</string>
<string name="category_segments">Abschnitte</string>
<string name="category_selfpromo_description">Ähnlich wie „Sponsor“, außer für unbezahlte Werbung oder Eigenwerbung. Dazu gehören Abschnitte über Waren, Spenden oder Informationen darüber, mit wem sie zusammengearbeitet haben.</string>
<string name="defaultTab">Standardseite</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="segment_skipped">Abschnitt übersprungen</string>
<string name="category_sponsor">Sponsor</string>
<string name="sponsorblock_state">Aktiviert</string>
<string name="sponsorblock_state">Ein</string>
<string name="category_sponsor_description">Bezahlte Werbung, bezahlte Empfehlungen und Direktwerbung. Nicht für Eigenwerbung oder kostenlose Empfehlungen für Anliegen/Ersteller/Websites/Produkte, die sie mögen.</string>
<string name="category_selfpromo">Unbezahlte/Selbst Promotion</string>
<string name="category_interaction">Interaktionserinnerung (Abonnieren)</string>
<string name="category_outro_description">Credits oder wenn die YouTube-Endkarten erscheinen. Nicht für Schlussfolgerungen mit Informationen.</string>
<string name="category_interaction_description">Wenn es mitten im Inhalt eine kurze Erinnerung zum Mögen, Abonnieren oder Folgen gibt. Wenn es lang ist oder es um etwas Bestimmtes geht, sollte es stattdessen unter Eigenwerbung stehen.</string>
<string name="category_intro_description">Ein Intervall ohne eigentlichen Inhalt. Könnte eine Pause, ein statischer Rahmen oder eine sich wiederholende Animation sein. Dies sollte nicht für Übergänge verwendet werden, die Informationen enthalten.</string>
<string name="category_interaction">Interaktionserinnerung (mögen und abonnieren)</string>
<string name="category_outro_description">Infos nach dem Ende. Nicht für Schlussfolgerungen mit Infos.</string>
<string name="category_interaction_description">Wenn in der Mitte des Inhalts eine kurze Aufforderung steht, ihn zu mögen, zu abonnieren oder ihm zu folgen. Wenn er lang ist oder sich auf etwas Bestimmtes bezieht, sollte er eher der Eigenwerbung dienen.</string>
<string name="category_intro_description">Eine Pause ohne eigentlichen Inhalt. Kann eine Pause, ein statisches Bild oder eine sich wiederholende Animation sein. Sollte nicht für Übergänge mit Informationen verwendet werden.</string>
<string name="license">Lizenz</string>
<string name="color_accent">Farbakzent</string>
<string name="color_red">Rot</string>
<string name="color_accent">Akzente</string>
<string name="color_red">Ruhendes Rot</string>
<string name="color_blue">Pixelblau</string>
<string name="color_yellow">Gelb</string>
<string name="color_green">Grün</string>
<string name="color_purple">Lila</string>
<string name="oledTheme">OLED-Farbschema</string>
<string name="material_you">Material You</string>
<string name="color_green">Groovy grün</string>
<string name="color_purple">Angenehmes Lila</string>
<string name="oledTheme">Schwarzes Farbschema</string>
<string name="material_you">Mystic Material 3</string>
<string name="sponsorblock_notifications">Benachrichtigungen</string>
<string name="enabled">Aktiviert</string>
<string name="disabled">Deaktiviert</string>
<string name="app_icon">App-Symbol</string>
<string name="enabled">Ein</string>
<string name="disabled">Aus</string>
<string name="app_icon">Symbol</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Im Hintergrund abspielen</string>
<string name="update_available">Version %1$s ist verfügbar</string>
<string name="update_available_text">Es ist ein neues Update verfügbar. Klicken Sie auf \"OK\", um zur Aktualisierungsseite auf GitHub weitergeleitet zu werden.</string>
<string name="update_available_text">Gehe zu den Veröffentlichungen auf GitHub, um sie herunterzuladen\?</string>
<string name="advanced_summary">Player, Herunterladen, Verlauf</string>
<string name="appearance">Aussehen</string>
<string name="app_behavior">Verhalten</string>
<string name="downloads">Datenübertagungen</string>
<string name="video_format">Videoformat</string>
<string name="video_format_summary">Konvertierung von Dateien, wenn sowohl Audio als auch Video heruntergeladen werden.</string>
<string name="download_directory">Herunterladen auf</string>
<string name="download_directory_summary">Der Ort, an dem deine heruntergeladenen Medien gespeichert werden.</string>
<string name="website_summary">Besuche die Website, um weitere Informationen über die Anwendung und ihre Funktionen zu erhalten.</string>
<string name="contributing_summary">Stellen Sie Ideen, Übersetzungen, Designänderungen bereit, bereinigen und schreiben Sie Code. Je mehr getan wird, desto besser wird es!</string>
<string name="license_summary">Die GPLv3+ ist eine Copylefted-Libre-Lizenz. Verwenden, studieren, ändern und teilen; mit allen.</string>
<string name="donate">Spenden</string>
<string name="donate_summary">Geben Sie, was Ihnen das wert ist, wenn Sie können. Das Team LibreTube ist kleiner als Ihre Spende oder Hilfe.</string>
<string name="update">Suche nach neuer Version</string>
<string name="update_summary">Klicke hier, um herauszufinden, ob die Anwendung auf dem neuesten Stand ist.</string>
<string name="app_uptodate">Es läuft die neueste Version.</string>
<string name="no_update_available">Du verwendest die neueste Version.</string>
<string name="playback_speed">Standard-Wiedergabegeschwindigkeit</string>
<string name="advanced">Fortgeschrittene</string>
<string name="player">Player</string>
<string name="appearance_summary">Passe die Anwendung nach deinen Wünschen an.</string>
<string name="live">Live</string>
<string name="no_replies">Dieser Kommentar hat keine Antworten.</string>
<string name="authors">Autoren</string>
<string name="authors_summary">Lernen Sie das Team LibreTube und all seine Mitwirkenden kennen, die helfen, die Anwendung zu verbessern.</string>
<string name="contributing">Beitragen</string>
<string name="download_folder">Name</string>
<string name="download_folder_summary">Der Name des Ordners, in dem die heruntergeladenen Medien gespeichert sind.</string>
<string name="sdcard">SD-Karte</string>
<string name="internal_storage">Interner Speicher</string>
<string name="music_directory">Musikordner</string>
<string name="shareTo">URL teilen an:</string>
<string name="downloads_directory">Download-Ordner</string>
<string name="movies_directory">Filmordner</string>
<string name="views">%1$s Aufrufe</string>
<string name="defaultIcon">Standard</string>
<string name="instance_name">Instanzname</string>
<string name="instance_api_url">Instanz-API-URL</string>
<string name="addInstance">Instanz hinzufügen</string>
<string name="empty_instance">Du musst den Namen und die API-URL eingeben.</string>
<string name="clear_customInstances">Benutzerdefinierte Instanzen löschen</string>
<string name="invalid_url">Bitte gib eine gültige URL ein</string>
<string name="instance_summary">Piped, Anmeldung, Abonnements</string>
<string name="customInstance_summary">Hinzufügen einer benutzerdefinierten Instanz (auf eigenes Risiko)</string>
</resources>

View File

@ -5,15 +5,15 @@
<string name="password">Κωδικός πρόσβασης</string>
<string name="login">Σύνδεση</string>
<string name="already_logged_in">Έχετε ήδη συνδεθεί. Μπορείτε να αποσυνδεθείτε από τον λογαριασμό σας.</string>
<string name="login_first">Παρακαλώ συνδεθείτε και προσπαθήστε πάλι!</string>
<string name="login_first">Παρακαλώ συνδεθείτε και προσπαθήστε πάλι.</string>
<string name="instances">Επιλογή διακομιστή</string>
<string name="customInstance">Πρόσθεση άλλου διακομιστή</string>
<string name="region">Επιλέξτε περιοχή</string>
<string name="customInstance">Προσαρμομένος διακομιστής</string>
<string name="region">Περιοχή</string>
<string name="login_register">Σύνδεση/Εγγραφή</string>
<string name="please_login">Παρακαλώ συνδεθείτε ή εγγραφείτε πρώτα στις ρυθμίσεις.</string>
<string name="cannotDownload">Αποτυχία λήψης αυτού του stream.</string>
<string name="dlcomplete">Λήψη επιτυχής.</string>
<string name="dlisinprogress">Μια άλλη λήψη βρίσκεται ήδη σε εξέλιξη. Περιμένετε μέχρι να τελειώσει.</string>
<string name="dlisinprogress">Περιμένετε μέχρι να ολοκληρωθούν όλες οι λήψεις…</string>
<string name="downloadfailed">Λήψη ανεπιτυχής.</string>
<string name="vlc">Άνοιγμα στο VLC</string>
<string name="vlcerror">Το βίντεο δεν κατάφερε να ανοίξει στο VLC. Ίσως δεν είναι εγκατεστημένο.</string>
@ -31,16 +31,16 @@
<string name="save">Αποθήκευση</string>
<string name="register">Εγγραφή</string>
<string name="createPlaylist">Δημιουργία λίστας αναπαραγωγής</string>
<string name="playlistCreated">Η λίστα αναπαραγωγής δημιουργήθηκε!</string>
<string name="playlistCreated">Η λίστα αναπαραγωγής δημιουργήθηκε.</string>
<string name="playlistName">Όνομα λίστας αναπαραγωγής</string>
<string name="emptyPlaylistName">Το όνομα της λίστας αναπαραγωγής δεν επιτρέπεται να είναι άδειο</string>
<string name="addToPlaylist">Πρόσθεση στην λίστα αναπαραγωγής</string>
<string name="success">Επιτυχία!</string>
<string name="addToPlaylist">Πρoσθήκη στην λίστα αναπαραγωγής</string>
<string name="success">Ολοκληρώθηκε.</string>
<string name="fail">Αποτυχία :(</string>
<string name="about">Σχετικά με</string>
<string name="share">Κοινοποίηση</string>
<string name="yes">Ναι</string>
<string name="choose_quality_dialog">Επιλογή ποιότητας:</string>
<string name="choose_quality_dialog">Ποιότητα</string>
<string name="download">Λήψη</string>
<string name="registered">Εγγραφή επιτυχής. Τώρα μπορείτε να εγγραφείτε σε κανάλια.</string>
<string name="logout">Αποσύνδεση</string>
@ -50,25 +50,25 @@
<string name="importsuccess">Εγγεγραμμένος</string>
<string name="subscribeIsEmpty">Εγγραφείτε σε μερικά κανάλια πρώτα .</string>
<string name="grid">Στήλες πλέγματος</string>
<string name="notgmail">Αυτός δεν είναι ο λογαριασμός Gmail σας.</string>
<string name="notgmail">Αυτό είναι για λογαριασμό LibreTube.</string>
<string name="defres">Προεπιλεγμένη ανάλυση βίντεο</string>
<string name="emptyList">Τίποτα εδώ.</string>
<string name="startpage">Αρχική σελίδα</string>
<string name="subscriptions">Εγγραφές</string>
<string name="library">Βιβλιοθήκη</string>
<string name="videos">Βίντεο</string>
<string name="changeLanguage">Αλλαγή γλώσσας</string>
<string name="systemLanguage">Γλώσσα συστήματος</string>
<string name="changeLanguage">Γλώσσα</string>
<string name="systemLanguage">Συστήματος</string>
<string name="lightTheme">Φωτεινό θέμα</string>
<string name="subscribers">%1$s εγγεγραμμένοι</string>
<string name="systemDefault">Προεπιλογή συστήματος</string>
<string name="systemDefault">Συστήματος</string>
<string name="darkTheme">Σκοτεινό θέμα</string>
<string name="comments">Σχόλια</string>
<string name="settings">Ρυθμίσεις</string>
<string name="customization">Προσαρμογή</string>
<string name="customization">Προσαρμογές</string>
<string name="website">Ιστοσελίδα</string>
<string name="location">Περιοχή</string>
<string name="noInternet">Δεν υπάρχει σύνδεση στο διαδίκτυο</string>
<string name="noInternet">Συνδεθείτε πρώτα στο Διαδίκτυο.</string>
<string name="retry">Ξαναδοκιμάστε</string>
<string name="instance">Διακομιστής</string>
<string name="videoCount">%1$s βίντεο</string>
@ -88,56 +88,89 @@
<string name="music_albums">YT Music άλμπουμ</string>
<string name="music_playlists">YT Music λίστες αναπαραγωγής</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="sponsorblock_summary">Χρησιμοποιεί API από https://sponsor.ajay.app/</string>
<string name="sponsorblock_summary">Χρησιμοποιεί το https://sponsor.ajay.app/ API</string>
<string name="sponsorblock_state">Ενεργοποιημένο</string>
<string name="category_segments">Τμήματα</string>
<string name="segment_skipped">Τμήμα παραλήφθηκε</string>
<string name="category_intro">Διάλειμμα/Εισαγωγή</string>
<string name="category_selfpromo">Μη-χορηγούμενη/Προσωπική προώθηση</string>
<string name="category_interaction">Υπενθύμιση αλληλεπίδρασης (Εγγραφή)</string>
<string name="category_interaction">Υπενθύμιση αλληλεπίδρασης (Μου αρέσει και εγγραφή)</string>
<string name="category_selfpromo_description">Παρόμοιο με την επιλογή \"Χορηγός\" αλλά για ενημέρωση μη-χορηγούμενης/προσωπικής προώθησης. Αυτό περιλαμβάνει ενότητες σχετικά με εμπορεύματα, δωρεές ή πληροφορίες σχετικά με όσους συνεργάστηκαν.</string>
<string name="category_outro">Κάρτες τέλους/Τίτλοι τέλους</string>
<string name="category_outro_description">Τίτλοι τέλους ή όταν εμφανίζονται οι τελικές κάρτες του YouTube. Όχι για συμπεράσματα με πληροφορίες.</string>
<string name="category_intro_description">Ένα χρονικό διάστημα χωρίς πραγματικό περιεχόμενο. Μπορεί να είναι παύση, στατικό καρέ, επαναλαμβανόμενη κινούμενη εικόνα. Αυτό δεν πρέπει να χρησιμοποιείται για μεταβάσεις που περιέχουν πληροφορίες.</string>
<string name="category_outro">Κάρτες τέλους και τίτλοι τέλους</string>
<string name="category_outro_description">Πληροφορίες μετά το τέλος. Όχι για συμπεράσματα με πληροφορίες.</string>
<string name="category_intro_description">Ένα χρονικό διάστημα χωρίς πραγματικό περιεχόμενο. Μπορεί να είναι παύση, στατικό καρέ, επαναλαμβανόμενη κινούμενη εικόνα. Δεν πρέπει να χρησιμοποιείται για μεταβάσεις που περιέχουν πληροφορίες.</string>
<string name="category_interaction_description">Όταν υπάρχει μια σύντομη υπενθύμιση για να πατήσετε μου αρέσει, να εγγραφείτε ή να ακολουθήσετε το κανάλι τους στη μέση του περιεχομένου. Εάν είναι μεγάλης διάρκειας ή για κάτι συγκεκριμένο, θα πρέπει να παρατίθεται στην επιλογή \" Μη-χορηγούμενη/Προσωπική προώθηση\".</string>
<string name="license">Άδεια</string>
<string name="oledTheme">OLED Θέμα</string>
<string name="color_accent">Απόχρωση χρώματος</string>
<string name="color_blue">Pixel Μπλέ</string>
<string name="color_yellow">Κίτρινο</string>
<string name="color_green">Πράσινο</string>
<string name="color_purple">Μωβ</string>
<string name="color_red">Κόκκινο</string>
<string name="material_you">Material You</string>
<string name="oledTheme">Μαύρο θέμα</string>
<string name="color_accent">Αποχρώσεις</string>
<string name="color_blue">Pixel μπλε</string>
<string name="color_yellow">Κίτρινο που μυρίζει</string>
<string name="color_green">Αυλό πράσινο</string>
<string name="color_purple">Απολαυστικό μωβ</string>
<string name="color_red">Κόκκινη ανάπαυση</string>
<string name="material_you">Μυστικό Υλικό 3</string>
<string name="sponsorblock_notifications">Ειδοποιήσεις</string>
<string name="app_icon">Εικονίδιο εφαρμογής</string>
<string name="app_icon">Εικονίδιο</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="enabled">Ενεργοποιημένο</string>
<string name="disabled">Απενεργοποιημένο</string>
<string name="playOnBackground">Αναπαραγωγή στο υπόβαθρο</string>
<string name="update_available">Η έκδοση %1$s είναι διαθέσιμη</string>
<string name="update_available_text">Υπάρχει μια νέα ενημέρωση διαθέσιμη. Κάντε κλικ στο OK για να ανακατευθυνθείτε στη σελίδα ενημέρωσης στο GitHub.</string>
<string name="update_available_text">Μετάβαση στις εκδόσεις στο GitHub για να το κατεβάσετε;</string>
<string name="appearance">Εμφάνιση</string>
<string name="app_behavior">Συμεριφορά εφαρμογής</string>
<string name="app_behavior">Συμπεριφορά</string>
<string name="downloads">Λήψεις</string>
<string name="video_format">Μορφή βίντεο</string>
<string name="video_format_summary">Η μορφή βίντεο στην οποία μετατρέπονται τα κατεβασμένα βίντεο (εφαρμόζεται μόνο αν ο ήχος και το βίντεο έχουν κατέβει).</string>
<string name="download_directory">Φάκελος λήψεων</string>
<string name="download_directory_summary">Ο φάκελος στον οποίο τα κατεβασμένα αρχεία αποθηκεύονται.</string>
<string name="website_summary">Επισκεφθείτε την ιστοσελίδα μας για να μάθετε περισσότερα περί της εφαρμογής και των δυνατοτήτων της.</string>
<string name="license_summary">Η Γενική Δημόσια Άδεια GNU είναι μια δωρεάν, ανοιχτή προς αντιγραφή άδεια για λογισμικό και άλλα είδη έργων.</string>
<string name="video_format_summary">Μετατροπή αρχείων εάν έχει γίνει λήψη και ήχου και βίντεο.</string>
<string name="download_directory">Λήψη σε</string>
<string name="download_directory_summary">Πού αποθηκεύονται τα ληφθέντα μέσα.</string>
<string name="website_summary">Επισκεφτείτε τον ιστότοπο για περισσότερες πληροφορίες σχετικά με την εφαρμογή και τις δυνατότητές της.</string>
<string name="license_summary">Η GPLv3+ είναι μια άδεια χρήσης που έχει κατοχυρωθεί με δικαιώματα πνευματικής ιδιοκτησίας. Χρήση, μελέτη, αλλαγή και κοινή χρήση. με όλα.</string>
<string name="donate">Συνεισφορά</string>
<string name="update">Ενημέρωση εφαρμογής</string>
<string name="update_summary">Πατήστε εδώ για να ελέγξετε αν είναι διαθέσιμη μία νέα ενημέρωση της εφαρμογής.</string>
<string name="no_update_available">Δεν υπάρχει κάποια ενημέρωση αυτή τη στιγμή. Μείνετε συντονισμένοι!</string>
<string name="update">Ψάξτε για νέα έκδοση</string>
<string name="update_summary">Πατήστε για να μάθετε εάν η εφαρμογή είναι ενημερωμένη.</string>
<string name="no_update_available">Εκτελείτε την πιο πρόσφατη έκδοση.</string>
<string name="contributing">Συμβάλοντας</string>
<string name="appearance_summary">Κάντε την εφαρμογή να φαίνεται όπως θέλετε.</string>
<string name="appearance_summary">Προσαρμόστε την εφαρμογή σύμφωνα με τις προτιμήσεις σας.</string>
<string name="player">Αναπαραγωγέας</string>
<string name="playback_speed">Προκαθορισμένη ταχύτητα αναπαραγωγής</string>
<string name="contributing_summary">Είτε έχετε ιδέες, μεταφράσεις, αλλαγές σχεδίασης, καθαρισμό κώδικα ή πραγματικές αλλαγές κώδικα, η βοήθεια είναι πάντα ευπρόσδεκτη. Όσο περισσότερα γίνονται τόσο καλύτερη γίνεται η εφαρμογή!</string>
<string name="donate_summary">Εάν σας αρέσει η εφαρμογή και εκτιμάτε τη δουλειά μας, θα ήμασταν ευγνώμων μίας δωρεά σας.</string>
<string name="app_uptodate">Η εφαρμογή είναι ενημερωμένη</string>
<string name="contributing_summary">Παρέχετε ιδέες, μεταφράσεις, αλλαγές σχεδίασης, καθαρίστε και γράψτε κώδικα. Όσο περισσότερα γίνονται τόσο καλύτερη γίνεται η εφαρμογή!</string>
<string name="donate_summary">Δώσε αυτό που αξίζει σε σένα, αν μπορείς. Η ομάδα του LibreTube είναι μικρότερη από τη δωρεά ή τη βοήθειά σας.</string>
<string name="app_uptodate">Εκτελείται η πιο πρόσφατη έκδοση.</string>
<string name="advanced">Για προχωρημένους</string>
<string name="advanced_summary">Αναπαραγωγέας, Λήψεις, Ιστορικό</string>
<string name="advanced_summary">Αναπαραγωγέας, λήψεις, ιστορικό</string>
<string name="authors">Συγγραφείς</string>
<string name="authors_summary">Γνωρίστε την ομάδα του LibreTube και όλους τους συνεισφέροντες της που βοηθούν στη βελτίωση της εφαρμογής.</string>
<string name="download_folder">Όνομα</string>
<string name="internal_storage">Εσωτερικός χώρος</string>
<string name="sdcard">Κάρτα SD</string>
<string name="music_directory">Φάκελος μουσικής</string>
<string name="movies_directory">Φάκελος ταινιών</string>
<string name="shareTo">Κοινή χρήση διεύθυνσης URL σε</string>
<string name="downloads_directory">Φάκελος λήψεων</string>
<string name="no_replies">Αυτό το σχόλιο δεν έχει απαντήσεις.</string>
<string name="download_folder_summary">Το όνομα του φακέλου στον οποίο τα κατεβασμένα μέσα αποθηκεύονται.</string>
<string name="live">Ζωντανά</string>
<string name="torchIcon">Μοντέρνος πυρσός</string>
<string name="fireIcon">Μοδάτη φωτιά</string>
<string name="gradientIcon">Κλίση Glib</string>
<string name="shapedIcon">Ανόητο σχήμα</string>
<string name="legacyIcon">Χαμένη κληρονομιά</string>
<string name="views">%1$s προβολές</string>
<string name="defaultIcon">Προκαθορισμένο</string>
<string name="flameIcon">Ιπτάμενη φλόγα</string>
<string name="birdIcon">Ενισχυμένο πουλί</string>
<string name="clear_customInstances">Εκκαθάριση προσαρμοσμένων διακομιστών</string>
<string name="customInstance_summary">Προσθήκη προσαρμοσμένου διακομιστή (με δική σας ευθύνη)</string>
<string name="instance_name">Όνομα διακομιστή</string>
<string name="instance_summary">Piped, σύνδεση, εγγραφές</string>
<string name="invalid_url">Εισαγάγετε μια έγκυρη διεύθυνση URL</string>
<string name="instance_api_url">Σύνδεσμος URL του API του διακομιστή</string>
<string name="addInstance">Προσθήκη διακομιστή</string>
<string name="empty_instance">Πρέπει να συμπληρώσετε το όνομα και τη διεύθυνση URL του API.</string>
<string name="about_summary">Γνωρίστε την ομάδα του LibreTube και πώς συμβαίνουν όλα αυτά.</string>
<string name="version">Έκδοση %1$s</string>
<string name="related_streams">Σχετικά βίντεο</string>
<string name="related_streams_summary">Εμφάνιση σχετικών βίντεο κάτω από το βίντεο.</string>
</resources>

View File

@ -9,7 +9,7 @@
<string name="password">Contraseña</string>
<string name="login">Iniciar sesión</string>
<string name="register">Registrarse</string>
<string name="choose_quality_dialog">Elija la calidad:</string>
<string name="choose_quality_dialog">Calidad:</string>
<string name="search_hint">Buscar</string>
<string name="logout">Cerrar sesión</string>
<string name="cancel">Cancelar</string>
@ -18,14 +18,14 @@
<string name="registered">Registrado. Ahora puede suscribirse a los canales.</string>
<string name="already_logged_in">Ya ha iniciado sesión. Puede salir de su cuenta.</string>
<string name="instances">Elija una instancia</string>
<string name="customInstance">Añadir una instancia personalizada</string>
<string name="customInstance">Instancia personalizada</string>
<string name="login_register">Iniciar sesión/registrarse</string>
<string name="please_login">Por favor, inicie sesión o regístrese primero en los ajustes.</string>
<string name="importsuccess">Suscrito</string>
<string name="subscribeIsEmpty">Suscríbase primero a algunos canales.</string>
<string name="loggedout">Desconectado.</string>
<string name="login_first">¡Por favor, conéctese e inténtelo de nuevo!</string>
<string name="region">Elija una región</string>
<string name="login_first">Por favor, conéctese e inténtelo de nuevo.</string>
<string name="region">Región</string>
<string name="cannotDownload">No se puede descargar esta transmisión.</string>
<string name="dlcomplete">Descarga completada.</string>
<string name="downloadfailed">Error de descarga.</string>
@ -33,18 +33,18 @@
<string name="vlcerror">No se puede abrir en VLC. Puede que no esté instalado.</string>
<string name="import_from_yt">Importar suscripciones</string>
<string name="app_theme">Tema</string>
<string name="error">Algo salio mal.</string>
<string name="error">Algo salió mal.</string>
<string name="empty">Tienes que introducir un nombre de usuario y una contraseña.</string>
<string name="notgmail">Esta no es su cuenta de Gmail.</string>
<string name="notgmail">Esto es para una cuenta de LibreTube.</string>
<string name="defres">Resolución de video predeterminada</string>
<string name="grid">Elija las columnas de la cuadrícula</string>
<string name="grid">Columnas de la cuadrícula</string>
<string name="emptyList">No hay nada aquí.</string>
<string name="areYouSure">¿Eliminar la lista de reproducción\?</string>
<string name="playlistCreated">¡Lista de reproducción creada!</string>
<string name="playlistCreated">Lista de reproducción creada.</string>
<string name="playlistName">Nombre de la lista de reproducción</string>
<string name="success">¡Éxito!</string>
<string name="success">Hecho.</string>
<string name="fail">Error :(</string>
<string name="dlisinprogress">Otra descarga ya está en curso. Por favor, espere hasta que esté completada.</string>
<string name="dlisinprogress">Por favor, espere hasta que todas las descargas hayan terminado…</string>
<string name="server_error">Hay un problema con el servidor. ¿Probar con otra instancia\?</string>
<string name="unknown_error">Error de red.</string>
<string name="deletePlaylist">Eliminar lista de reproducción</string>
@ -57,15 +57,15 @@
<string name="library">Biblioteca</string>
<string name="videos">Vídeos</string>
<string name="import_from_yt_summary">Desde YouTube o NewPipe</string>
<string name="changeLanguage">Cambiar idioma</string>
<string name="systemLanguage">Idioma del sistema</string>
<string name="changeLanguage">Idioma</string>
<string name="systemLanguage">Sistema</string>
<string name="lightTheme">Tema claro</string>
<string name="darkTheme">Tema oscuro</string>
<string name="subscribers">%1$s suscriptores</string>
<string name="systemDefault">Predeterminado del sistema</string>
<string name="systemDefault">Sistema</string>
<string name="comments">Comentarios</string>
<string name="videoCount">%1$s videos</string>
<string name="noInternet">Sin conexión a Internet</string>
<string name="noInternet">Conéctese primero a Internet.</string>
<string name="retry">Reintentar</string>
<string name="customization">Personalización</string>
<string name="instance">Instancia</string>
@ -86,34 +86,91 @@
<string name="music_playlists">Playlists de música de YT</string>
<string name="defaultTab">Pestaña predeterminada</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="sponsorblock_summary">Utiliza la API de https://sponsor.ajay.app/</string>
<string name="sponsorblock_summary">Utiliza la API de https://sponsor.ajay.app</string>
<string name="segment_skipped">Segmento omitido</string>
<string name="category_sponsor">Patrocinador</string>
<string name="category_sponsor_description">Promoción pagada, referencias pagadas y anuncios directos. No para la autopromoción o los anuncios gratuitos de causas/creadores/sitios web/productos que les gustan.</string>
<string name="sponsorblock_state">Activado</string>
<string name="category_segments">Segmentos</string>
<string name="category_selfpromo_description">Similar a \"patrocinador\", excepto que no se paga o se hace autopromoción. Esto incluye secciones sobre mercancía, donaciones o información sobre con quién han colaborado.</string>
<string name="category_interaction">Recordatorio de interacción (Suscripción)</string>
<string name="category_interaction_description">Cuando hay un breve recordatorio para que le den me gusta, se suscriban o les sigan en medio del contenido. Si es largo o sobre algo específico, debería estar en la autopromoción.</string>
<string name="category_interaction">Recordatorio de interacción (me gusta y suscríbete)</string>
<string name="category_interaction_description">Cuando hay un breve recordatorio para dar me gusta, suscribirse o seguir en medio del contenido. Si es largo o se trata de algo específico, debería ser una autopromoción.</string>
<string name="category_selfpromo">No remunerado/Autopromoción</string>
<string name="category_intro">Intermedio/Animación de entrada</string>
<string name="category_outro">Tarjetas finales/Créditos</string>
<string name="category_outro_description">Créditos o cuando aparezcan los tarjetas finales de YouTube. No para conclusiones con información.</string>
<string name="category_outro">Tarjetas finales y créditos</string>
<string name="category_outro_description">Información después del final. No para conclusiones con información.</string>
<string name="category_intro_description">Un intervalo sin contenido real. Puede ser una pausa, un fotograma estático, una animación que se repite. No debe utilizarse para transiciones que contengan información.</string>
<string name="license">Licencia</string>
<string name="color_red">Rojo</string>
<string name="color_accent">Acento de color</string>
<string name="color_accent">Acentos</string>
<string name="color_yellow">Amarillo</string>
<string name="color_green">Verde</string>
<string name="color_blue">Azul píxel</string>
<string name="color_blue">Azul</string>
<string name="color_purple">Púrpura</string>
<string name="oledTheme">Tema OLED</string>
<string name="material_you">Material You</string>
<string name="app_icon">Icono de la aplicación</string>
<string name="oledTheme">Tema negro</string>
<string name="material_you">Mystic Material 3</string>
<string name="app_icon">Icono</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="sponsorblock_notifications">Notificaciones</string>
<string name="enabled">Activado</string>
<string name="disabled">Desactivado</string>
<string name="playOnBackground">Reproducir en segundo plano</string>
<string name="views">%1$s visualizaciones</string>
<string name="update_available_text">¿Ir a los lanzamientos en GitHub para descargarla\?</string>
<string name="update_available">La versión %1$s está disponible</string>
<string name="app_behavior">Comportamiento</string>
<string name="appearance">Apariencia</string>
<string name="no_replies">Este comentario no tiene respuestas.</string>
<string name="authors">Autores</string>
<string name="authors_summary">Conoce al equipo de LibreTube y a todos los colaboradores que ayudan a mejorar la aplicación.</string>
<string name="internal_storage">Almacenamiento interno</string>
<string name="sdcard">Tarjeta SD</string>
<string name="shareTo">Compartir con</string>
<string name="defaultIcon">Predeterminado</string>
<string name="download_directory_summary">Dónde se almacenan los medios descargados.</string>
<string name="donate_summary">Da lo que vale esto para ti, si puedes. El equipo LibreTube es más pequeño que tu donación o ayuda.</string>
<string name="update">Ver si hay una nueva versión</string>
<string name="update_summary">Toca para saber si la aplicación está actualizada.</string>
<string name="app_uptodate">Ejecutando la última versión.</string>
<string name="download_folder">Nombre</string>
<string name="downloads_directory">Carpeta de descargas</string>
<string name="music_directory">Carpeta de música</string>
<string name="shapedIcon">Conformado</string>
<string name="flameIcon">Flama viva</string>
<string name="birdIcon">Pájaro</string>
<string name="instance_summary">Piped, sesión y suscripciones</string>
<string name="instance_name">Nombre de la instancia</string>
<string name="instance_api_url">URL de la instancia</string>
<string name="empty_instance">Tienes que llenar el nombre y el URL</string>
<string name="clear_customInstances">Eliminar instancias personalizadas</string>
<string name="invalid_url">Por favor, introduce un URL válido</string>
<string name="version">Versión %1$s</string>
<string name="about_summary">Conoce al equipo de LibreTube y como sucede todo.</string>
<string name="related_streams">Transmisiones relacionadas</string>
<string name="related_streams_summary">Mostrar transmisiones relacionadas con los videos.</string>
<string name="website_summary">Visita el sitio web para más información de la aplicación y sus características.</string>
<string name="contributing_summary">Aportar ideas, traducciones, cambios de diseño, limpiar y escribir código. ¡Cuanto más se haga, mejor será!</string>
<string name="license_summary">La GPLv3+ es una licencia libre con copyleft. Utiliza, estudia, cambia y comparte; con todos.</string>
<string name="movies_directory">Carpeta de películas</string>
<string name="no_update_available">Estás utilizando la última versión.</string>
<string name="advanced_summary">Reproductor, descargas e historial</string>
<string name="legacyIcon">Antiguo</string>
<string name="download_folder_summary">El nombre de la carpeta en la que se almacenan los medios descargados.</string>
<string name="addInstance">Añadir instancia</string>
<string name="gradientIcon">Difuminado</string>
<string name="fireIcon">Fuego moderno</string>
<string name="torchIcon">Antorcha</string>
<string name="customInstance_summary">Añadir una instancia personalizada (bajo tu propio riesgo)</string>
<string name="downloads">Descargas</string>
<string name="video_format">Formato de video</string>
<string name="video_format_summary">Conversión de archivos si se descargan tanto el audio como el video.</string>
<string name="download_directory">Directorio de descargas</string>
<string name="contributing">Contribución</string>
<string name="donate">Donar</string>
<string name="advanced">Avanzado</string>
<string name="player">Reproductor</string>
<string name="appearance_summary">Ajuste la aplicación a su gusto.</string>
<string name="playback_speed">Velocidad de reproducción predeterminada</string>
<string name="live">En vivo</string>
</resources>

View File

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="cancel">Ezeztatu</string>
<string name="startpage">Etxea</string>
<string name="subscriptions">Harpidetzak</string>
<string name="library">Liburutegia</string>
<string name="yes">Bai</string>
<string name="choose_quality_dialog">Kalitatea</string>
<string name="videos">Bideoak</string>
<string name="subscribe">Harpidetu</string>
<string name="share">Partekatu</string>
<string name="download">Deskargatu</string>
<string name="save">Gorde</string>
<string name="username">Erabiltzaile izena</string>
<string name="password">Pasahitza</string>
<string name="login">Saioa hasi</string>
<string name="register">Erregistratu</string>
<string name="logout">Saioa itxi</string>
<string name="loggedIn">Saioa hasita.</string>
<string name="registered">Erregistratuta. Orain kanaletan harpidetu zaitezke.</string>
<string name="already_logged_in">Iadanik saioa hasia duzu. Saioa itxi beharko duzu.</string>
<string name="login_first">Saioa hasi eta saiatu berriro mesedez.</string>
<string name="instances">Hautatu instantzia</string>
<string name="customInstance">Instantzia pertsonalizatua</string>
<string name="region">Lurraldea</string>
<string name="login_register">Saioa hasi/erregistratu</string>
<string name="please_login">Lehenengo ezarpenetan saioa hasi edo erregistratu mesedez.</string>
<string name="importsuccess">Harpidetuta</string>
<string name="subscribeIsEmpty">Lehenengo kanalen batean harpidetu mesedez.</string>
<string name="cannotDownload">Ezin da deskargatu jario hau.</string>
<string name="dlcomplete">Deskarga egina.</string>
<string name="dlisinprogress">Itxaron deskarga guztiak bukatu arte mesedez…</string>
<string name="downloadfailed">Ezin izan da deskargatu.</string>
<string name="vlc">Ireki VLC-n</string>
<string name="vlcerror">Ezin da VLC-n ireki. Agian ez dago instalatuta.</string>
<string name="import_from_yt">Inportatu harpidetzak</string>
<string name="import_from_yt_summary">Youtube edo NewPipetik</string>
<string name="app_theme">Gaia</string>
<string name="server_error">Zerbitzariarekin arazoren bat dago. Saiatu la zara beste instantzia batekin\?</string>
<string name="unknown_error">Sareko akatsa.</string>
<string name="error">Zerbait ez dabil ondo.</string>
<string name="notgmail">Hau LibreTubeko kontu baterako da.</string>
<string name="defres">Lehenetsitako bideo bereizmena</string>
<string name="grid">Lauki-sare zutabea</string>
<string name="emptyList">Ezer hemen.</string>
<string name="deletePlaylist">Ezabatu erreprodukzio zerrenda</string>
<string name="areYouSure">Erreprodukzio zerrenda ezabatu\?</string>
<string name="playlistCreated">Erreprodukzio zerrenda sortua.</string>
<string name="playlistName">Erreprodukzio zerrendaren izena</string>
<string name="addToPlaylist">Gehitu erreprodukzio zerrendara</string>
<string name="success">Egina.</string>
<string name="about">Honi buruz</string>
<string name="changeLanguage">Hizkuntza</string>
<string name="systemDefault">Sistema</string>
<string name="lightTheme">Gai argia</string>
<string name="darkTheme">Gai iluna</string>
<string name="subscribers">%1$s harpidetu</string>
<string name="settings">Ezarpenak</string>
<string name="location">Lekua</string>
<string name="instance">Instantzia</string>
<string name="customization">Doiketak</string>
<string name="website">Webgunea</string>
<string name="videoCount">%1$s bideo</string>
<string name="noInternet">Konektatu internetera lehenengo.</string>
<string name="comments">Iruzkinak</string>
<string name="channels">Kanalak</string>
<string name="okay">Ados</string>
<string name="clear_history">Ezabatu historiala</string>
<string name="music_songs">YT Musika kantak</string>
<string name="music_videos">YT Musika bideoak</string>
<string name="music_albums">YT Musika albumak</string>
<string name="music_playlists">YT Musika erreprodukzio zerrendak</string>
<string name="defaultTab">Fitxa lehenetsia</string>
<string name="sponsorblock">Iragarki blokeatzailea</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app APIa erabiltzen du</string>
<string name="category_sponsor_description">Ordaindutako promozioak, ordaindutako erreferentziak eta iragarki zuzenak. Autopromozio edo gustoko dituzten debaldeko iragarkietarako ez.</string>
<string name="category_selfpromo">Ez ordaindua/Autopromozioa</string>
<string name="category_selfpromo_description">\"Pateozinatzaile\"aren antzekoa, baino ez da ordaintzen edo autopromozionatzen da. Honek donazioak, salgaiak edo kolaboratu dutenen informazioa dakar.</string>
<string name="category_interaction">Interakzio gogorarazpena (gustokoa eta harpidetza)</string>
<string name="category_interaction_description">Edukien erdian gustokoen, harpidetzen edo jarraipenen jakinarazpen labur bat dagoenean. Zerbaiti buruz zehatza bada edo luzea bada, autopromozio gisa behar luke.</string>
<string name="category_intro_description">Eduki errealik gabeko tartea. Etenaldi bat izan liteke, fotograma estatikoa, animazio errepikatua. Ez da erabili behar informazioa duten trantsizioetarako.</string>
<string name="category_intro">Bitarteko animazioa/ introa</string>
<string name="category_outro_description">Amaieraren ondorengo informazioa. Ez informaziodun ondorioetarako.</string>
<string name="license">Lizentzia</string>
<string name="color_accent">Azentuak</string>
<string name="color_red">Gorria</string>
<string name="color_blue">Urdina</string>
<string name="color_yellow">Horia</string>
<string name="color_green">Berdea</string>
<string name="color_purple">Morea</string>
<string name="oledTheme">Gai beltza</string>
<string name="material_you">Material mistikoa</string>
<string name="sponsorblock_notifications">Jakinarazpenak</string>
<string name="app_icon">Ikonoa</string>
<string name="enabled">Piztuta</string>
<string name="disabled">Itzalita</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Abiarazi atzeko planoan</string>
<string name="update_available">%1$s bertsioa eskuragarri dago</string>
<string name="update_available_text">GitHub-era joan deskargatzeko\?</string>
<string name="category_outro">Amaitzeko txartelak eta kredituak</string>
<string name="video_format">Bideo formatua</string>
<string name="video_format_summary">Audioa eta bideoa deskargatzen badira, fitxategi bihurtzea.</string>
<string name="download_directory">Deskargatu hona</string>
<string name="download_directory_summary">Deskargatutako multimedia gordetzen den lekuan.</string>
<string name="app_uptodate">Azken bertsioa da hau.</string>
<string name="no_update_available">Azken bertsioa erabiltzen ari zara.</string>
<string name="advanced">Aurreratua</string>
<string name="player">Erabiltzailea</string>
<string name="appearance_summary">Egokitu aplikazioa zure gustura.</string>
<string name="advanced_summary">Erreproduzitzailea, deskargak, historiala</string>
<string name="no_replies">Iruzkin honek ez du erantzunik.</string>
<string name="authors_summary">Ezagutu LibreTube taldea eta aplikazioa hobetzen laguntzen duten guztiak.</string>
<string name="download_folder">Izena</string>
<string name="download_folder_summary">Deskargatutako multimediak gordetzen diren karpetaren izena.</string>
<string name="downloads_directory">Deskarga karpeta</string>
<string name="sdcard">SD txartela</string>
<string name="music_directory">Musika karpeta</string>
<string name="movies_directory">Bideo karpeta</string>
<string name="shareTo">Partekatu URLa honekin</string>
<string name="views">%1$s ikustaldi</string>
<string name="gradientIcon">Glib gradientea</string>
<string name="defaultIcon">Lehenetsia</string>
<string name="legacyIcon">Galdutako ondarea</string>
<string name="fireIcon">Modako sua</string>
<string name="torchIcon">Moda-zuzia</string>
<string name="shapedIcon">Forma ergela</string>
<string name="flameIcon">Sugar hegalaria</string>
<string name="birdIcon">Hegazti indartua</string>
<string name="search_hint">Bilaketa</string>
<string name="unsubscribe">Harpidetza kendu</string>
<string name="loggedout">Saioa itxita.</string>
<string name="empty">Erabiltzaile izena eta pasahitza sartu behar dituzu.</string>
<string name="createPlaylist">Erreprodukzio zerrenda sortu</string>
<string name="choose_filter">Hautatu bilaketa filtroa</string>
<string name="emptyPlaylistName">Erreprodukzio zerrendak ezin du hutsik egon</string>
<string name="fail">Akatsa :(</string>
<string name="systemLanguage">Sistema</string>
<string name="retry">Saiatu berriro</string>
<string name="all">Dena</string>
<string name="history">Historiala</string>
<string name="search_history">Bilatu historiala</string>
<string name="playlists">Erreprodukzio zerrendak</string>
<string name="category_sponsor">Iragarkiak</string>
<string name="segment_skipped">Alde batera utzitako zatiak</string>
<string name="sponsorblock_state">Piztuta</string>
<string name="category_segments">Zatiak</string>
<string name="contributing_summary">Ideiak, itzulpenak, diseinu aldaketak, kode moldaketak... Zenbat eta gehiago egin orduan eta hobeto!</string>
<string name="downloads">Deskargak</string>
<string name="app_behavior">Portaera</string>
<string name="appearance">Itxura</string>
<string name="website_summary">Bisitatu web gunea, aplikazioari eta haren ezaugarriei buruzko informazio gehiago izateko.</string>
<string name="contributing">Lagundu</string>
<string name="donate_summary">Eman zuretzako balio duenaren arabera, ahal baduzu.</string>
<string name="update">Bertsio berria bilatu</string>
<string name="license_summary">GPLv3+ copyleft libreko lizentzia bat da. Erabili, aztertu, aldatu eta partekatu nahi adina.</string>
<string name="donate">Dohaintza</string>
<string name="update_summary">Klik egin aplikazioa eguneratuta dagoen jakiteko.</string>
<string name="live">Zuzenean</string>
<string name="playback_speed">Erreprodukzio-abiadura lehenetsia</string>
<string name="authors">Egileak</string>
<string name="internal_storage">Barne biltegiratzea</string>
<string name="customInstance_summary">Gehitu instantzia pertsonalizatua (zure ardurapean)</string>
<string name="instance_api_url">Intantziaren API url-a</string>
<string name="empty_instance">Izena eta API url-a bete behar dituzu.</string>
<string name="invalid_url">Mesedez, sartu baliozko URL bat</string>
<string name="instance_name">Instantziaren izena</string>
<string name="addInstance">Gehitu instantzia</string>
<string name="clear_customInstances">Ezabatu instantzia pertsonalizatuak</string>
<string name="instance_summary">Piped, saioa hasi, harpidetzak</string>
<string name="version">%1$s bertsioa</string>
<string name="about_summary">Ezagutu LibreTubeko taldea eta nola gertatzen den dena.</string>
<string name="related_streams">Erlazionatutako fluxuak</string>
<string name="related_streams_summary">Erakutsi bideoekin erlazionatutako fluxuak.</string>
</resources>

View File

@ -24,7 +24,7 @@
<string name="importsuccess">Tilattu</string>
<string name="dlcomplete">Lataus on valmis.</string>
<string name="downloadfailed">Lataus epäonnistui.</string>
<string name="vlcerror">Ei voi avata VLC:ssä. Ehkä sitä ei ole vielä asennettu\?</string>
<string name="vlcerror">Ei voi avata VLC:ssä. Sitä ei ehkä ole asennettu.</string>
<string name="server_error">Palvelin vastasi ongelmaan. Ehkä kokeile toista instanssia\?</string>
<string name="empty">Käyttäjätunnus ja salasana eivät voi olla tyhjiä.</string>
<string name="notgmail">Tämä ei ole Gmail-tilisi.</string>
@ -92,4 +92,16 @@
<string name="color_purple">Violetti</string>
<string name="oledTheme">OLED-teema</string>
<string name="sponsorblock_notifications">Ilmoitukset</string>
<string name="authors">Tekijät</string>
<string name="no_replies">Tähän kommenttiin ei ole vastauksia.</string>
<string name="update_available">Versio %1$s on saatavilla.</string>
<string name="appearance">Ulkonäkö</string>
<string name="downloads">Lataukset</string>
<string name="video_format">Videoformaatti</string>
<string name="app_uptodate">Sovellus ajan tasalla</string>
<string name="donate">Lahjoita</string>
<string name="advanced_summary">Soitin, lataukset, historia</string>
<string name="appearance_summary">Tee sovelluksesta haluamasi näköinen.</string>
<string name="advanced">Edistynyt</string>
<string name="live">Live</string>
</resources>

View File

@ -15,10 +15,10 @@
<string name="cancel">Annuler</string>
<string name="loggedIn">Connecté.</string>
<string name="loggedout">Déconnecté.</string>
<string name="choose_quality_dialog">Choisir la qualité :</string>
<string name="login_first">Veuillez vous connecter et réessayer !</string>
<string name="choose_quality_dialog">Qualité</string>
<string name="login_first">Veuillez vous connecter et réessayer.</string>
<string name="instances">Sélectionner une instance</string>
<string name="customInstance">Ajouter une instance personnalisé</string>
<string name="customInstance">Instance personnalisée</string>
<string name="importsuccess">Abonné</string>
<string name="subscribeIsEmpty">Vous devez d\'abord vous abonner à des chaînes.</string>
<string name="cannotDownload">Impossible de télécharger ce flux.</string>
@ -29,26 +29,26 @@
<string name="vlcerror">Impossible de l\'ouvrir dans VLC. Il se peut qu\'il ne soit pas installé.</string>
<string name="app_theme">Thème de l\'appli</string>
<string name="already_logged_in">Vous êtes déjà connecté(e), vous pouvez vous déconnecter.</string>
<string name="region">Sélectionner une région</string>
<string name="region">Région</string>
<string name="login_register">Se connecter/s\'inscrire</string>
<string name="dlisinprogress">Un autre téléchargement est en cours, veuillez attendre que celui-ci termine.</string>
<string name="dlisinprogress">Veuillez attendre que tous les téléchargements soient terminés…</string>
<string name="please_login">Vous devez d\'abord vous connecter ou vous inscrire à l\'aide du menu paramètre !</string>
<string name="import_from_yt">Importer les abonnements depuis YouTube</string>
<string name="server_error">Le serveur a rencontré un problème. Peut-être essayez une autre instance \?</string>
<string name="unknown_error">Erreur réseau.</string>
<string name="error">Quelque chose s\'est mal passé.</string>
<string name="empty">Le nom d\'utilisateur et le mot de passe ne peuvent pas être vides.</string>
<string name="notgmail">Ce n\'est pas votre compte Gmail.</string>
<string name="notgmail">Ceci est pour un compte LibreTube.</string>
<string name="defres">Résolution vidéo par défaut</string>
<string name="addToPlaylist">Ajouter à la liste de lecture</string>
<string name="success">Succès !</string>
<string name="success">Terminé.</string>
<string name="fail">Échec :(</string>
<string name="grid">Choisissez les colonnes de la grille</string>
<string name="grid">Colonnes de la grille</string>
<string name="emptyList">Il n\'y a rien ici.</string>
<string name="deletePlaylist">Supprimer la liste de lecture</string>
<string name="areYouSure">Voulez-vous supprimer cette liste de lecture \?</string>
<string name="createPlaylist">Créer une liste de lecture</string>
<string name="playlistCreated">Liste de lecture créée !</string>
<string name="playlistCreated">Liste de lecture créée.</string>
<string name="playlistName">Nom de la liste de lecture</string>
<string name="about">À propos</string>
<string name="emptyPlaylistName">Le nom de la liste de lecture ne peut pas être vide</string>
@ -58,20 +58,20 @@
<string name="library">Bibliothèque</string>
<string name="startpage">Accueil</string>
<string name="videos">Vidéos</string>
<string name="changeLanguage">Changer la langue</string>
<string name="systemLanguage">Langue du système</string>
<string name="systemDefault">Par défaut du système</string>
<string name="changeLanguage">Langue</string>
<string name="systemLanguage">Système</string>
<string name="systemDefault">Système</string>
<string name="darkTheme">Thème sombre</string>
<string name="subscribers">%1$s abonnés</string>
<string name="comments">Commentaires</string>
<string name="videoCount">%1$s vidéos</string>
<string name="retry">Réessayer</string>
<string name="noInternet">Pas de connexion Internet</string>
<string name="noInternet">Connectez-vous d\'abord à Internet.</string>
<string name="website">Site web</string>
<string name="instance">Instance</string>
<string name="settings">Paramètres</string>
<string name="location">Emplacement</string>
<string name="customization">Personnalisation</string>
<string name="customization">Ajustements</string>
<string name="channels">Chaînes</string>
<string name="choose_filter">Choisissez le filtre de recherche</string>
<string name="all">Tout</string>
@ -87,9 +87,9 @@
<string name="defaultTab">Onglet par défaut</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="sponsorblock_summary">Utilise l\'API de https://sponsor.ajay.app/</string>
<string name="category_outro_description">Crédits ou quand les génériques YouTube apparaissent. Pas pour les conclusions avec des informations.</string>
<string name="category_intro_description">Un intervalle sans contenu réel. Il peut s\'agir d\'une pause, d\'une image statique ou d\'une animation répétitive. Il ne doit pas être utilisé pour les transitions contenant des informations.</string>
<string name="category_outro">Générique de fin/crédits</string>
<string name="category_outro_description">Info après la fin. Pas pour les conclusions avec des informations.</string>
<string name="category_intro_description">Un intervalle sans contenu réel. Il peut s\'agir d\'une pause, d\'une image statique ou d\'une animation répétitive. Ne doit pas être utilisé pour les transitions contenant des informations.</string>
<string name="category_outro">Générique de fin et crédits</string>
<string name="segment_skipped">Segment sauté</string>
<string name="sponsorblock_state">Activé</string>
<string name="category_segments">Segments</string>
@ -98,22 +98,79 @@
<string name="category_selfpromo_description">Semblable à « sponsor » sauf pour les activités non rémunérées ou l\'autopromotion. Ceci inclut les sections sur les marchandises, les dons ou les informations sur les personnes avec lesquelles ils ont collaboré.</string>
<string name="category_intro">Animation d\'intro/entracte</string>
<string name="license">Licence</string>
<string name="category_interaction_description">Lorsqu\'il y a un bref rappel pour aimer, s\'abonner ou suivre l\'entreprise au milieu du contenu. S\'il est long ou s\'il traite d\'un sujet spécifique, il doit plutôt être placé sous la rubrique « autopromotion ».</string>
<string name="category_interaction_description">Lorsqu\'il y a un bref rappel pour aimer, s\'abonner ou suivre au milieu du contenu. S\'il est long ou porte sur un sujet spécifique, il doit plutôt s\'agir d\'autopromotion.</string>
<string name="category_sponsor_description">Promotion payée, références payées et publicités directes. Il ne s\'agit pas d\'autopromotion ou de citation gratuite de causes/créateurs/sites web/produits qu\'ils aiment.</string>
<string name="category_interaction">Rappel d\'interaction (S\'abonner)</string>
<string name="color_purple">Violet</string>
<string name="category_interaction">Rappel d\'interaction (par ex. : S\'abonner)</string>
<string name="color_purple">Violet plaisant</string>
<string name="color_blue">Bleu pixel</string>
<string name="color_accent">Accentuation des couleurs</string>
<string name="color_red">Rouge</string>
<string name="color_yellow">Jaune</string>
<string name="oledTheme">Thème OLED</string>
<string name="material_you">Material You</string>
<string name="color_green">Vert</string>
<string name="color_accent">Accentuations</string>
<string name="color_red">Rouge de repos</string>
<string name="color_yellow">Jaune vif</string>
<string name="oledTheme">Thème noir</string>
<string name="material_you">Mystic Material 3</string>
<string name="color_green">Vert groovy</string>
<string name="sponsorblock_notifications">Notifications</string>
<string name="enabled">Activé</string>
<string name="disabled">Désactivé</string>
<string name="app_icon">Icône de l\'appli</string>
<string name="app_icon">Icône</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Lecture en arrière-plan</string>
<string name="playOnBackground">Lire en arrière-plan</string>
<string name="contributing_summary">Que vous ayez des idées, des traductions, des modifications de conception, des nettoyages de code, ou de véritables changements de code lourds, l\'aide est toujours la bienvenue. Plus on en fait, mieux c\'est !</string>
<string name="website_summary">Visitez le site web pour plus d\'informations sur l\'application et ses fonctionnalités.</string>
<string name="donate_summary">Si vous aimez l\'application et appréciez notre travail, nous serions heureux de votre don.</string>
<string name="contributing">Contribution</string>
<string name="donate">Faire un don</string>
<string name="advanced_summary">Lecteur, téléchargements, historique</string>
<string name="video_format_summary">Conversion des fichiers si on télécharge à la fois de l\'audio et de la vidéo.</string>
<string name="download_directory_summary">Où sont stockés les médias téléchargés.</string>
<string name="license_summary">La GPLv3+ est une licence libre copylefté. Utilisez, étudiez, modifiez et partagez ; avec tous.</string>
<string name="update_available">La version %1$s est disponible</string>
<string name="update_available_text">Allez sur releases sur GitHub pour le télécharger \?</string>
<string name="appearance">Apparence</string>
<string name="app_behavior">Comportement</string>
<string name="downloads">Téléchargements</string>
<string name="video_format">Format vidéo</string>
<string name="download_directory">Télécharger vers</string>
<string name="update">Rechercher une nouvelle version</string>
<string name="update_summary">Cliquez pour savoir si l\'application est à jour.</string>
<string name="app_uptodate">Exécution de la dernière version.</string>
<string name="no_update_available">Vous utilisez la dernière version.</string>
<string name="playback_speed">Vitesse de lecture par défaut</string>
<string name="advanced">Avancé</string>
<string name="player">Lecteur</string>
<string name="appearance_summary">Ajustez l\'application à votre convenance.</string>
<string name="live">En direct</string>
<string name="no_replies">Ce commentaire n\'a pas de réponse.</string>
<string name="authors">Auteurs</string>
<string name="authors_summary">Faites connaissance avec l\'équipe LibreTube et tous ses contributeurs qui aident à améliorer l\'application.</string>
<string name="sdcard">Carte SD</string>
<string name="download_folder_summary">Le nom du dossier dans lequel le média téléchargé est stocké.</string>
<string name="download_folder">Nom</string>
<string name="internal_storage">Stockage interne</string>
<string name="downloads_directory">Dossier de téléchargement</string>
<string name="music_directory">Dossier musique</string>
<string name="shareTo">Partager l\'URL vers</string>
<string name="movies_directory">Dossier de films</string>
<string name="views">%1$s vues</string>
<string name="defaultIcon">Par défaut</string>
<string name="legacyIcon">Héritage perdu</string>
<string name="fireIcon">Feu à la mode</string>
<string name="birdIcon">Oiseau boosté</string>
<string name="torchIcon">Torche tendance</string>
<string name="instance_summary">Piped, connexion, abonnements</string>
<string name="invalid_url">Veuillez entrer une URL valide</string>
<string name="customInstance_summary">Ajouter une instance personnalisée (à vos risques et périls)</string>
<string name="instance_name">Nom de l\'instance</string>
<string name="flameIcon">Flamme volante</string>
<string name="instance_api_url">URL de l\'API de l\'instance</string>
<string name="clear_customInstances">Effacer les instances personnalisées</string>
<string name="addInstance">Ajouter une instance</string>
<string name="empty_instance">Vous devez compléter le nom et l\'URL de l\'API.</string>
<string name="shapedIcon">Forme idiote</string>
<string name="gradientIcon">Dégradé désinvolte</string>
<string name="version">Version %1$s</string>
<string name="about_summary">Découvrez l\'équipe LibreTube et comment tout cela se passe.</string>
<string name="related_streams">Streams connexes</string>
<string name="related_streams_summary">Afficher les flux associés aux vidéos.</string>
</resources>

View File

@ -3,7 +3,7 @@
<string name="search_hint">Cerca</string>
<string name="loggedIn">Autenticato.</string>
<string name="yes"></string>
<string name="choose_quality_dialog">Scegli qualità:</string>
<string name="choose_quality_dialog">Qualità</string>
<string name="unsubscribe">DISISCRIVITI</string>
<string name="share">Condividi</string>
<string name="download">Scarica</string>
@ -14,7 +14,7 @@
<string name="loggedout">Disconnesso.</string>
<string name="registered">Registrazione completata! Puoi iscriverti ai canali che desideri.</string>
<string name="already_logged_in">Hai già effettuato l\'accesso, puoi disconnetterti dall\'account.</string>
<string name="login_first">Accedi e riprova!</string>
<string name="login_first">Accedi e riprova.</string>
<string name="username">Nome utente</string>
<string name="password">Password</string>
<string name="subscribe">Iscriviti</string>
@ -27,27 +27,27 @@
<string name="app_theme">Tema dell\'app</string>
<string name="error">Qualcosa è andato storto.</string>
<string name="empty">Il nome utente e la password non possono essere vuoti.</string>
<string name="notgmail">Non è il tuo account Gmail.</string>
<string name="notgmail">Questo è per un account LibreTube.</string>
<string name="defres">Risoluzione video di Default</string>
<string name="dlisinprogress">Un altro scaricamento è già in corso, si prega di aspettare che sia finito.</string>
<string name="dlisinprogress">Si prega di aspettare che tutti gli scaricamenti siano finiti…</string>
<string name="unknown_error">Errore di connessione.</string>
<string name="server_error">Il server ha un problema. Prova un\'altra istanza\?</string>
<string name="customInstance">Aggiungi un\'istanza personalizzata</string>
<string name="customInstance">Istanza personalizzata</string>
<string name="instances">Scegli un\'Istanza</string>
<string name="success">Successo!</string>
<string name="success">Finito.</string>
<string name="fail">Fallito :(</string>
<string name="emptyList">Non c\'è nulla.</string>
<string name="deletePlaylist">Elimina la playlist</string>
<string name="areYouSure">Sei sicuro/a di volerla eliminare\?</string>
<string name="grid">Scegli le colonne della griglia</string>
<string name="grid">Colonne della griglia</string>
<string name="save">Salva</string>
<string name="region">Scegli una Regione</string>
<string name="region">Regione</string>
<string name="importsuccess">Sottoscritto</string>
<string name="login_register">Accedi/Registrati</string>
<string name="login_register">Accedi/registrati</string>
<string name="please_login">Accedi o Registrati nelle impostazioni prima!</string>
<string name="subscribeIsEmpty">Iscriviti prima ad alcuni canali.</string>
<string name="createPlaylist">Crea playlist</string>
<string name="playlistCreated">Playlist creata!</string>
<string name="playlistCreated">Playlist creata.</string>
<string name="playlistName">Nome playlist</string>
<string name="addToPlaylist">Aggiungi a playlist</string>
<string name="about">Informazioni</string>
@ -55,23 +55,23 @@
<string name="library">Raccolta</string>
<string name="videos">Video</string>
<string name="import_from_yt_summary">Da YouTube o NewPipe</string>
<string name="systemDefault">Predefinito del sistema</string>
<string name="systemDefault">Sistema</string>
<string name="startpage">Pagina principale</string>
<string name="subscribers">%1$s abbonati</string>
<string name="subscriptions">Abbonamenti</string>
<string name="changeLanguage">Cambia la lingua</string>
<string name="systemLanguage">Lingua del sistema</string>
<string name="changeLanguage">Lingua</string>
<string name="systemLanguage">Sistema</string>
<string name="lightTheme">Tema chiaro</string>
<string name="darkTheme">Tema scuro</string>
<string name="comments">Commenti</string>
<string name="videoCount">%1$s video</string>
<string name="noInternet">Nessuna connessione a Internet</string>
<string name="noInternet">Connettiti ad internet prima.</string>
<string name="retry">Riprova</string>
<string name="instance">Istanza</string>
<string name="settings">Impostazioni</string>
<string name="website">Sito web</string>
<string name="location">Posizione</string>
<string name="customization">Personalizzazione</string>
<string name="customization">Regolazioni</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="choose_filter">Scegli filtro di ricerca</string>
<string name="channels">Canali</string>
@ -85,35 +85,92 @@
<string name="music_albums">Album YT Musica</string>
<string name="music_playlists">Playlist YT Musica</string>
<string name="defaultTab">Scheda predefinita</string>
<string name="sponsorblock_summary">Usa l\'API da https://sponsor.ajay.app/</string>
<string name="sponsorblock_summary">Usa l\'API https://sponsor.ajay.app</string>
<string name="category_sponsor">Sponsor</string>
<string name="segment_skipped">Segmento saltato</string>
<string name="sponsorblock_state">Abilitato</string>
<string name="sponsorblock_state">Attivo</string>
<string name="category_segments">Segmenti</string>
<string name="category_sponsor_description">Promozione a pagamento, riferimento a pagamento e pubblicità diretta. Non per l\'autopromozione o per la pubblicità gratuita di cause/creatori/siti web/prodotti di loro gradimento.</string>
<string name="category_selfpromo">Non retribuito/Autopromozione</string>
<string name="category_selfpromo_description">Simile a «sponsor», tranne che per la promozione personale o non retribuita. Sono incluse le sezioni relative al merchandising, alle donazioni o alle informazioni sulle persone con cui hanno collaborato.</string>
<string name="category_selfpromo_description">Simile a sponsor, tranne che per la promozione personale o non retribuita. Sono incluse le sezioni relative al merchandising, alle donazioni o alle informazioni sulle persone con cui hanno collaborato.</string>
<string name="category_intro">Intervallo/Animazione</string>
<string name="category_intro_description">Un intervallo senza contenuto effettivo. Può essere una pausa, un fotogramma statico, un\'animazione ripetuta. Non deve essere utilizzato per transizioni contenenti informazioni.</string>
<string name="category_interaction">Promemoria di interazione (Iscriviti)</string>
<string name="category_interaction_description">Quando c\'è un breve promemoria per mettere «Mi piace», iscriversi o seguirli nel mezzo del contenuto. Se è lungo o riguarda qualcosa di specifico, dovrebbe essere invece sotto la voce autopromozione.</string>
<string name="category_interaction">Promemoria di interazione (mi piace e iscriviti)</string>
<string name="category_interaction_description">Quando c\'è un breve promemoria per mettere mi piace, iscriversi o seguire nel mezzo del contenuto. Se è lungo o riguarda qualcosa di specifico, dovrebbe essere invece autopromozione.</string>
<string name="license">Licenza</string>
<string name="color_accent">Accento di colore</string>
<string name="color_red">Rosso</string>
<string name="color_accent">Accenti</string>
<string name="color_red">Rosso riposante</string>
<string name="color_blue">Blu pixel</string>
<string name="color_yellow">Giallo</string>
<string name="color_green">Verde</string>
<string name="color_purple">Viola</string>
<string name="oledTheme">Tema OLED</string>
<string name="color_yellow">Giallo lanciato</string>
<string name="color_green">Verde groovy</string>
<string name="color_purple">Viola piacevole</string>
<string name="oledTheme">Tema nero</string>
<string name="clear_history">Cancella la cronologia</string>
<string name="material_you">Material You</string>
<string name="material_you">Mystic Material 3</string>
<string name="sponsorblock_notifications">Notifiche</string>
<string name="enabled">Abilitato</string>
<string name="disabled">Disabilitato</string>
<string name="category_outro">Titoli di coda/Crediti</string>
<string name="category_outro_description">Crediti o quando appaiono le miniature di YouTube. Non deve essere usato se contengono informazioni rilevanti.</string>
<string name="app_icon">Icona dell\'app</string>
<string name="enabled">Attivo</string>
<string name="disabled">Disattivato</string>
<string name="category_outro">Titoli di coda e crediti</string>
<string name="category_outro_description">Informazioni dopo la fine. Non deve essere usato se contengono informazioni rilevanti.</string>
<string name="app_icon">Icona</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Riproduci in sfondo</string>
<string name="playOnBackground">Riproduci in sottofondo</string>
<string name="downloads">Scaricamenti</string>
<string name="video_format_summary">Conversione dei file se entrambi audio e video vengono scaricati.</string>
<string name="video_format">Formato video</string>
<string name="advanced_summary">Lettore, scaricamenti, cronologia</string>
<string name="update_available">La versione %1$s è disponibile</string>
<string name="update_available_text">Andare ai rilasci su GitHub per scaricarlo\?</string>
<string name="appearance">Aspetto</string>
<string name="app_behavior">Comportamento</string>
<string name="download_directory">Scarica in</string>
<string name="download_directory_summary">Dove vengono memorizzati i media scaricati.</string>
<string name="website_summary">Visita il sito per più informazioni sull\'app e le sue funzionalità.</string>
<string name="contributing">Collabora</string>
<string name="contributing_summary">Fornisci idee, traduzioni, modifiche di design, pulizia e scrittura del codice. Più si fa, meglio è!</string>
<string name="license_summary">La GPLv3+ è una licenza libera copyleft. Utilizza, studia, cambia e condividi; con tutti.</string>
<string name="donate">Dona</string>
<string name="donate_summary">Dai quello che questo vale per te, se puoi. Il team LibreTube è più piccolo della vostra donazione o aiuto.</string>
<string name="update">Cerca una nuova versione</string>
<string name="update_summary">Clicca qui per scoprire se l\'app è aggiornata.</string>
<string name="app_uptodate">Versione più recente in esecuzione.</string>
<string name="no_update_available">Stai eseguendo l\'ultima versione.</string>
<string name="playback_speed">Velocità di riproduzione predefinita</string>
<string name="advanced">Avanzate</string>
<string name="player">Lettore</string>
<string name="appearance_summary">Regola l\'app a tuo piacimento.</string>
<string name="live">Dal vivo</string>
<string name="authors">Autori</string>
<string name="no_replies">Questo commento non ha risposte.</string>
<string name="authors_summary">Conosci il team LibreTube e tutti i suoi collaboratori che contribuiscono a migliorare l\'applicazione.</string>
<string name="downloads_directory">Cartella degli scaricamenti</string>
<string name="sdcard">Scheda SD</string>
<string name="music_directory">Cartella musicale</string>
<string name="shareTo">Condividi l\'URL a</string>
<string name="download_folder">Nome</string>
<string name="download_folder_summary">Il nome della cartella in cui vengono memorizzati i media scaricati.</string>
<string name="internal_storage">Memoria interna</string>
<string name="movies_directory">Cartella dei film</string>
<string name="torchIcon">Torcia di tendenza</string>
<string name="legacyIcon">Eredità persa</string>
<string name="gradientIcon">Gradiente disinvolto</string>
<string name="fireIcon">Fuoco alla moda</string>
<string name="birdIcon">Uccello potenziato</string>
<string name="defaultIcon">Predefinito</string>
<string name="shapedIcon">Sagomato sciocco</string>
<string name="views">%1$s visualizzazioni</string>
<string name="flameIcon">Fiamma volante</string>
<string name="instance_name">Nome istanza</string>
<string name="addInstance">Aggiungi istanza</string>
<string name="clear_customInstances">Pulisci istanze personalizzate</string>
<string name="empty_instance">Devi compilare il nome e l\'url API.</string>
<string name="instance_summary">Piped, accesso, iscrizioni</string>
<string name="customInstance_summary">Aggiungi un\'istanza personalizzata (a tuo rischio)</string>
<string name="instance_api_url">URL API dell\'istanza</string>
<string name="invalid_url">Si prega di inserire un URL valido</string>
<string name="version">Versione %1$s</string>
<string name="about_summary">Conosci il team LibreTube e come tutto accade.</string>
<string name="related_streams_summary">Mostra stream correlati al video.</string>
<string name="related_streams">Stream correlati</string>
</resources>

View File

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="customization">התאמות</string>
<string name="color_blue">כחול פיקסלים</string>
<string name="search_hint">חיפוש</string>
<string name="videos">סרטונים</string>
<string name="subscribe">רישום</string>
<string name="unsubscribe">הסרת רישום</string>
<string name="share">שיתוף</string>
<string name="cancel">ביטול</string>
<string name="loggedIn">נכנסת.</string>
<string name="loggedout">יצאת.</string>
<string name="instances">בחירת עותק</string>
<string name="customInstance">עותק אחר</string>
<string name="login_register">כניסה/הרשמה</string>
<string name="subscribeIsEmpty">עליך להירשם לכמה ערוצים תחילה.</string>
<string name="import_from_yt_summary">מ־YouTube או NewPipe</string>
<string name="app_theme">ערכת עיצוב</string>
<string name="server_error">יש תקלה עם השרת. לנסות עותק אחר\?</string>
<string name="error">משהו השתבש.</string>
<string name="empty">עליך למלא שם משתמש וסיסמה.</string>
<string name="notgmail">זה לחשבון LibreTube.</string>
<string name="grid">עמודות רשת</string>
<string name="createPlaylist">יצירת רשימת נגינה</string>
<string name="playlistName">שם רשימת הנגינה</string>
<string name="emptyPlaylistName">שם רשימת הנגינה לא יכול להישאר ריק</string>
<string name="addToPlaylist">הוספה לרשימת נגינה</string>
<string name="success">בוצע.</string>
<string name="fail">נכשל :(</string>
<string name="about">על אודות</string>
<string name="lightTheme">אור זורח</string>
<string name="subscribers">%1$s מנויים</string>
<string name="comments">הערות</string>
<string name="choose_filter">בחירת מסנן חיפוש</string>
<string name="channels">ערוצים</string>
<string name="all">הכול</string>
<string name="playlists">רשימות נגינה</string>
<string name="okay">אישור</string>
<string name="history">היסטוריה</string>
<string name="search_history">חיפוש בהיסטוריה</string>
<string name="clear_history">פינוי ההיסטוריה</string>
<string name="music_songs">שירים מ־YT Music</string>
<string name="music_videos">סרטונים מ־YT Music</string>
<string name="music_albums">אלבומים מ־YT Music</string>
<string name="music_playlists">רשימות נגינה מ־YT Music</string>
<string name="defaultTab">לשונית ברירת מחדל</string>
<string name="category_sponsor_description">קידום ממומן, הפניות בתשלום ופרסום ישיר. לא למטרות קידום עצמי או הוקרה של מטרות/יוצרים/אתרים/מוצרים אהובים עליהם.</string>
<string name="category_interaction">תזכורת אינטראקציה (לייק ומינוי)</string>
<string name="category_outro">כרטיסי סיום וקרדיטים</string>
<string name="category_outro_description">מידע לאחר הסיום. לא למסקנות עם מידע.</string>
<string name="license">רישיון</string>
<string name="color_accent">צבעים משניים</string>
<string name="color_red">אדום</string>
<string name="color_yellow">צהוב</string>
<string name="color_green">ירוק</string>
<string name="color_purple">סגול</string>
<string name="oledTheme">ערכת עיצוב ל־OLED</string>
<string name="sponsorblock_notifications">התראות</string>
<string name="app_icon">סמל</string>
<string name="enabled">פעיל</string>
<string name="playOnBackground">ניגון ברקע</string>
<string name="update_available_text">לעבור ל־releases (מהדורות) ב־GitHub כדי להוריד אותה\?</string>
<string name="appearance">מראה</string>
<string name="app_behavior">התנהגות</string>
<string name="video_format">תצורת סרטונים</string>
<string name="download_directory">הורדה אל</string>
<string name="download_directory_summary">איפה יאוחסנו פריטי המדיה שבחרת להוריד.</string>
<string name="website_summary">כדאי לבקר באתר למידע נוסף על היישום והיכולות שלו.</string>
<string name="donate">תרומה</string>
<string name="license_summary">הרישיון הציבורי הכללי של גנו הוא רישיון חופשי ומתירני לתוכנה ולסוגים נוספים של יצירות.</string>
<string name="update_summary">לחיצה כאן תבדוק אם היישומון עדכני.</string>
<string name="player">נגן</string>
<string name="library">ספרייה</string>
<string name="password">סיסמה</string>
<string name="register">הרשמה</string>
<string name="live">חי</string>
<string name="startpage">בית</string>
<string name="please_login">נא להיכנס או להירשם דרך ההגדרות תחילה.</string>
<string name="importsuccess">נרשמת</string>
<string name="cannotDownload">לא ניתן להוריד את התזרים הזה.</string>
<string name="vlcerror">לא ניתן לפתוח ב־VLC. אולי הוא לא מותקן.</string>
<string name="emptyList">אין כאן כלום.</string>
<string name="systemLanguage">מערכת</string>
<string name="subscriptions">מינויים</string>
<string name="yes">כן</string>
<string name="choose_quality_dialog">איכות</string>
<string name="login">כניסה</string>
<string name="logout">יציאה</string>
<string name="dlcomplete">ההורדה הושלמה.</string>
<string name="vlc">פתיחה ב־VLC</string>
<string name="sponsorblock_summary">משתמש ב־API https://sponsor.ajay.app/</string>
<string name="sponsorblock_state">פעיל</string>
<string name="youtube">YouTube</string>
<string name="download">הורדה</string>
<string name="username">שם משתמש</string>
<string name="registered">ההרשמה הצליחה. עכשיו אפשר להירשם למינוי לערוצים.</string>
<string name="login_first">נא להיכנס ולנסות שוב.</string>
<string name="save">שמירה</string>
<string name="region">אזור</string>
<string name="dlisinprogress">נא להמתין לסיום כל ההורדות…</string>
<string name="downloadfailed">ההורדה נכשלה.</string>
<string name="import_from_yt">ייבוא מינויים</string>
<string name="systemDefault">מערכת</string>
<string name="settings">הגדרות</string>
<string name="location">מקום</string>
<string name="already_logged_in">כבר נכנסת. אפשר גם לצאת מהחשבון שלך.</string>
<string name="unknown_error">שגיאת רשת.</string>
<string name="defres">רזולוציית ברירת המחדל לסרטונים</string>
<string name="deletePlaylist">מחיקת רשימת נגינה</string>
<string name="areYouSure">למחוק את רשימת הנגינה\?</string>
<string name="playlistCreated">נוצרה רשימת נגינה.</string>
<string name="changeLanguage">שפה</string>
<string name="darkTheme">אפלה נעלמת</string>
<string name="instance">עותק</string>
<string name="videoCount">%1$s סרטונים</string>
<string name="category_interaction_description">כשיש תזכורת קצרה לעשות לייק, להירשם למינוי או לעקוב באמצע התוכן. אם זה ארוך או על משהו מסוים, זה אמור להיות קידום עצמי במקום.</string>
<string name="website">אתר</string>
<string name="noInternet">קודם צריך להתחבר לאינטרנט.</string>
<string name="retry">לנסות שוב</string>
<string name="sponsorblock">חסימת חסות</string>
<string name="category_segments">מקטעים</string>
<string name="material_you">Mystic Material 3</string>
<string name="update_available">גרסה %1$s זמינה כעת</string>
<string name="segment_skipped">מקטע שדולג</string>
<string name="category_sponsor">נותן חסות</string>
<string name="category_selfpromo">קידום לא בתשלום/עצמי</string>
<string name="disabled">כבוי</string>
<string name="piped">Piped</string>
<string name="downloads">הורדות</string>
<string name="video_format_summary">להמיר קבצים רק אם גם השמע והסרטון התקבלו.</string>
<string name="contributing">תרומה</string>
<string name="no_update_available">זאת הגרסה העדכנית ביותר.</string>
<string name="donate_summary">אפשר להעניק בהתאם לערך שהוא מעניק לך. צוות LibreTube קטן מהתרומה או הסיוע שלך.</string>
<string name="update">איתור גרסה חדשה</string>
<string name="advanced_summary">נגן, הורדות, היסטוריה</string>
<string name="app_uptodate">היישומון עדכני.</string>
<string name="playback_speed">מהירות נגינה כברירת מחדל</string>
<string name="advanced">מתקדם</string>
<string name="appearance_summary">התאמת היישומון לטעמך.</string>
<string name="category_intro_description">פרק זמן ללא תוכן ממשי. יכולה להיות השהייה, תמונה ללא תזוזה, הנפשה מחזורית. אסור להשתמש בזה למעברונים שמכילים מידע.</string>
<string name="contributing_summary">אם יש לך רעיונות, תרגומים, שינויים בעיצוב, ניקוי קוד או שינויי קוד מעמיקים, נשמח לקבל עזרה. ככל שיותר נעשה כך היישומון משתפר יותר!</string>
<string name="category_selfpromo_description">דומה ל„נותן חסות” למעט קידום עצמי ללא תשלום. לרבות סעיפים על אביזרים ממותגים, תרומות או מידע על שיתופי פעולה.</string>
<string name="category_intro">הפוגה/הנפשת הקדמה</string>
<string name="authors">יוצרים</string>
<string name="authors_summary">כאן מופיעים אלו שעומדים מאחורי LibreTube לצד אלו שמסייעים בשיפור היישומון.</string>
<string name="no_replies">להערה זו אין תגובות.</string>
<string name="download_folder_summary">שם התיקייה שבה תאוחסן מדיה שהורדה.</string>
<string name="internal_storage">אחסון פנימי</string>
<string name="downloads_directory">תיקיית הורדות</string>
<string name="movies_directory">תיקיית סרטים</string>
<string name="music_directory">תיקיית מוזיקה</string>
<string name="download_folder">שם</string>
<string name="sdcard">כרטיס SD</string>
<string name="shareTo">שיתוף כתובת אל</string>
<string name="views">%1$s צפיות</string>
<string name="defaultIcon">ברירת מחדל</string>
<string name="legacyIcon">מורשת שאבדה</string>
<string name="gradientIcon">מדרג של Glib</string>
<string name="fireIcon">אש אופנתית</string>
<string name="flameIcon">להבה מעופפת</string>
<string name="birdIcon">ציפור מוגברת</string>
<string name="torchIcon">לפיד בוער</string>
<string name="instance_summary">Piped, כניסה, מינויים</string>
<string name="customInstance_summary">הוספת עותק משלך (על אחריותך)</string>
<string name="instance_name">שם העותק</string>
<string name="empty_instance">יש למלא את השם ואת כתובת ה־API.</string>
<string name="invalid_url">נא למלא כתובת תקנית</string>
<string name="version">גרסה %1$s</string>
<string name="about_summary">היכרות עם הצוות של LibreTube ואיך הכול התחיל.</string>
<string name="instance_api_url">כתובת API של העותק</string>
<string name="addInstance">הוספת עותק</string>
<string name="clear_customInstances">מחיקת עותקים אחרים</string>
</resources>

View File

@ -16,9 +16,9 @@
<string name="import_from_yt_summary">YouTubeまたはNewPipeから</string>
<string name="playlistName">プレイリスト名</string>
<string name="emptyPlaylistName">プレイリスト名は空白にできません</string>
<string name="success">成功</string>
<string name="success">成功</string>
<string name="fail">失敗 :(</string>
<string name="systemLanguage">システムの言語</string>
<string name="systemLanguage">システム</string>
<string name="customization">カスタマイズ</string>
<string name="website">Webサイト</string>
<string name="okay">OK</string>
@ -36,15 +36,15 @@
<string name="startpage">ホーム</string>
<string name="share">共有</string>
<string name="videos">動画</string>
<string name="login_first">ログインしてから再試行してください</string>
<string name="login_first">ログインしてから再試行してください</string>
<string name="customInstance">インスタンスを追加</string>
<string name="dlisinprogress">ほかのダウンロードが処理中です。終了するまでお待ちください。</string>
<string name="dlisinprogress">全てのダウンロードが終了するまでお待ちください…</string>
<string name="error">エラーが発生しました。</string>
<string name="subscriptions">登録チャンネル</string>
<string name="region">地域を選択</string>
<string name="region">地域</string>
<string name="library">ライブラリ</string>
<string name="yes">はい</string>
<string name="choose_quality_dialog">画質を選択:</string>
<string name="choose_quality_dialog">画質</string>
<string name="search_hint">検索</string>
<string name="unsubscribe">登録解除</string>
<string name="logout">ログアウト</string>
@ -55,7 +55,7 @@
<string name="downloadfailed">ダウンロードに失敗しました。</string>
<string name="unknown_error">ネットワークにエラーが発生しました。</string>
<string name="createPlaylist">プレイリストを作成</string>
<string name="playlistCreated">プレイリストを作成しました</string>
<string name="playlistCreated">プレイリストを作成しました</string>
<string name="channels">チャンネル</string>
<string name="already_logged_in">すでにログイン済みです。ログアウトしてください。</string>
<string name="login_register">ログイン/新規登録</string>
@ -66,16 +66,16 @@
<string name="empty">ユーザー名とパスワードを入力する必要があります。</string>
<string name="import_from_yt">登録チャンネルをインポート</string>
<string name="defres">動画のデフォルト画質</string>
<string name="grid">グリッドのカラム数を選択</string>
<string name="grid">グリッドのカラム数</string>
<string name="deletePlaylist">プレイリストを削除</string>
<string name="areYouSure">このプレイリストを削除しますか?</string>
<string name="about">アプリについて</string>
<string name="systemDefault">システムのデフォルト</string>
<string name="systemDefault">システム</string>
<string name="lightTheme">ライトテーマ</string>
<string name="notgmail">あなたのGmailアカウントではありません。</string>
<string name="emptyList">何もありません。</string>
<string name="addToPlaylist">プレイリストに追加</string>
<string name="changeLanguage">言語を変更</string>
<string name="changeLanguage">言語</string>
<string name="darkTheme">ダークテーマ</string>
<string name="subscribers">登録者 %1$s人</string>
<string name="settings">設定</string>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="choose_quality_dialog">품질 선택:</string>
<string name="choose_quality_dialog">품질</string>
<string name="search_hint">검색</string>
<string name="subscribe">구독</string>
<string name="unsubscribe">구독 취소</string>
@ -17,12 +17,12 @@
<string name="loggedout">로그아웃했습니다.</string>
<string name="registered">가입되었습니다. 이제 채널을 구독할 수 있습니다.</string>
<string name="instances">인스턴스 선택</string>
<string name="customInstance">커스텀 인스턴스 추가</string>
<string name="region">지역 선택</string>
<string name="customInstance">커스텀 인스턴스</string>
<string name="region">지역</string>
<string name="login_register">로그인/회원가입</string>
<string name="please_login">먼저 설정에서 로그인하거나 회원가입하세요!</string>
<string name="already_logged_in">이미 로그인했습니다. 계정에서 로그아웃할 수 있습니다.</string>
<string name="login_first">로그인 후 다시 시도해 주세요!</string>
<string name="login_first">로그인 후 다시 시도해 주세요.</string>
<string name="yes">확인</string>
<string name="importsuccess">구독 중</string>
<string name="cannotDownload">이 스트림을 다운로드할 수 없습니다.</string>
@ -35,20 +35,20 @@
<string name="server_error">서버에 문제가 발생했습니다. 다른 인스턴스를 시도할까요\?</string>
<string name="unknown_error">네트워크 오류.</string>
<string name="empty">사용자 이름과 암호를 입력해야 합니다.</string>
<string name="grid">그리드 열 선택</string>
<string name="grid">그리드 열</string>
<string name="emptyList">아무것도 없습니다.</string>
<string name="deletePlaylist">플레이리스트 삭제</string>
<string name="areYouSure">이 플레이리스트를 삭제하시겠습니까\?</string>
<string name="createPlaylist">플레이리스트 만들기</string>
<string name="playlistCreated">플레이리스트가 생성되었습니다!</string>
<string name="playlistCreated">플레이리스트가 생성되었습니다.</string>
<string name="addToPlaylist">플레이리스트에 추가</string>
<string name="success">성공!</string>
<string name="success">완료.</string>
<string name="fail">실패:(</string>
<string name="about">정보</string>
<string name="dlisinprogress">다른 다운로드가 이미 진행 중입니다. 끝날 때까지 기다려 주세요.</string>
<string name="dlisinprogress">모든 다운로드가 완료될 때까지 기다려 주십시오…</string>
<string name="subscribeIsEmpty">먼저 일부 채널을 구독하세요.</string>
<string name="error">문제가 발생했습니다.</string>
<string name="notgmail">이것은 당신의 Gmail 계정이 아닙니다.</string>
<string name="notgmail">LibreTube 계정용입니다.</string>
<string name="defres">기본 비디오 해상도</string>
<string name="playlistName">플레이리스트 이름</string>
<string name="import_from_yt_summary">YouTube 또는 NewPipe에서</string>
@ -56,35 +56,35 @@
<string name="subscriptions">구독</string>
<string name="videos">비디오</string>
<string name="emptyPlaylistName">플레이리스트 이름은 비워 둘 수 없습니다</string>
<string name="changeLanguage">언어 변경</string>
<string name="systemLanguage">시스템 언어</string>
<string name="changeLanguage">언어</string>
<string name="systemLanguage">시스템</string>
<string name="subscribers">%1$s명의 구독자</string>
<string name="lightTheme">라이트 테마</string>
<string name="library">라이브러리</string>
<string name="darkTheme">다크 테마</string>
<string name="systemDefault">시스템 기본값</string>
<string name="systemDefault">시스템</string>
<string name="retry">재시도</string>
<string name="comments">댓글</string>
<string name="noInternet">인터넷에 연결되지 않음</string>
<string name="noInternet">먼저 인터넷에 연결합니다.</string>
<string name="videoCount">동영상 %1$s개</string>
<string name="location">위치</string>
<string name="customization">커스터마이징</string>
<string name="customization">조정</string>
<string name="settings">설정</string>
<string name="instance">인스턴스</string>
<string name="website">웹사이트</string>
<string name="defaultTab">기본 탭</string>
<string name="category_sponsor_description">유료 프로모션, 유료 추천 및 직접 광고. 자기 홍보나 그들이 좋아하는 원인/제작자/웹사이트/제품에 대한 무료 홍보용이 아닙니다.</string>
<string name="segment_skipped">건너뛴 구간</string>
<string name="sponsorblock_state">활성화</string>
<string name="sponsorblock_state">켜기</string>
<string name="category_segments">구간</string>
<string name="category_sponsor">스폰서</string>
<string name="category_interaction_description">좋아요에 대한 짧은 알림이 있으면 콘텐츠 중간에 구독하거나 팔로우하세요. 길거나 구체적인 내용이라면 자체 홍보를 해야 합니다.</string>
<string name="category_interaction_description">콘텐츠 중간에 좋아요, 구독 또는 팔로우하라는 짧은 리마인더가 있을 때 사용합니다. 길거나 특정한 것에 관한 것이라면, 대신 그것은 자기 홍보가 되어야 합니다.</string>
<string name="channels">채널</string>
<string name="history">기록</string>
<string name="music_albums">유튜브 뮤직 앨범</string>
<string name="category_selfpromo_description">무료 또는 자체 프로모션을 제외하고 \"스폰서\"와 유사합니다. 여기에는 상품, 기부 또는 협력 대상에 대한 정보에 대한 섹션이 포함됩니다.</string>
<string name="all">모두</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app/의 API 사용</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app API 사용</string>
<string name="category_selfpromo">미지급/셀프 프로모션</string>
<string name="choose_filter">검색 필터 선택</string>
<string name="playlists">플레이리스트</string>
@ -95,14 +95,14 @@
<string name="music_videos">유튜브 뮤직 비디오</string>
<string name="music_playlists">유튜브 뮤직 플레이리스트</string>
<string name="sponsorblock">스폰서 차단</string>
<string name="category_interaction">인터랙션 알림(구독)</string>
<string name="category_interaction">상호작용 알림(좋아요 및 구독)</string>
<string name="category_intro">인터미션/인트로 애니메이션</string>
<string name="category_intro_description">실제 내용이 없는 간격입니다. 일시 중지, 정적 프레임, 반복 애니메이션이 될 수 있습니다. 정보가 포함된 전환에는 사용하면 안 됩니다.</string>
<string name="category_outro">엔드카드/크레딧</string>
<string name="category_outro_description">크레딧 또는 YouTube 엔드카드가 표시되는 시점 정보로 결론을 내리기 위한 것이 아닙니다.</string>
<string name="category_outro">엔드카드크레딧</string>
<string name="category_outro_description">엔딩 이후의 정보. 정보가 포함된 결론이 아닙니다.</string>
<string name="license">라이선스</string>
<string name="oledTheme">OLED 테마</string>
<string name="color_accent">컬러 액센트</string>
<string name="color_accent">액센트</string>
<string name="color_blue">픽셀 블루</string>
<string name="material_you">머터리얼</string>
<string name="color_green">초록색</string>
@ -110,10 +110,56 @@
<string name="color_yellow">노란색</string>
<string name="color_purple">보라색</string>
<string name="sponsorblock_notifications">알림</string>
<string name="enabled">활성화</string>
<string name="disabled">비활성화</string>
<string name="app_icon">아이콘</string>
<string name="enabled"></string>
<string name="disabled"></string>
<string name="app_icon">아이콘</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">백그라운드에서 재생</string>
<string name="piped">Piped</string>
<string name="authors">저자</string>
<string name="video_format_summary">오디오와 비디오가 모두 다운로드된 경우 파일 변환.</string>
<string name="appearance_summary">원하는 대로 앱을 조정하세요.</string>
<string name="no_replies">이 댓글에는 답글이 없습니다.</string>
<string name="authors_summary">LibreTube 팀과 이 모든 일이 어떻게 일어나는지 알아보십시오.</string>
<string name="update_available">%1$s 버전 사용 가능</string>
<string name="update_available_text">GitHub의 릴리스로 이동하여 다운로드하시겠습니까\?</string>
<string name="app_behavior">동작</string>
<string name="appearance">모양</string>
<string name="downloads">다운로드</string>
<string name="video_format">비디오 형식</string>
<string name="download_directory">다운로드 위치</string>
<string name="download_directory_summary">다운로드한 미디어가 저장되는 위치.</string>
<string name="website_summary">앱 및 기능에 대한 자세한 내용은 웹사이트를 방문하세요.</string>
<string name="contributing">기여</string>
<string name="contributing_summary">아이디어, 번역, 디자인 변경, 정리 및 코드 작성을 제공합니다. 더 많이 할 수록 더 좋습니다!</string>
<string name="license_summary">GPLv3+는 카피레프트 libre 라이센스입니다. 사용, 연구, 변경 및 공유가 가능합니다.</string>
<string name="donate">기부</string>
<string name="donate_summary">당신이 할 수 있다면 이것이 당신에게 가치가 있는 것을 주십시오. Team LibreTube는 기부 또는 도움보다 작습니다.</string>
<string name="update">새 버전을 찾습니다</string>
<string name="update_summary">앱이 최신 버전인지 확인하려면 클릭하세요.</string>
<string name="app_uptodate">최신 버전을 실행 중입니다.</string>
<string name="no_update_available">최신 버전을 실행하고 있습니다.</string>
<string name="playback_speed">기본 재생 속도</string>
<string name="advanced">고급</string>
<string name="player">플레이어</string>
<string name="advanced_summary">플레이어, 다운로드, 기록</string>
<string name="live">실시간</string>
<string name="download_folder">이름</string>
<string name="sdcard">SD 카드</string>
<string name="shareTo">URL 공유</string>
<string name="views">조회수 %1$s</string>
<string name="defaultIcon">기본</string>
<string name="music_directory">음악 폴더</string>
<string name="movies_directory">동영상 폴더</string>
<string name="downloads_directory">다운로드 폴더</string>
<string name="download_folder_summary">다운로드한 미디어가 저장되는 폴더의 이름입니다.</string>
<string name="internal_storage">내부 저장소</string>
<string name="addInstance">인스턴스 추가</string>
<string name="customInstance_summary">사용자 정의 인스턴스 추가(위험 부담)</string>
<string name="instance_name">인스턴스 이름</string>
<string name="clear_customInstances">커스텀 인스턴스 지우기</string>
<string name="instance_api_url">인스턴스 API URL</string>
<string name="empty_instance">이름과 API URL을 입력해야 합니다.</string>
<string name="invalid_url">유효한 URL을 입력 해주세요</string>
<string name="instance_summary">Piped, 로그인, 구독</string>
</resources>

View File

@ -45,7 +45,7 @@
<string name="deletePlaylist">Izdzēst atskaņošanas sarakstu</string>
<string name="areYouSure">Vai izdzēst atskaņošanas sarakstu\?</string>
<string name="emptyList">Šeit nekā nav.</string>
<string name="grid">Izvēlēties režģa kolonnas</string>
<string name="grid">Režģa kolonnas</string>
<string name="register">Reģistrēties</string>
<string name="playlistName">Atskaņošanas saraksta nosaukums</string>
<string name="emptyPlaylistName">Atskaņošanas saraksta nosaukums nevar būt tukšs</string>
@ -116,4 +116,49 @@
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Atskaņot fonā</string>
<string name="no_replies">Šim komentāram nav atbilžu.</string>
<string name="authors">Autori</string>
<string name="authors_summary">Uzziniet, kas ir aiz LibreTube komandas un pilda visu maģiju.</string>
<string name="download_folder_summary">Nosaukums mapei, kurā tiek saglabāti lejupielādētie faili.</string>
<string name="download_directory">Lejupielādes atrašanās vieta</string>
<string name="download_folder">Mapes nosaukums</string>
<string name="internal_storage">Iekšējā atmiņa</string>
<string name="downloads_directory">Lejupielāžu mape</string>
<string name="sdcard">SD karte</string>
<string name="music_directory">Mūzikas mape</string>
<string name="movies_directory">Filmu mape</string>
<string name="shareTo">Kopīgot URL ar:</string>
<string name="download_directory_summary">Atrašanās vieta, kur tiek saglabāti lejupielādētie faili.</string>
<string name="defaultIcon">Noklusējuma</string>
<string name="gradientIcon">Gradienta</string>
<string name="fireIcon">Uguns</string>
<string name="torchIcon">Lāpas</string>
<string name="flameIcon">Liesmas</string>
<string name="shapedIcon">Formu</string>
<string name="birdIcon">Putna</string>
<string name="views">%1$s skatījumi</string>
<string name="legacyIcon">Vecā</string>
<string name="update_available">%1$s versija ir pieejama</string>
<string name="update_available_text">Ir pieejams atjauninājums. Nospied \"OK\", lai dotos uz GitHub atjauninājumu lapu.</string>
<string name="appearance">Izskats</string>
<string name="app_behavior">Aplikācijas uzvedība</string>
<string name="downloads">Lejupielādes</string>
<string name="video_format">Video formāts</string>
<string name="video_format_summary">Formāts, uz kuru lejupielādētie video tiek pārvērsti (attiecas tikai uz gadījumiem, kad gan audio, gan video tiek lejupielādēti).</string>
<string name="website_summary">Apmeklējiet mūsu mājaslapu, lai uzzinātu vairāk par aplikāciju un tās funkcijām.</string>
<string name="contributing">Ieguldīšana</string>
<string name="contributing_summary">Vienalga, vai jums ir idejas, tulkojumi, dizaina izmaiņas, koda attīrīšana vai masīvas koda izmaiņas, vienmēr esat laipni aicināts palīdzēt. Jo vairāk tiek izdarīts, jo labāka šī aplikācija paliek!</string>
<string name="donate">Ziedot</string>
<string name="donate_summary">Ja jums patīk šī aplikācija un novērtējat mūsu darbu, mēs būtu priecīgi par ziedojumu.</string>
<string name="update_summary">Nospiediet šeit, lai uzzinātu, vai ir pieejams atjauninājums.</string>
<string name="license_summary">GNU GPL ir brīva, copyleft licence programmatūrai un cita veida darbiem.</string>
<string name="update">Atjauninājums</string>
<string name="app_uptodate">Aplikācija ir jau atjaunināta</string>
<string name="no_update_available">Pašlaik nav pieejama jauna atjauninājuma.</string>
<string name="advanced">Tehniski</string>
<string name="player">Atskaņotājs</string>
<string name="appearance_summary">Panāciet, lai aplikācija izskatās tā, kā jūs vēlaties.</string>
<string name="advanced_summary">Atskaņotājs, lejupielādes, vēsture</string>
<string name="playback_speed">Noklusējuma atskaņošanas ātrums</string>
<string name="live">Tiešraide</string>
</resources>

View File

@ -57,11 +57,108 @@
<string name="channels">ചാനലുകൾ</string>
<string name="all">എല്ലാം</string>
<string name="playlists">പ്ലേലിസ്റ്റുകൾ</string>
<string name="okay">അതെ</string>
<string name="okay">ശരി</string>
<string name="history">ചരിത്രം</string>
<string name="search_history">തിരയൽ ചരിത്രം</string>
<string name="clear_history">ചരിത്രം മായ്ക്കുക</string>
<string name="music_songs">പാട്ടുക</string>
<string name="music_songs">YT സംഗീത ഗാനങ്ങ</string>
<string name="sponsorblock_summary">ഉപയോഗിക്കുന്ന എപിഐ https://sponsor.ajay.app/</string>
<string name="license">ലൈസൻസ്</string>
<string name="already_logged_in">ഇതിനകം ലോഗിൻ ചെയ്തിട്ടുണ്ട്. നിങ്ങളുടെ അക്കൗണ്ടിൽ നിന്ന് നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യാം.</string>
<string name="dlisinprogress">മറ്റൊരു ഡൗൺലോഡ് ഇതിനകം പുരോഗമിക്കുകയാണ്. അത് പൂർത്തിയാകുന്നതുവരെ കാത്തിരിക്കുക.</string>
<string name="youtube">യൂട്യൂബ്</string>
<string name="server_error">സെർവറിൽ ഒരു പ്രശ്നമുണ്ട്. മറ്റൊരു ഉദാഹരണം പരീക്ഷിക്കണോ\?</string>
<string name="music_playlists">YT മ്യൂസിക് പ്ലേലിസ്റ്റുകൾ</string>
<string name="darkTheme">ഇരുണ്ട തീം</string>
<string name="defaultTab">ഡിഫോൾട്ട് ടാബ്</string>
<string name="disabled">അപ്രാപ്തമാക്കി</string>
<string name="live">ലൈവ്</string>
<string name="app_icon">ആപ്പ് ഐക്കൺ</string>
<string name="enabled">പ്രവർത്തനക്ഷമമാക്കി</string>
<string name="no_update_available">നിലവിൽ പുതിയ അപ്‌ഡേറ്റുകളൊന്നും ലഭ്യമല്ല. ഇവിടെത്തന്നെ നിൽക്കുക!</string>
<string name="downloads">ഡൗൺലോഡുകൾ</string>
<string name="video_format">വീഡിയോ ഫോർമാറ്റ്</string>
<string name="update_available_text">ഒരു പുതിയ അപ്ഡേറ്റ് ലഭ്യമാണ്. GitHub-ലെ അപ്‌ഡേറ്റ് പേജിലേക്ക് റീഡയറക്‌ടുചെയ്യുന്നതിന് ശരി ക്ലിക്കുചെയ്യുക.</string>
<string name="download_directory_summary">നിങ്ങളുടെ ഡൗൺലോഡ് ചെയ്ത മീഡിയ സംഭരിക്കുന്ന ലൊക്കേഷൻ.</string>
<string name="website_summary">ആപ്പിനെയും അതിന്റെ സവിശേഷതകളെയും കുറിച്ച് കൂടുതലറിയാൻ ഞങ്ങളുടെ വെബ്സൈറ്റ് സന്ദർശിക്കുക.</string>
<string name="contributing">സംഭാവന ചെയ്യുന്നു</string>
<string name="donate_summary">നിങ്ങൾക്ക് ആപ്പ് ഇഷ്‌ടപ്പെടുകയും ഞങ്ങളുടെ പ്രവർത്തനത്തെ അഭിനന്ദിക്കുകയും ചെയ്യുന്നുവെങ്കിൽ, ഒരു സംഭാവനയിൽ ഞങ്ങൾ സന്തുഷ്ടരാണ്.</string>
<string name="please_login">ദയവായി ആദ്യം ലോഗിൻ ചെയ്യുക അല്ലെങ്കിൽ ക്രമീകരണങ്ങളിൽ രജിസ്റ്റർ ചെയ്യുക.</string>
<string name="playback_speed">ഡിഫോൾട്ട് പ്ലേബാക്ക് വേഗത</string>
<string name="advanced">അഡ്വാൻസ്ഡ്</string>
<string name="appearance_summary">നിങ്ങൾ ആഗ്രഹിക്കുന്ന രീതിയിൽ ആപ്പ് രൂപപ്പെടുത്തുക.</string>
<string name="cannotDownload">ഈ സ്ട്രീം ഡൗൺലോഡ് ചെയ്യാൻ കഴിയില്ല.</string>
<string name="downloadfailed">ഡൗൺലോഡ് പരാജയപ്പെട്ടു.</string>
<string name="vlcerror">VLC-യിൽ തുറക്കാൻ കഴിയില്ല. ഇത് ഇൻസ്റ്റാൾ ചെയ്തേക്കില്ല.</string>
<string name="import_from_yt">സബ്സ്ക്രിപ്ഷനുകൾ ഇറക്കുമതി ചെയ്യുക</string>
<string name="import_from_yt_summary">YouTube അല്ലെങ്കിൽ NewPipe-ൽ നിന്ന്</string>
<string name="unknown_error">നെറ്റ്‌വർക്ക് പിശക്.</string>
<string name="empty">നിങ്ങൾ ഒരു ഉപയോക്തൃനാമവും പാസ്‌വേഡും നൽകണം.</string>
<string name="defres">ഡിഫോൾട്ട് വീഡിയോ റെസല്യൂഷൻ</string>
<string name="grid">ഗ്രിഡ് നിരകൾ</string>
<string name="systemDefault">സിസ്റ്റം ഡിഫോൾട്ട്</string>
<string name="lightTheme">ലൈറ്റ് തീം</string>
<string name="customization">കസ്റ്റമൈസേഷനുകൾ</string>
<string name="comments">അഭിപ്രായങ്ങൾ</string>
<string name="choose_filter">തിരയൽ ഫിൽട്ടർ തിരഞ്ഞെടുക്കുക</string>
<string name="music_videos">YT സംഗീത വീഡിയോകൾ</string>
<string name="music_albums">YT സംഗീത ആൽബങ്ങൾ</string>
<string name="sponsorblock">സ്പോൺസർബ്ലോക്ക്</string>
<string name="segment_skipped">ഒഴിവാക്കിയ സെഗ്‌മെന്റ്</string>
<string name="sponsorblock_state">പ്രവർത്തനക്ഷമമാക്കി</string>
<string name="category_segments">സെഗ്‌മെന്റുകൾ</string>
<string name="category_sponsor">സ്പോൺസർ</string>
<string name="category_selfpromo">പണമടയ്ക്കാത്ത/സ്വയം പ്രമോഷൻ</string>
<string name="category_interaction">ഇന്ററാക്ഷൻ റിമൈൻഡർ (സബ്‌സ്‌ക്രൈബ്)</string>
<string name="category_intro">ഇടവേള/ആമുഖ ആനിമേഷൻ</string>
<string name="category_outro">എൻഡ്കാർഡുകൾ/ക്രെഡിറ്റുകൾ</string>
<string name="category_outro_description">ക്രെഡിറ്റുകൾ അല്ലെങ്കിൽ YouTube എൻഡ്കാർഡുകൾ ദൃശ്യമാകുമ്പോൾ. വിവരങ്ങളുള്ള നിഗമനങ്ങൾക്ക് വേണ്ടിയല്ല.</string>
<string name="playOnBackground">പശ്ചാത്തലത്തിൽ പ്ലേ ചെയ്യുക</string>
<string name="color_blue">പിക്സൽ ബ്ലൂ</string>
<string name="color_accent">വർണ്ണ ആക്സന്റ്</string>
<string name="color_yellow">മഞ്ഞ</string>
<string name="color_red">ചുവപ്പ്</string>
<string name="color_green">പച്ച</string>
<string name="color_purple">പർപ്പിൾ</string>
<string name="oledTheme">OLED തീം</string>
<string name="sponsorblock_notifications">അറിയിപ്പുകൾ</string>
<string name="update_available">%1$s പതിപ്പ് ലഭ്യമാണ്</string>
<string name="appearance">രൂപഭാവം</string>
<string name="app_behavior">ആപ്പ് പെരുമാറ്റം</string>
<string name="download_directory">ഡൗൺലോഡ് ലൊക്കേഷൻ</string>
<string name="donate">സംഭാവനചെയ്യുക</string>
<string name="update">ആപ്പ് അപ്ഡേറ്റ്</string>
<string name="update_summary">പുതിയ ആപ്പ് അപ്‌ഡേറ്റ് ലഭ്യമാണോയെന്ന് പരിശോധിക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക.</string>
<string name="app_uptodate">ആപ്പ് അപ് ടു ഡേറ്റ്</string>
<string name="player">പ്ലെയർ</string>
<string name="advanced_summary">പ്ലെയർ, ഡൗൺലോഡുകൾ, ചരിത്രം</string>
<string name="no_replies">ഈ കമന്റിന് മറുപടികളൊന്നുമില്ല.</string>
<string name="authors">രചയിതാക്കൾ</string>
<string name="download_folder">ഡയറക്ടറിയുടെ പേര്</string>
<string name="download_folder_summary">ഡൗൺലോഡ് ചെയ്ത മീഡിയ സംഭരിക്കുന്ന ഡയറക്ടറിയുടെ പേര്.</string>
<string name="internal_storage">ഇന്റേണൽ സ്റ്റോറേജ്</string>
<string name="downloads_directory">ഡൗൺലോഡ് ഡയറക്ടറി</string>
<string name="sdcard">എസ് ഡി കാർഡ്</string>
<string name="music_directory">സംഗീത ഡയറക്ടറി</string>
<string name="movies_directory">സിനിമകളുടെ ഡയറക്ടറി</string>
<string name="shareTo">യുആർഎൽ പങ്കിടുക:</string>
<string name="license_summary">The GNU General Public License എന്നത് സോഫ്‌റ്റ്‌വെയറിനും മറ്റ് തരത്തിലുള്ള വർക്കുകൾക്കുമുള്ള ഒരു സ്വതന്ത്ര, കോപ്പിലെഫ്റ്റ് ലൈസൻസാണ്.</string>
<string name="category_intro_description">യഥാർത്ഥ ഉള്ളടക്കം ഇല്ലാത്ത ഒരു ഇടവേള. ഒരു ഇടവേള, സ്റ്റാറ്റിക് ഫ്രെയിം, ആവർത്തിക്കുന്ന ആനിമേഷൻ എന്നിവയായിരിക്കാം. വിവരങ്ങൾ അടങ്ങിയ പരിവർത്തനങ്ങൾക്ക് ഇത് ഉപയോഗിക്കരുത്.</string>
<string name="authors_summary">Team LibreTube-ന് പിന്നിൽ ആരാണ് മാജിക് ചെയ്യുന്നതെന്ന് കണ്ടെത്തുക.</string>
<string name="video_format_summary">ഡൗൺലോഡ് ചെയ്‌ത വീഡിയോ ഫോർമാറ്റിലേക്ക് പരിവർത്തനം ചെയ്യപ്പെടും (ഓഡിയോയും വീഡിയോയും ഡൗൺലോഡ് ചെയ്‌താൽ മാത്രമേ ബാധകമാകൂ).</string>
<string name="contributing_summary">നിങ്ങൾക്ക് ആശയങ്ങൾ, വിവർത്തനങ്ങൾ, ഡിസൈൻ മാറ്റങ്ങൾ, കോഡ് ക്ലീനിംഗ് അല്ലെങ്കിൽ യഥാർത്ഥ ഹെവി കോഡ് മാറ്റങ്ങൾ എന്നിവ ഉണ്ടെങ്കിലും, സഹായം എപ്പോഴും സ്വാഗതം ചെയ്യുന്നു. കൂടുതൽ ചെയ്‌താൽ അത് മികച്ചതാകുന്നു!</string>
<string name="piped">പൈപ്ഡ്</string>
<string name="category_selfpromo_description">പണമടയ്ക്കാത്തതോ സ്വയം പ്രമോഷനോ ഒഴികെയുള്ള \"സ്‌പോൺസർ\" എന്നതിന് സമാനമാണ്. സംഭാവനകൾ, അല്ലെങ്കിൽ അവർ ആരുമായി സഹകരിച്ചു എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ എന്നിവയെക്കുറിച്ചുള്ള വിഭാഗങ്ങൾ ഇതിൽ ഉൾപ്പെടുന്നു.</string>
<string name="gradientIcon">ഗ്രേഡിയന്റ്</string>
<string name="fireIcon">തീ</string>
<string name="flameIcon">തീജ്വാല</string>
<string name="birdIcon">പക്ഷി</string>
<string name="defaultIcon">ഡിഫോൾട്ട്</string>
<string name="category_sponsor_description">പണമടച്ചുള്ള പ്രമോഷൻ, പണമടച്ചുള്ള റഫറലുകൾ, നേരിട്ടുള്ള പരസ്യങ്ങൾ. സെൽഫ് പ്രൊമോഷനോ അല്ലെങ്കിൽ അവർ ഇഷ്‌ടപ്പെടുന്ന കാരണങ്ങൾ/സ്രഷ്‌ടാക്കൾ/വെബ്‌സൈറ്റുകൾ/ഉൽപ്പന്നങ്ങൾ എന്നിവയ്‌ക്കുള്ള സൗജന്യ ശബ്‌ദങ്ങൾക്കോ വേണ്ടിയല്ല.</string>
<string name="category_interaction_description">ലൈക്ക് ചെയ്യാനുള്ള ഒരു ചെറിയ ഓർമ്മപ്പെടുത്തൽ ഉള്ളപ്പോൾ, ഉള്ളടക്കത്തിന്റെ മധ്യത്തിൽ അവരെ സബ്‌സ്‌ക്രൈബ് ചെയ്യുക അല്ലെങ്കിൽ പിന്തുടരുക. അത് ദൈർഘ്യമേറിയതാണെങ്കിൽ അല്ലെങ്കിൽ പ്രത്യേകമായ എന്തെങ്കിലും ആണെങ്കിൽ, പകരം അത് സ്വയം പ്രമോഷന്റെ കീഴിലായിരിക്കണം.</string>
<string name="views">%1$s കാഴ്‌ചകൾ</string>
<string name="legacyIcon">ലെഗസി</string>
<string name="torchIcon">ടോർച്ച്</string>
<string name="shapedIcon">ഷേപ്പ്ഡ്</string>
<string name="material_you">മെറ്റീരിയൽ You</string>
</resources>

View File

@ -13,18 +13,18 @@
<string name="login_register">Logg inn/registrer deg</string>
<string name="dlcomplete">Nedlasting fullført.</string>
<string name="vlc">Åpne i VLC</string>
<string name="import_from_yt">Importer abonnementer fra YouTube</string>
<string name="dlisinprogress">En annen nedlasting er underveis. Vent til den er fullført.</string>
<string name="import_from_yt">Importer abonnementer</string>
<string name="dlisinprogress">Vent til alle nedlastinger er fullført …</string>
<string name="downloadfailed">Nedlasting mislyktes.</string>
<string name="vlcerror">Kan ikke åpne i VLC. Kanskje det ikke er installert\?</string>
<string name="vlcerror">Kan ikke åpne i VLC. Kan hende det ikke er installert.</string>
<string name="server_error">Problem med tjeneren. Prøv en annen instans\?</string>
<string name="defres">Forvalgt video-oppløsning</string>
<string name="deletePlaylist">Slett spilleliste</string>
<string name="notgmail">Dette er ikke din Gmail-konto.</string>
<string name="success">Vellykket.</string>
<string name="notgmail">Dette er for en LibreTube-konto.</string>
<string name="success">Ferdig.</string>
<string name="fail">Mislykket :(</string>
<string name="about">Om</string>
<string name="choose_quality_dialog">Velg kvalitet:</string>
<string name="choose_quality_dialog">Kvalitet</string>
<string name="subscribe">Abonner</string>
<string name="loggedout">Utlogget</string>
<string name="search_hint">Søk</string>
@ -40,13 +40,13 @@
<string name="emptyList">Ingenting her</string>
<string name="createPlaylist">Opprett spilleliste</string>
<string name="already_logged_in">Allerede innlogget. Du kan logge ut av kontoen din.</string>
<string name="importsuccess">Abonnert.</string>
<string name="importsuccess">Abonnert</string>
<string name="subscribeIsEmpty">Abonner på noen kanaler først.</string>
<string name="cannotDownload">Kan ikke laste ned denne strømmen.</string>
<string name="unknown_error">Nettverksfeil.</string>
<string name="error">Noe gikk galt.</string>
<string name="empty">Brukernavn og passord må fylles ut.</string>
<string name="grid">Velg rutenettkolonner</string>
<string name="grid">Rutenettskolonner</string>
<string name="playlistCreated">Spilleliste opprettet.</string>
<string name="playlistName">Spillelistenavn</string>
<string name="addToPlaylist">Legg til i spilleliste</string>
@ -60,15 +60,15 @@
<string name="clear_history">Tøm historikk</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="license">Lisens</string>
<string name="color_red">Rød</string>
<string name="color_green">Grønn</string>
<string name="color_red">Rolig rød</string>
<string name="color_green">Gjestende grønn</string>
<string name="subscribers">%1$s abonnenter</string>
<string name="category_segments">Segmenter</string>
<string name="category_sponsor">Sponsor</string>
<string name="color_yellow">Gul</string>
<string name="color_yellow">Gallisk gul</string>
<string name="color_accent">Aksentfarge</string>
<string name="color_blue">Blå</string>
<string name="color_purple">Lilla</string>
<string name="color_blue">Beleilig b</string>
<string name="color_purple">Lemfeldig lilla</string>
<string name="okay">OK</string>
<string name="emptyPlaylistName">Spillelistenavnet kan ikke være tomt</string>
<string name="import_from_yt_summary">Fra YouTube eller NewPipe</string>
@ -76,11 +76,11 @@
<string name="subscriptions">Abonnementer</string>
<string name="library">Bibliotek</string>
<string name="videos">Vidoer</string>
<string name="changeLanguage">Endre språk</string>
<string name="systemLanguage">Systemspråk</string>
<string name="systemDefault">Systemforvalg</string>
<string name="lightTheme">Lys drakt</string>
<string name="darkTheme">Mørk drakt</string>
<string name="changeLanguage">Språk</string>
<string name="systemLanguage">System</string>
<string name="systemDefault">System</string>
<string name="lightTheme">Lettbeint lys</string>
<string name="darkTheme">Svaksynt svart</string>
<string name="settings">Innstillinger</string>
<string name="location">Sted</string>
<string name="instance">Instans</string>
@ -89,4 +89,88 @@
<string name="videoCount">%1$s videoer</string>
<string name="retry">Prøv igjen</string>
<string name="comments">Kommentarer</string>
<string name="app_icon">Ikon</string>
<string name="youtube">YouTube</string>
<string name="no_replies">Ubesvart kommentar.</string>
<string name="authors">Utviklere</string>
<string name="download_folder">Navn</string>
<string name="internal_storage">Internlagring</string>
<string name="sdcard">SD-kort</string>
<string name="music_directory">Musikkmappe</string>
<string name="update_available">Versjon %1$s er tilgjengelig</string>
<string name="appearance">Utseende</string>
<string name="video_format">Videoformat</string>
<string name="live">Direkte</string>
<string name="piped">Piped</string>
<string name="authors_summary">Bli kjent med LibreTube-laget og hvordan alt går for seg.</string>
<string name="search_history">Søkehistorikk</string>
<string name="music_songs">YT Musikk-spor</string>
<string name="music_videos">YT Musikk-videoer</string>
<string name="music_albums">YT Musikk-album</string>
<string name="segment_skipped">Unngått segment</string>
<string name="category_selfpromo">Ubetalt/selvpromotering</string>
<string name="category_intro">Pausesegment/introduksjonsanimasjon</string>
<string name="movies_directory">Filmmappe</string>
<string name="shareTo">Del nettadresse til …</string>
<string name="views">%1$s visninger</string>
<string name="defaultIcon">Forvalg</string>
<string name="legacyIcon">God gammeldags</string>
<string name="gradientIcon">Glidende gradient</string>
<string name="sponsorblock_state"></string>
<string name="oledTheme">Svaksynt svart</string>
<string name="enabled"></string>
<string name="download_directory">Last ned til …</string>
<string name="material_you">Mystisk Materiell 3</string>
<string name="download_directory_summary">Der nedlastet media lagres.</string>
<string name="contributing_summary">Send inn idéer, oversettelser, designendringer, rens og skriv kode. Dest mer som blir gjort, desto bedre blir det.</string>
<string name="license_summary">GPLv3+ er en gemenfrihetslig lisens. Bruk, studer, endre, og del; med alle.</string>
<string name="update_summary">Klikk for å finne ut om programmet er av nyeste dato.</string>
<string name="app_uptodate">Kjører siste versjon.</string>
<string name="appearance_summary">Tilpass programmet til din smak.</string>
<string name="advanced_summary">Spiller, nedlastninger, historikk</string>
<string name="fireIcon">Fasjonabel flamme</string>
<string name="torchIcon">Finskodd fakkel</string>
<string name="shapedIcon">Formodentlig formet</string>
<string name="flameIcon">Flyende flamme</string>
<string name="noInternet">Koble til Internett først.</string>
<string name="music_playlists">YT Musikk-spillelister</string>
<string name="category_outro">Sluttinfo og rulletekst</string>
<string name="sponsorblock_summary">Bruker https://sponsor.ajay.app-API-et</string>
<string name="category_interaction">Interaksjonspåminnelse (lik og abonner)</string>
<string name="category_outro_description">Info etter slutten av videoen. Ikke for oppsummeringer med info.</string>
<string name="playOnBackground">Spill i bakgrunnen</string>
<string name="update_available_text">Gå til utgivelser på GitHub for å laste ned\?</string>
<string name="website_summary">Besøk nettsiden for mer info om programmet og dets funksjoner.</string>
<string name="update">Se etter ny versjon</string>
<string name="donate_summary">Gi det dette er verd for deg, hvis du kan. LibreTube-laget er mindre enn din donasjon eller hjelp.</string>
<string name="download_folder_summary">Navnet på mappen nedlastet media lagres i.</string>
<string name="downloads_directory">Nedlastningsmappe</string>
<string name="birdIcon">Framhevet fugl</string>
<string name="category_selfpromo_description">Ligner på «Sponsor», bortsett fra at det er ubetalt eller selv-promotering. Dette inkluderer segmenter om ting, donasjoner, eller info om samarbeidspartnere.</string>
<string name="category_sponsor_description">Betalt promosjon, betalt videresending og direkte reklame. Ikke for selvpromotering eller gratis nevning av tiltak/skapere/nettsider/produkter.</string>
<string name="category_interaction_description">Når det er en kort påminnelse om å like, abonnere, eller følge midt i innhold. Hvis det er lagt eller om noe spesifikt bør du heller velge selvpromotering.</string>
<string name="category_intro_description">Et intervall uten faktisk innhold. Kan være en pause, et statisk bilde, eller gjentagende animasjon. Skal ikke brukes for overganger som inneholder info.</string>
<string name="sponsorblock_notifications">Merknader</string>
<string name="disabled">Av</string>
<string name="app_behavior">Adferd</string>
<string name="downloads">Nedlastninger</string>
<string name="video_format_summary">Konvertering av filer hvis både lyd og video er nedlastet.</string>
<string name="contributing">Bidra</string>
<string name="donate">Doner</string>
<string name="no_update_available">Du kjører den siste versjonen.</string>
<string name="playback_speed">Forvalgt avspillingshastighet</string>
<string name="advanced">Avansert</string>
<string name="player">Spiller</string>
<string name="instance_summary">Piped, innlogging, abonnementer</string>
<string name="customInstance_summary">Legg til en egendefinert instans (på egen risiko)</string>
<string name="instance_name">Navn på instans</string>
<string name="instance_api_url">Nettadresse for instans-API</string>
<string name="addInstance">Legg til instans</string>
<string name="invalid_url">Skriv inn en nettadresse som virker</string>
<string name="about_summary">Bli kjent med LibreTube-laget og alt som skjer.</string>
<string name="empty_instance">Du må fylle inn navnet og API-nettadressen.</string>
<string name="version">Versjon %1$s</string>
<string name="clear_customInstances">Tøm egendefinerte instanser</string>
<string name="related_streams">Relaterte strømmer</string>
<string name="related_streams_summary">Vis videoer relatert til det du ser.</string>
</resources>

View File

@ -17,7 +17,7 @@
<string name="loggedIn">Zostałeś zalogowany.</string>
<string name="loggedout">Zostałeś wylogowany.</string>
<string name="already_logged_in">Jesteś już zalogowany, możesz się wylogować ze swojego konta.</string>
<string name="login_first">Zaloguj się i spróbuj jeszcze raz!</string>
<string name="login_first">Zaloguj się i spróbuj ponownie!</string>
<string name="instances">Wybierz instancję</string>
<string name="customInstance">Dodaj niestandardową instancję</string>
<string name="login_register">Zaloguj/Zarejestruj się</string>
@ -25,7 +25,7 @@
<string name="importsuccess">Dodano subskrypcję!</string>
<string name="subscribeIsEmpty">Zasubskrybuj ulubione kanały, aby widzieć tutaj ich najnowsze publikacje!</string>
<string name="dlcomplete">Pobieranie ukończone.</string>
<string name="dlisinprogress">Pobieranie innego materiału trwa, poczekaj aż proces zostanie ukończony!</string>
<string name="dlisinprogress">Pobieranie innego materiału trwa, poczekaj aż proces się zakończy!</string>
<string name="downloadfailed">Pobieranie nie udało się!</string>
<string name="logout">Wyloguj się</string>
<string name="import_from_yt">Importuj subskrybcje</string>
@ -80,12 +80,12 @@
<string name="category_sponsor">Sponsor</string>
<string name="category_sponsor_description">Płatna promocja, płatne polecenia i bezpośrednie reklamy. Nie służy do autopromocji ani niesponsorowanego chwalenia spraw/twórców/stron internetowych/produktów.</string>
<string name="segment_skipped">Pominięto segment</string>
<string name="category_selfpromo_description">Podobne do oznaczenia „sponsor”, lecz dla bezpłatnej lub własnej promocji. Obejmuje to sekcje o towarach związanych z kanałem , darowizn lub informacji o tym, z kim współpracowali.</string>
<string name="category_selfpromo_description">Podobne do \"sponsora\", z wyjątkiem bezpłatniej lub samo promocji. Obejmuje to sekcje dotyczące towarów, darowizn lub informacji o tym, z kim współpracowali</string>
<string name="category_interaction">Przypomnienie o interakcji (Subskrybuj)</string>
<string name="category_interaction_description">Gdy pojawi się krótkie przypomnienie, aby polubić, zasubskrybować, czy zaobserwować w środku treści. Jeśli trwa to długo lub dotyczy czegoś konkretnego, fragment powinien zostać oznaczony jako autopromocja.</string>
<string name="category_intro">Przerywnik / Animacja wprowadzająca</string>
<string name="category_intro_description">Przerwa bez faktycznej treści. Może to być pauza, statyczna klatka, powtarzająca się animacja. Nie należy tego używać do efektów przejścia zawierających informacje.</string>
<string name="category_outro">Plansze/Napisy końcowe</string>
<string name="category_outro">Karty końcowe/kredyty</string>
<string name="category_outro_description">Plansze oraz napisy końcowe. Nie jest używane dla podsumowań informacji.</string>
<string name="license">Licencja</string>
<string name="location">Lokalizacja</string>
@ -97,7 +97,7 @@
<string name="noInternet">Brak Połączenia z Internetem</string>
<string name="retry">Spróbuj Ponownie</string>
<string name="comments">Komentarze</string>
<string name="color_blue">Pixelowy Niebieski</string>
<string name="color_blue">Niebieski</string>
<string name="color_yellow">Żółty</string>
<string name="color_green">Zielony</string>
<string name="color_accent">Colory Akcentów</string>
@ -114,8 +114,54 @@
<string name="music_playlists">Muzyka YT Playlisty</string>
<string name="playOnBackground">Graj w tle</string>
<string name="piped">Piped</string>
<string name="enabled">Włączone</string>
<string name="disabled">Wyłączone</string>
<string name="enabled">Włączono</string>
<string name="disabled">Wyłączono</string>
<string name="update_available_text">Dostępne jest nowe uaktualnienie aplikacji. Kliknij Okej, aby zostać przeniesionym na stronę z aktualizacją na GitHubie.</string>
<string name="update_available">Dostępna jest wersja %1$s</string>
<string name="no_replies">Na ten komentarz nie ma odpowiedzi.</string>
<string name="authors">Autorzy</string>
<string name="internal_storage">Pamięć wewnętrzna</string>
<string name="sdcard">Karta SD</string>
<string name="views">%1$s wyświetleń</string>
<string name="defaultIcon">Domyślna</string>
<string name="download_directory">Zapisz w</string>
<string name="download_directory_summary">Gdzie pobrany plik jest zapisany.</string>
<string name="contributing_summary">Dostarczaj pomysły, tłumaczenia, zmiany projektowe, czyść i pisz kod. Im więcej się zrobi, tym lepiej!</string>
<string name="license_summary">GPLv3+ jest wolną licencją typu copyleft. Używaj, studiuj, zmieniaj i dziel się; z wszystkimi.</string>
<string name="donate_summary">Daj tyle, ile to jest dla Ciebie warte, jeśli możesz. Zespół LibreTube jest mniejszy niż Twój datek lub pomoc.</string>
<string name="app_uptodate">Uruchomiona najnowsza wersja.</string>
<string name="no_update_available">Używasz najnowszej wersji.</string>
<string name="appearance_summary">Dostosuj aplikację do swoich potrzeb.</string>
<string name="advanced_summary">Ustawienia wideo, pobrane i historia</string>
<string name="authors_summary">Poznaj zespół LibreTube i wszystkich jego współpracowników, którzy pomagają w ulepszaniu aplikacji.</string>
<string name="download_folder">Imię</string>
<string name="download_folder_summary">Nazwa folderu, w którym zapisywane są pobrane multimedia.</string>
<string name="downloads_directory">Folder pobranych</string>
<string name="music_directory">Folder z muzyką</string>
<string name="movies_directory">Folder z filmami</string>
<string name="shareTo">Udostępnij URL do</string>
<string name="instance_summary">Piped, logowanie i subskrypcje</string>
<string name="instance_api_url">Adres url API instancji</string>
<string name="addInstance">Dodaj instancję</string>
<string name="empty_instance">Musisz wpisać nazwę i adres URL interfejsu API.</string>
<string name="invalid_url">Wprowadź prawidłowy adres url</string>
<string name="customInstance_summary">Dodaj niestandardową instancję (na własne ryzyko)</string>
<string name="website_summary">Odwiedź stronę internetową, aby uzyskać więcej informacji o aplikacji i jej funkcjach.</string>
<string name="update">Sprawdź czy istnieje nowsza wersja</string>
<string name="update_summary">Kliknij, aby dowiedzieć się, czy aplikacja jest aktualna.</string>
<string name="instance_name">Nazwa instancji</string>
<string name="clear_customInstances">Wyczyść instancje niestandardowe</string>
<string name="version">Wersja %1$s</string>
<string name="about_summary">Poznaj zespół LibreTube, i dowiedz się jak to wszystko się dzieje.</string>
<string name="appearance">Wygląd</string>
<string name="app_behavior">Zachowanie</string>
<string name="downloads">Pobrane</string>
<string name="video_format">Format video</string>
<string name="video_format_summary">Konwersja plików, pobiera zarówno pliki audio, jak i wideo.</string>
<string name="contributing">Pomóż w realizacji projektu!</string>
<string name="donate">Przekaż dotację</string>
<string name="playback_speed">Ustaw domyślna prędkość odtwarzania</string>
<string name="advanced">Zaawansowane</string>
<string name="player">Ustawienia video</string>
<string name="live">Na Żywo</string>
</resources>

View File

@ -0,0 +1,176 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="playlists">Spellistor</string>
<string name="login_register">Logga in/registrera</string>
<string name="yes">Ja</string>
<string name="register">Registrera</string>
<string name="startpage">Hem</string>
<string name="choose_quality_dialog">Nej</string>
<string name="videos">Videor</string>
<string name="subscribe">Abonnera</string>
<string name="unsubscribe">Upphäv abonnemang</string>
<string name="share">Dela</string>
<string name="download">Ladda ner</string>
<string name="save">Lagra</string>
<string name="username">Användarnamn</string>
<string name="password">Lösenord</string>
<string name="login">Logga in</string>
<string name="cancel">Avbryta</string>
<string name="loggedIn">Inloggad.</string>
<string name="loggedout">Utloggad.</string>
<string name="registered">Registrerad. Ni kan nu abonnera på kanaler.</string>
<string name="already_logged_in">Redan inloggad. Ni kan logga ut om ni vill.</string>
<string name="login_first">Logga in och prova igen.</string>
<string name="instances">Välj en instans</string>
<string name="region">Välj en region</string>
<string name="importsuccess">Abonnerad</string>
<string name="defres">Förvald videoupplösning</string>
<string name="emptyList">Ingenting här.</string>
<string name="changeLanguage">Språk</string>
<string name="systemLanguage">System</string>
<string name="systemDefault">System</string>
<string name="settings">Inställningar</string>
<string name="okay">OK</string>
<string name="history">Historik</string>
<string name="search_history">Sökningshistorik</string>
<string name="color_accent">Sekundärfärger</string>
<string name="color_red">Rolig röd</string>
<string name="color_blue">Beboeligt blå</string>
<string name="color_yellow">Galliskt gul</string>
<string name="color_green">Gestaltande grön</string>
<string name="oledTheme">Svagsynt svart</string>
<string name="material_you">Mystisk Materiell 3</string>
<string name="app_icon">Ikon</string>
<string name="enabled"></string>
<string name="disabled">Av</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="update_available">Version %1$s tillgänglig</string>
<string name="subscriptions">Abonnemang</string>
<string name="logout">Logga ut</string>
<string name="library">Bibliotek</string>
<string name="please_login">Logg in eller registrera deg i inställningar först.</string>
<string name="subscribeIsEmpty">Abonnera på några kanaler först.</string>
<string name="subscribers">%1$s abonnenter</string>
<string name="channels">Kanaler</string>
<string name="all">Alla</string>
<string name="playOnBackground">Spela i bakgrunden</string>
<string name="app_theme">Tema</string>
<string name="video_format">Videoformat</string>
<string name="download_directory">Ladda ner till …</string>
<string name="contributing">Bidra</string>
<string name="license_summary">GPLv3+ är en gemenfrihetlig licens. Använd, studera, ändra och del; med alla.</string>
<string name="flameIcon">Flygande flamma</string>
<string name="birdIcon">Framhävd fågel</string>
<string name="music_directory">Musik-mapp</string>
<string name="advanced">Avancerad</string>
<string name="no_replies">Denna kommentaren har inga svar.</string>
<string name="live">Direktsänd</string>
<string name="authors">Utvecklare</string>
<string name="legacyIcon">God gammaldags</string>
<string name="download_folder">Namn</string>
<string name="sdcard">SD-kort</string>
<string name="shareTo">Del URL till …</string>
<string name="views">%1$s visningar</string>
<string name="gradientIcon">Glidande gradient</string>
<string name="internal_storage">Internlagring</string>
<string name="movies_directory">Film-mapp</string>
<string name="defaultIcon">Förval</string>
<string name="fireIcon">Fashionabel flamma</string>
<string name="appearance_summary">Justera programmet till din smak.</string>
<string name="contributing_summary">Kom med idéer, omsättningar, designändringar, rens och skriv kod. Desto mer som görs, desto bättre blir det.</string>
<string name="donate">Donera</string>
<string name="search_hint">Sök</string>
<string name="customInstance">Tillpassad instans</string>
<string name="cannotDownload">Kan inte ladda ner denna strömmen.</string>
<string name="dlcomplete">Nerladdning fullförd.</string>
<string name="dlisinprogress">Vänta till alla nerladdningar är fullförda …</string>
<string name="downloadfailed">Nerladdning misslyckats.</string>
<string name="vlcerror">Kan inte öppna i VLC. Är det installerad\?</string>
<string name="import_from_yt">Importera abonnemang</string>
<string name="unknown_error">Nätverksfel.</string>
<string name="error">Nått gick galt.</string>
<string name="empty">Ni måste skriva in användarnamn och lösenord.</string>
<string name="notgmail">Detta är for en LibreTube-konto.</string>
<string name="deletePlaylist">Radera spellista</string>
<string name="areYouSure">Radera spellistan\?</string>
<string name="grid">Rutnätskolumner</string>
<string name="createPlaylist">Upprätt spellista</string>
<string name="playlistCreated">Spellista upprättad.</string>
<string name="playlistName">Spellistanamn</string>
<string name="emptyPlaylistName">Spellistan kan inte va tom</string>
<string name="addToPlaylist">Lägg till i spellista</string>
<string name="success">Färdigt.</string>
<string name="fail">Misslyckad :(</string>
<string name="about">Om</string>
<string name="lightTheme">Ljus kostym</string>
<string name="darkTheme">Mörk kostym</string>
<string name="instance">Instans</string>
<string name="customization">Justeringar</string>
<string name="website">Nätsida</string>
<string name="noInternet">Koppla till Internet först.</string>
<string name="retry">Pröva igen</string>
<string name="comments">Kommentarer</string>
<string name="location">Plats</string>
<string name="clear_history">Töm historik</string>
<string name="sponsorblock_summary">Använd https://sponsor.ajay.app-API-et</string>
<string name="segment_skipped">Undgått element</string>
<string name="sponsorblock_state"></string>
<string name="music_videos">YT musik-videor</string>
<string name="music_albums">YT musik-album</string>
<string name="music_playlists">YT musik-spellistor</string>
<string name="defaultTab">Förvald flik</string>
<string name="music_songs">YT Musik-låtar</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="license">Licens</string>
<string name="category_segments">Segment</string>
<string name="category_sponsor">Sponsor</string>
<string name="category_selfpromo">Obetalt/självreklam</string>
<string name="category_intro">Paussegment/introanimation</string>
<string name="category_sponsor_description">Betalad reklam, betalda hänvisningar och direkt reklam. Inte for självreklam eller gratishänvisningar till ändamål, nätsidor, produkter, och dess lika.</string>
<string name="category_selfpromo_description">Liknar «Sponsor», utom for betald självreklam. Detta inkluderar avsnitt om varor, donationer, eller info om ved de samarbetat med.</string>
<string name="category_interaction_description">När det finns en kort påminnelse om att gilla, abonnera, eller följa mitt i innehållet. Om det er långt eller om något specifikt bör det istället vara självreklam.</string>
<string name="category_interaction">Interaktionspåminnelse (gilla och abonnera)</string>
<string name="category_intro_description">En intervall utan faktiskt innehållande. Kan va en paus, statisk ram, gentagande animation. Bör inte används for övergångar som innehåller info.</string>
<string name="category_outro">Slutkort och krediter</string>
<string name="category_outro_description">Info som följ sluten på videon. Inte for konklusioner med info.</string>
<string name="color_purple">Lämpligt lilla</string>
<string name="sponsorblock_notifications">Marknader</string>
<string name="update_available_text">Surfa till utgivningar på GitHub och ladda ner det\?</string>
<string name="appearance">Utseende</string>
<string name="app_behavior">Beteende</string>
<string name="download_directory_summary">Där nerladdad media lagras.</string>
<string name="website_summary">Besöka nätsidan for mer info om programmet och dess funktioner.</string>
<string name="update_summary">Klicka for att ta reda på om programmet är uppdaterad.</string>
<string name="update">Kolla om det finns någon ny version</string>
<string name="playback_speed">Förvald avspelningshastighet</string>
<string name="player">Spelare</string>
<string name="download_folder_summary">Namnet på mappen nerladdad media lagras i.</string>
<string name="authors_summary">Lär känna LibreTube-teamet och alla medarbetare som har hjälpts till att förbättra programmet.</string>
<string name="downloads_directory">Nerladdningsmapp</string>
<string name="shapedIcon">Friskt formad</string>
<string name="torchIcon">Försvarsvänlig fackla</string>
<string name="instance_summary">Piped, inloggning, abonnemang</string>
<string name="instance_name">Instansnamn</string>
<string name="addInstance">Lägg till instans</string>
<string name="empty_instance">Ni måste fylla in namnet och API-nätadressen.</string>
<string name="instance_api_url">Nätadress for instans-API</string>
<string name="clear_customInstances">Töm tillpassade instanser</string>
<string name="invalid_url">Skriva in en fungerande nätadress</string>
<string name="related_streams_summary">Visa strömmar relaterade till videor.</string>
<string name="vlc">Öppna i VLC</string>
<string name="import_from_yt_summary">Frän YouTube eller NewPipe</string>
<string name="server_error">Problem med servern. Pröva en annan instans\?</string>
<string name="downloads">Nerladdningar</string>
<string name="videoCount">%1$s videor</string>
<string name="choose_filter">Välj et sökfilter</string>
<string name="video_format_summary">Konvertering av filar om båda ljud och video har nedladdats.</string>
<string name="app_uptodate">Körar sista version.</string>
<string name="related_streams">Relaterade strömmar</string>
<string name="about_summary">Bli känd med LibreTube-teamet och hur alt går till.</string>
<string name="no_update_available">Ni körar nyaste versionen.</string>
<string name="advanced_summary">Spelare, nerladdningar, historik</string>
<string name="version">Version %1$s</string>
<string name="customInstance_summary">Lägg till en tillpassad instans (på egen risk)</string>
<string name="donate_summary">Ge det detta är värt for dig, om du kan. LibreTube-teamet är mindre än din donation eller hjälp.</string>
</resources>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="startpage">หน้าแรก</string>
<string name="share">แชร์</string>
<string name="deletePlaylist">ลบเพลย์ลิสต์</string>
<string name="playlistCreated">สร้างเพลย์ลิสต์แล้ว</string>
<string name="playlistName">ชื่อเพลย์ลิสต์</string>
<string name="addToPlaylist">เพิ่มไปยังเพลย์ลิสต์</string>
<string name="videoCount">%1$s วิดีโอ</string>
<string name="version">เวอร์ชั่น %1$s</string>
<string name="subscriptions">การติดตาม</string>
<string name="vlc">เปิดใน VLC</string>
</resources>

View File

@ -7,12 +7,12 @@
<string name="unsubscribe">Abonelikten çık</string>
<string name="registered">Kaydoldunuz. Artık istediğiniz kanala abone olabilirsiniz.</string>
<string name="dlcomplete">İndirme tamamlandı.</string>
<string name="dlisinprogress">Başka bir indirme sürüyor, lütfen o bitene değin bekleyin.</string>
<string name="dlisinprogress">Lütfen tüm indirmeler bitene kadar bekleyin…</string>
<string name="downloadfailed">İndirme başarısız.</string>
<string name="app_theme">Görünüm</string>
<string name="unknown_error">Bağlantı hatası.</string>
<string name="empty">Kullanıcı adı ve parola girmelisiniz.</string>
<string name="notgmail">Bu, sizin Gmail hesabınız değildir.</string>
<string name="notgmail">Bu bir LibreTube hesabı içindir.</string>
<string name="defres">Varsayılan Video Çözünürlüğü</string>
<string name="deletePlaylist">Oynatma listesini sil</string>
<string name="createPlaylist">Oynatma Listesi Oluştur</string>
@ -21,7 +21,7 @@
<string name="search_hint">Ara</string>
<string name="share">Paylaş</string>
<string name="username">Kullanıcı adı</string>
<string name="choose_quality_dialog">Kaliteyi seç:</string>
<string name="choose_quality_dialog">Kalite</string>
<string name="subscribe">Abone Ol</string>
<string name="save">Kaydet</string>
<string name="login">Giriş Yap</string>
@ -29,9 +29,9 @@
<string name="cancel">Vazgeç</string>
<string name="loggedout">Çıkış yapıldı.</string>
<string name="loggedIn">Giriş yapıldı.</string>
<string name="login_first">Lütfen girdikten sonra yeniden deneyin!</string>
<string name="region">Bölge Seç</string>
<string name="login_register">Giriş Yap/Kaydol</string>
<string name="login_first">Lütfen giriş yapın ve tekrar deneyin.</string>
<string name="region">Bölge</string>
<string name="login_register">Giriş Yap/kaydol</string>
<string name="please_login">Lütfen önce ayarlardan giriş yap veya kaydol.</string>
<string name="importsuccess">Abone olundu</string>
<string name="subscribeIsEmpty">Önce birkaç kanala abone olun.</string>
@ -40,11 +40,11 @@
<string name="import_from_yt">Abonelikleri İçe Aktar</string>
<string name="error">Bir şeyler ters gitti.</string>
<string name="emptyList">Burada hiçbir şey yok.</string>
<string name="playlistCreated">Oynatma listesi oluşturuldu!</string>
<string name="playlistCreated">Oynatma listesi oluşturuldu.</string>
<string name="areYouSure">Oynatma listesini silmek istediğinize emin misiniz\?</string>
<string name="addToPlaylist">Oynatma listesine ekle</string>
<string name="success">Bitti!</string>
<string name="playlistName">Oynatma Listesi Adı</string>
<string name="success">Bitti.</string>
<string name="playlistName">Oynatma listesi adı</string>
<string name="about">Hakkında</string>
<string name="vlcerror">VLC\'de açılamıyor. Kurulmamış olabilir.</string>
<string name="instances">Erişim Aracı Seç</string>
@ -55,27 +55,27 @@
<string name="emptyPlaylistName">Oynatma listesi adı boş olamaz</string>
<string name="subscriptions">Abonelikler</string>
<string name="library">Kütüphane</string>
<string name="systemDefault">Sistem Varsayılanı</string>
<string name="darkTheme">Koyu</string>
<string name="systemDefault">Sistem</string>
<string name="darkTheme">Tamamen karanlık</string>
<string name="subscribers">%1$s Abone</string>
<string name="lightTheme">ık</string>
<string name="lightTheme">Parlak işık</string>
<string name="videos">Videolar</string>
<string name="startpage">Ana Sayfa</string>
<string name="changeLanguage">Dili Değiştir</string>
<string name="systemLanguage">Sistem Dili</string>
<string name="changeLanguage">Dil</string>
<string name="systemLanguage">Sistem</string>
<string name="comments">Yorumlar</string>
<string name="videoCount">%1$s video</string>
<string name="noInternet">İnternet Bağlantısı Yok</string>
<string name="noInternet">Önce internete bağlanın.</string>
<string name="retry">Yeniden Dene</string>
<string name="location">Konum</string>
<string name="settings">Ayarlar</string>
<string name="instance">Erişim Aracı</string>
<string name="customization">Özelleştirme</string>
<string name="customization">Ayarlamalar</string>
<string name="website">İnternet Sitesi</string>
<string name="defaultTab">Varsayılan Sekme</string>
<string name="choose_filter">Arama filtresi seç</string>
<string name="category_outro_description">Kanal ikonları veya YouTube video kartları göründüğünde. Bilgi ile sonuçlar için değil.</string>
<string name="sponsorblock_state">Etkinleştir</string>
<string name="sponsorblock_state">ık</string>
<string name="clear_history">Geçmişi Temizle</string>
<string name="sponsorblock">SponsorBlok</string>
<string name="channels">Kanallar</string>
@ -84,7 +84,7 @@
<string name="history">Geçmiş</string>
<string name="all">Hepsi</string>
<string name="search_history">Arama Geçmişi</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app \'ten API kullanır</string>
<string name="sponsorblock_summary">https://sponsor.ajay.app API\'sini kullanır</string>
<string name="category_segments">Bölümler</string>
<string name="category_sponsor">Bağışçı</string>
<string name="segment_skipped">Bölüm atlandı</string>
@ -94,7 +94,7 @@
<string name="category_intro">Ara Verme/Giriş Animasyonu</string>
<string name="category_intro_description">Gerçek içerik olmayan bir bölge. Duraklatma, durağan bir bölüm, tekrarlayan animasyon olabilir. Bu, bilgi içeren geçişler için kullanılmamalıdır.</string>
<string name="category_interaction_description">İçeriğin ortasında beğenmek, abone olmak veya takip etmek için kısa bir hatırlatma olduğunda işe yarar. Uzunsa ya da belirli bir şey hakkında ise, bunun yerine \"kendini tanıtım\" altında olmalıdır.</string>
<string name="category_selfpromo_description">Ücretsiz veya kendini tanıtım dışında \"bağışçı\" ya benzer. Bu, ürünler, bağışlar veya kiminle işbirliği yaptıkları hakkındaki bilgilerle ilgili bölümleri içerir.</string>
<string name="category_selfpromo_description">Ücretsiz veya kendini tanıtım dışında \"bağışçı\" ile benzer. Bu, mallar, bağışlar veya kiminle işbirliği yaptığına dair bilgilerle ilgili bölümleri içerir.</string>
<string name="category_outro">Video Kartları/Kanal İkonu</string>
<string name="music_songs">YT Müzik Şarkıları</string>
<string name="music_albums">YT Müzik Albümleri</string>
@ -102,8 +102,8 @@
<string name="music_playlists">YT Müzik Oynatma Listeleri</string>
<string name="license">Lisans</string>
<string name="color_accent">Vurgu Rengi</string>
<string name="oledTheme">OLED</string>
<string name="material_you">Materyal You</string>
<string name="oledTheme">OLED Tema</string>
<string name="material_you">Kendi Tasarımı</string>
<string name="color_green">Yeşil</string>
<string name="color_purple">Mor</string>
<string name="color_yellow">Sarı</string>
@ -123,8 +123,8 @@
<string name="downloads">İndirilenler</string>
<string name="video_format">Video formatı</string>
<string name="video_format_summary">İndirilen videoların dönüştürüldüğü video formatı (yalnızca hem ses hem de video indirilirse geçerlidir).</string>
<string name="download_directory">İndirme dizini</string>
<string name="download_directory_summary">İndirdiğiniz medyanın depolandığı dizin.</string>
<string name="download_directory">İndirme konumu</string>
<string name="download_directory_summary">İndirdiğiniz medyanın depolandığı konum.</string>
<string name="contributing">Katkı</string>
<string name="license_summary">GNU Genel Kamu Lisansı, yazılım ve diğer çalışma türleri için ücretsiz, genel bir lisanstır.</string>
<string name="donate">Bağış Yapın</string>
@ -138,6 +138,34 @@
<string name="advanced">Gelişmiş</string>
<string name="player">Oynatıcı</string>
<string name="appearance_summary">Uygulamanın istediğiniz gibi görünmesini sağlayın.</string>
<string name="advanced_summary">Oyuncu, İndirilenler, Geçmiş</string>
<string name="advanced_summary">Oynatıcı, İndirilenler, Geçmiş</string>
<string name="update">Uygulama Güncellenmesi</string>
<string name="live">Canlı</string>
<string name="no_replies">Bu yoruma cevap yok.</string>
<string name="authors">Yazarlar</string>
<string name="authors_summary">LibreTube Ekipinin arkasında kimin olduğunu ve sihri kimin yapdığını öğrenin.</string>
<string name="internal_storage">Dahili depolama</string>
<string name="download_folder_summary">İndirilen medya adı ile bir klasörde saklanır.</string>
<string name="movies_directory">Filmler dizini</string>
<string name="shareTo">URL\'yi Paylaşın:</string>
<string name="download_folder">Dizin adı</string>
<string name="downloads_directory">İndirilenler dizini</string>
<string name="sdcard">Hafıza kartı</string>
<string name="music_directory">Müzik dizini</string>
<string name="defaultIcon">Varsayılan</string>
<string name="gradientIcon">Gradyan</string>
<string name="fireIcon">Yangın</string>
<string name="torchIcon">El Feneri</string>
<string name="birdIcon">Kuş</string>
<string name="legacyIcon">Eski</string>
<string name="views">%1$s görüntüleme</string>
<string name="shapedIcon">Şekilli</string>
<string name="flameIcon">Alev</string>
<string name="instance_summary">Piped, giriş, abonelikler</string>
<string name="addInstance">Oluşum ekle</string>
<string name="clear_customInstances">Özel oluşumları temizle</string>
<string name="instance_api_url">Oluşumun API bağlantısı</string>
<string name="customInstance_summary">Özel bir oluşum ekleyin (riski size ait olmak üzere)</string>
<string name="empty_instance">Adı ve API bağlantısını doldurmanız gerekir.</string>
<string name="instance_name">Oluşumun adı</string>
</resources>

View File

@ -116,4 +116,29 @@
<string name="sponsorblock_notifications">Сповіщення</string>
<string name="enabled">Увімкнено</string>
<string name="disabled">Вимкнено</string>
<string name="no_replies">Цей коментар не має відповідей.</string>
<string name="authors">Автори</string>
<string name="download_folder_summary">Назва теки, у яку будуть збережені завантажені матеріали.</string>
<string name="download_folder">Назва теки</string>
<string name="internal_storage">Пам\'ять телефона</string>
<string name="downloads_directory">Тека завантажень</string>
<string name="movies_directory">Тека для відео</string>
<string name="music_directory">Тека для музики</string>
<string name="shareTo">Поділитися відео з:</string>
<string name="update_available">Версія %1$s доступна</string>
<string name="update_available_text">Нове оновлення доступно. Натисніть ОК щоб перейти на сторінку оновлень GitHub.</string>
<string name="downloads">Завантаження</string>
<string name="video_format">Формат відео</string>
<string name="website_summary">Відвідайте наш сайт, щоб взнати більше про додаток та його функції.</string>
<string name="contributing">Внесок</string>
<string name="contributing_summary">Будь-яка допомога: нові ідеї, переклади, зміни у дизайні, чистка або зміни до коду, — допоможе цьому проєкту. Чим більше зроблено, тим краще!</string>
<string name="license_summary">Публічна ліцензія GNU - це безкоштовна копілефт ліцензія для додатків та інших видів робіт.</string>
<string name="update">Оновлення додатку</string>
<string name="update_summary">Натисніть тут, щоб перевірити наявність нових оновлень.</string>
<string name="app_uptodate">Додаток актуальний</string>
<string name="playback_speed">Стандартна швидкість відтворення</string>
<string name="player">Програвач</string>
<string name="appearance_summary">Зробіть додаток таким, яким ви хочете його бачити.</string>
<string name="advanced_summary">Програвач, завантаження, історія</string>
<string name="live">Пряма трансляція</string>
</resources>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>

View File

@ -11,7 +11,7 @@
<string name="subscriptions">订阅内容</string>
<string name="yes"></string>
<string name="library">媒体库</string>
<string name="choose_quality_dialog">分辨率</string>
<string name="choose_quality_dialog">分辨率</string>
<string name="search_hint">搜索</string>
<string name="videos">视频</string>
<string name="subscribe">订阅</string>
@ -19,9 +19,9 @@
<string name="register">注册</string>
<string name="logout">退出登录</string>
<string name="cancel">取消</string>
<string name="region">选择地区</string>
<string name="region">地区</string>
<string name="dlcomplete">下载已完成。</string>
<string name="dlisinprogress">另一个下载进程正在进行中。请先等待其完成。</string>
<string name="dlisinprogress">请等待直至所有下载完毕…</string>
<string name="downloadfailed">下载失败。</string>
<string name="vlc">在 VLC 中打开</string>
<string name="vlcerror">无法在 VLC 中打开。也许没有安装它。</string>
@ -32,7 +32,7 @@
<string name="unknown_error">网络错误。</string>
<string name="error">出了点问题。</string>
<string name="videoCount">%1$s 个视频</string>
<string name="noInternet">未连接到互联网</string>
<string name="noInternet">请先连接到互联网。</string>
<string name="retry">重试</string>
<string name="comments">评论</string>
<string name="choose_filter">搜索过滤条件</string>
@ -40,50 +40,50 @@
<string name="category_segments">片段</string>
<string name="save">保存</string>
<string name="category_intro">中场休息/开场动画</string>
<string name="category_intro_description">视频中没有实际内容的一段。可以是暂停、静态帧或者重复的动画。这不包括包含信息的过渡。</string>
<string name="category_outro">结束画面/鸣谢</string>
<string name="category_outro_description">鸣谢或是Youtube结束画面出现。并不是视频的总结部分</string>
<string name="category_intro_description">视频中没有实际内容的一段。可以是暂停、静态帧或者重复的动画。不应用于包含信息的过渡。</string>
<string name="category_outro">结束画面鸣谢</string>
<string name="category_outro_description">结尾后的信息。并非结局信息</string>
<string name="license">许可证</string>
<string name="login">登录</string>
<string name="loggedIn">已登录。</string>
<string name="already_logged_in">您已登录。您可以退出您的帐号。</string>
<string name="registered">注册成功。您现在可以订阅频道了。</string>
<string name="login_first">请登录然后重试!</string>
<string name="login_first">请登录并重试。</string>
<string name="loggedout">已退出登录。</string>
<string name="customInstance">添加自定义实例</string>
<string name="customInstance">自定义实例</string>
<string name="login_register">登录/注册</string>
<string name="subscribeIsEmpty">请先订阅一些频道。</string>
<string name="please_login">请先在设置中登录或注册。</string>
<string name="importsuccess">已订阅</string>
<string name="success">成功!</string>
<string name="success">完成。</string>
<string name="history">历史记录</string>
<string name="about">关于</string>
<string name="systemDefault">系统默认</string>
<string name="systemDefault">系统</string>
<string name="empty">你需要输入用户名和密码。</string>
<string name="emptyList">这里什么都没有。</string>
<string name="playlistName">播放列表名称</string>
<string name="location">位置</string>
<string name="addToPlaylist">添加到播放列表</string>
<string name="instance">实例</string>
<string name="customization">自定义</string>
<string name="customization">调节</string>
<string name="clear_history">清除历史记录</string>
<string name="music_videos">YT Music 视频</string>
<string name="music_playlists">YT Music 播放列表</string>
<string name="notgmail">不要在这里输入您的 Gmail 帐号</string>
<string name="notgmail">在此输入 LibreTube 账户</string>
<string name="defres">默认分辨率</string>
<string name="playlistCreated">播放列表创建成功!</string>
<string name="lightTheme">浅色主题</string>
<string name="darkTheme">深色主题</string>
<string name="playlistCreated">已创建播放列表。</string>
<string name="lightTheme">浅色</string>
<string name="darkTheme">深色</string>
<string name="okay">确定</string>
<string name="music_songs">YT Music 歌曲</string>
<string name="grid">选择首页视频流的栏数</string>
<string name="grid">网格列</string>
<string name="deletePlaylist">删除播放列表</string>
<string name="areYouSure">要删除这个播放列表吗?</string>
<string name="createPlaylist">创建播放列表</string>
<string name="emptyPlaylistName">播放列表不能是空的</string>
<string name="fail">失败:(</string>
<string name="changeLanguage">更改语言</string>
<string name="systemLanguage">系统语言</string>
<string name="changeLanguage">语言</string>
<string name="systemLanguage">系统</string>
<string name="subscribers">%1$s 位订阅者</string>
<string name="settings">设置</string>
<string name="search_history">搜索记录</string>
@ -96,23 +96,23 @@
<string name="category_selfpromo">无偿/自我推广</string>
<string name="category_selfpromo_description">除了无偿或自我宣传,与 \"赞助商 \"类似。这包括有关商品、捐赠或与谁合作的信息。</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="sponsorblock_summary">使用 https://sponsor.ajay.app/ 的 API</string>
<string name="sponsorblock_state">已启用</string>
<string name="sponsorblock_summary">使用 https://sponsor.ajay.app 的 API</string>
<string name="sponsorblock_state"></string>
<string name="category_sponsor">赞助商</string>
<string name="category_interaction">交互提示(订阅)</string>
<string name="category_interaction_description">这里指内容中的一个求按赞、订阅或关注他们的简短提示。如果是长篇大论或关于某些特定的内容,则应放在自我推广下</string>
<string name="color_accent">彩风格</string>
<string name="category_interaction">交互提醒(点赞和订阅)</string>
<string name="category_interaction_description">内容中求点赞、订阅或关注的简短提示算作交互。如果是长篇大论或关于某些特定的内容,则应属于自我推广</string>
<string name="color_accent">强调</string>
<string name="color_purple"></string>
<string name="color_red"></string>
<string name="color_blue">Pixel Blue</string>
<string name="color_blue"></string>
<string name="color_yellow"></string>
<string name="color_green">绿</string>
<string name="oledTheme">OLED 主题</string>
<string name="material_you">Material You</string>
<string name="oledTheme">黑色</string>
<string name="material_you">Mystic Material 3</string>
<string name="sponsorblock_notifications">通知</string>
<string name="enabled">已启用</string>
<string name="disabled">已停用</string>
<string name="app_icon">应用图标</string>
<string name="enabled"></string>
<string name="disabled"></string>
<string name="app_icon">图标</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">后台播放</string>

View File

@ -2,17 +2,27 @@
<resources>
<string-array name="instances">
<item>kavin.rocks (Official)</item>
<item>silkky.cloud</item>
<item>tokhmi.xyz</item>
<item>moomoo.me</item>
<item>mint.lgbt</item>
<item>il.ax</item>
<item>syncpundit.com</item>
<item>mha.fi</item>
<item>shimul.me</item>
<item>jae.fi</item>
<item>privacy.com.de</item>
</string-array>
<string-array name="instancesValue">
<item>https://pipedapi.kavin.rocks/</item>
<item>https://api.piped.silkky.cloud</item>
<item>https://pipedapi.tokhmi.xyz/</item>
<item>https://pipedapi.moomoo.me</item>
<item>https://pa.mint.lgbt</item>
<item>https://pipedapi.moomoo.me/</item>
<item>https://pa.mint.lgbt/</item>
<item>https://pa.il.ax/</item>
<item>https://pipedapi.syncpundit.com/</item>
<item>https://api-piped.mha.fi/</item>
<item>https://api-piped.shimul.me/</item>
<item>https://api.yt.jae.fi/</item>
<item>https://piped-api.privacy.com.de/</item>
</string-array>
<string-array name="shareHostsList">
<item>youtube.com"</item>
@ -449,14 +459,17 @@
<item>@string/systemLanguage</item>
<item>Arabic</item>
<item>Azerbaijani</item>
<item>Basque</item>
<item>Chinese (simplified)</item>
<item>Czech</item>
<item>Danish</item>
<item>English</item>
<item>Finnish</item>
<item>French</item>
<item>German</item>
<item>Greek</item>
<item>Gujarati</item>
<item>Hebrew</item>
<item>Hindi</item>
<item>Hungarian</item>
<item>Indonesian</item>
@ -475,20 +488,24 @@
<item>Sorani</item>
<item>Spanish</item>
<item>Turkish</item>
<item>Ukrainian</item>
</string-array>
<string-array name="languagesValue">
<item>sys</item>
<item>ar</item>
<item>az</item>
<item>eu</item>
<item>zh</item>
<item>cs</item>
<item>da</item>
<item>en</item>
<item>fi</item>
<item>fr</item>
<item>de</item>
<item>el</item>
<item>gu</item>
<item>he</item>
<item>hi</item>
<item>hu</item>
<item>in</item>
@ -507,6 +524,7 @@
<item>ckb</item>
<item>es</item>
<item>tr</item>
<item>uk</item>
</string-array>
<string-array name="themes">
@ -580,14 +598,14 @@
</string-array>
<string-array name="icons">
<item>Default</item>
<item>Legacy</item>
<item>Gradient</item>
<item>Fire</item>
<item>Torch</item>
<item>Shaped</item>
<item>Flame</item>
<item>Bird</item>
<item>@string/defaultIcon</item>
<item>@string/legacyIcon</item>
<item>@string/gradientIcon</item>
<item>@string/fireIcon</item>
<item>@string/torchIcon</item>
<item>@string/shapedIcon</item>
<item>@string/flameIcon</item>
<item>@string/birdIcon</item>
</string-array>
<string-array name="iconsValue">
<item>MainActivity</item>
@ -604,7 +622,6 @@
<item>MP4</item>
<item>MKV</item>
</string-array>
<string-array name="videoFormatsValues">
<item>.mp4</item>
<item>.mkv</item>
@ -619,7 +636,6 @@
<item>1.5x</item>
<item>2x</item>
</string-array>
<string-array name="playbackSpeedValues">
<item>0.25F</item>
<item>0.5F</item>
@ -636,7 +652,6 @@
<item>@string/movies_directory</item>
<item>@string/sdcard</item>
</string-array>
<string-array name="downloadLocationValues">
<item>downloads</item>
<item>music</item>

View File

@ -4,7 +4,7 @@
<string name="subscriptions">Subscriptions</string>
<string name="library">Library</string>
<string name="yes">Yes</string>
<string name="choose_quality_dialog">Choose Quality:</string>
<string name="choose_quality_dialog">Quality</string>
<string name="search_hint">Search</string>
<string name="videos">Videos</string>
<string name="subscribe">Subscribe</string>
@ -22,17 +22,17 @@
<string name="loggedout">Logged out.</string>
<string name="registered">Registered. Now you can subscribe to channels.</string>
<string name="already_logged_in">Already logged in. You may log out of your account.</string>
<string name="login_first">Please log in and try again!</string>
<string name="login_first">Please log in and try again.</string>
<string name="instances">Choose an instance</string>
<string name="customInstance">Add a custom instance</string>
<string name="region">Choose a region</string>
<string name="login_register">Log in/Register</string>
<string name="customInstance">Custom instance</string>
<string name="region">Region</string>
<string name="login_register">Log in/register</string>
<string name="please_login">Please log in or register in the settings first.</string>
<string name="importsuccess">Subscribed</string>
<string name="subscribeIsEmpty">Subscribe to some channels first.</string>
<string name="cannotDownload">Can\'t download this stream.</string>
<string name="dlcomplete">Download completed.</string>
<string name="dlisinprogress">Another download is already in progress. Please wait till it\'s finished.</string>
<string name="dlisinprogress">Please wait till all downloads are finished…</string>
<string name="downloadfailed">Download failed.</string>
<string name="vlc">Open in VLC</string>
<string name="vlcerror">Can\'t open in VLC. It might not be installed.</string>
@ -43,33 +43,33 @@
<string name="unknown_error">Network error.</string>
<string name="error">Something went wrong.</string>
<string name="empty">You have to enter a username and password.</string>
<string name="notgmail">This is not your Gmail account.</string>
<string name="notgmail">This is for a LibreTube account.</string>
<string name="defres">Default video resolution</string>
<string name="grid">Grid columns</string>
<string name="emptyList">Nothing here.</string>
<string name="deletePlaylist">Delete playlist</string>
<string name="areYouSure">Delete the playlist?</string>
<string name="createPlaylist">Create playlist</string>
<string name="playlistCreated">Playlist created!</string>
<string name="playlistName">Playlist Name</string>
<string name="playlistCreated">Playlist created.</string>
<string name="playlistName">Playlist name</string>
<string name="emptyPlaylistName">The playlist name can\'t be empty</string>
<string name="addToPlaylist">Add to Playlist</string>
<string name="success">Success!</string>
<string name="addToPlaylist">Add to playlist</string>
<string name="success">Done.</string>
<string name="fail">Failed :(</string>
<string name="about">About</string>
<string name="changeLanguage">Change Language</string>
<string name="systemLanguage">System Language</string>
<string name="systemDefault">System Default</string>
<string name="lightTheme">Light Theme</string>
<string name="darkTheme">Dark Theme</string>
<string name="changeLanguage">Language</string>
<string name="systemLanguage">System</string>
<string name="systemDefault">System</string>
<string name="lightTheme">Light theme</string>
<string name="darkTheme">Dark theme</string>
<string name="subscribers">%1$s subscribers</string>
<string name="settings">Settings</string>
<string name="location">Location</string>
<string name="instance">Instance</string>
<string name="customization">Customization</string>
<string name="customization">Adjustments</string>
<string name="website">Website</string>
<string name="videoCount">%1$s videos</string>
<string name="noInternet">No Internet Connection</string>
<string name="noInternet">Connect to the Internet first.</string>
<string name="retry">Retry</string>
<string name="comments">Comments</string>
<string name="choose_filter">Choose search filter</string>
@ -86,70 +86,91 @@
<string name="music_playlists">YT Music Playlists</string>
<string name="defaultTab">Default Tab</string>
<string name="sponsorblock">SponsorBlock</string>
<string name="sponsorblock_summary">Uses API from https://sponsor.ajay.app/</string>
<string name="sponsorblock_summary">Uses the https://sponsor.ajay.app API</string>
<string name="segment_skipped">Skipped segment</string>
<string name="sponsorblock_state">Enabled</string>
<string name="sponsorblock_state">On</string>
<string name="category_segments">Segments</string>
<string name="category_sponsor">Sponsor</string>
<string name="category_sponsor_description">Paid promotion, paid referrals and direct advertisements. Not for self-promotion or free shoutouts to causes/creators/websites/products they like.</string>
<string name="category_selfpromo">Unpaid/Self Promotion</string>
<string name="category_selfpromo_description">Similar to \"sponsor\" except for unpaid or self promotion. This includes sections about merchandise, donations, or information about who they collaborated with.</string>
<string name="category_interaction">Interaction Reminder (Subscribe)</string>
<string name="category_interaction_description">When there is a short reminder to like, subscribe or follow them in the middle of content. If it is long or about something specific, it should be under self promotion instead.</string>
<string name="category_selfpromo_description">Similar to \"sponsor\" except for unpaid or self promotion. This includes sections about merchandise, donations, or info about who they collaborated with.</string>
<string name="category_interaction">Interaction reminder (like and subscribe)</string>
<string name="category_interaction_description">When there is a short reminder to like, subscribe or follow in the middle of content. If long or about something specific, it should instead be self promotion.</string>
<string name="category_intro">Intermission/Intro Animation</string>
<string name="category_intro_description">An interval without actual content. Could be a pause, static frame, repeating animation. This should not be used for transitions containing information.</string>
<string name="category_outro">Endcards/Credits</string>
<string name="category_outro_description">Credits or when the YouTube endcards appear. Not for conclusions with information.</string>
<string name="category_intro_description">An interval without actual content. Could be a pause, static frame, repeating animation. Should not be used for transitions containing info.</string>
<string name="category_outro">End cards and credits</string>
<string name="category_outro_description">Info following the ending. Not for conclusions with info.</string>
<string name="license">License</string>
<string name="color_accent">Color Accent</string>
<string name="color_red">Red</string>
<string name="color_blue">Pixel Blue</string>
<string name="color_yellow">Yellow</string>
<string name="color_green">Green</string>
<string name="color_purple">Purple</string>
<string name="oledTheme">OLED Theme</string>
<string name="material_you">Material You</string>
<string name="color_accent">Accents</string>
<string name="color_red">Resting red</string>
<string name="color_blue">Pixel blue</string>
<string name="color_yellow">Yeeting yellow</string>
<string name="color_green">Groovy green</string>
<string name="color_purple">Pleasurable purple</string>
<string name="oledTheme">Black theme</string>
<string name="material_you">Mystic Material 3</string>
<string name="sponsorblock_notifications">Notifications</string>
<string name="app_icon">App Icon</string>
<string name="enabled">Enabled</string>
<string name="disabled">Disabled</string>
<string name="app_icon">Icon</string>
<string name="enabled">On</string>
<string name="disabled">Off</string>
<string name="piped">Piped</string>
<string name="youtube">YouTube</string>
<string name="playOnBackground">Play on background</string>
<string name="playOnBackground">Play in the background</string>
<string name="update_available">Version %1$s is available</string>
<string name="update_available_text">There is a new update available. Click okay to become redirected to the update page on GitHub.</string>
<string name="update_available_text">Go to releases on GitHub to download it?</string>
<string name="appearance">Appearance</string>
<string name="app_behavior">App Behavior</string>
<string name="app_behavior">Behavior</string>
<string name="downloads">Downloads</string>
<string name="video_format">Video format</string>
<string name="video_format_summary">The video format downloaded videos get converted to (only applies if both, audio and video, are downloaded).</string>
<string name="download_directory">Download location</string>
<string name="download_directory_summary">The location where your downloaded media gets stored.</string>
<string name="website_summary">Visit our website to learn more about the app and its features.</string>
<string name="video_format_summary">Conversion of files if both audio and video are downloaded.</string>
<string name="download_directory">Download to</string>
<string name="download_directory_summary">Where downloaded media gets stored.</string>
<string name="website_summary">Visit the website for more info on the app and its features.</string>
<string name="contributing">Contributing</string>
<string name="contributing_summary">Whether you have ideas, translations, design changes, code cleaning, or real heavy code changes, help is always welcome. The more is done the better it gets!</string>
<string name="license_summary">The GNU General Public License is a free, copyleft license for software and other kinds of works.</string>
<string name="contributing_summary">Provide ideas, translations, design changes, clean and write code. The more is done the better it gets!</string>
<string name="license_summary">The GPLv3+ is a copylefted libre license. Use, study, change and share; with all.</string>
<string name="donate">Donate</string>
<string name="donate_summary">If you like the app and appreciate our work we\'d be happy about a donation.</string>
<string name="update">App update</string>
<string name="update_summary">Click here to check whether there\'s a new app update available.</string>
<string name="app_uptodate">App up to date</string>
<string name="no_update_available">There\'s currently no new update available. Stay tuned!</string>
<string name="donate_summary">Give what this is worth to you, if you can. Team LibreTube is smaller than your donation or help.</string>
<string name="update">Look for new version</string>
<string name="update_summary">Click to find out if the app is up to date.</string>
<string name="app_uptodate">Running the latest version.</string>
<string name="no_update_available">You are running the latest version.</string>
<string name="playback_speed">Default playback speed</string>
<string name="advanced">Advanced</string>
<string name="player">Player</string>
<string name="appearance_summary">Make the app look how you want to.</string>
<string name="advanced_summary">Player, Downloads, History</string>
<string name="appearance_summary">Adjust the app to your liking.</string>
<string name="advanced_summary">Player, downloads, history</string>
<string name="live">Live</string>
<string name="no_replies">This comment has no replies.</string>
<string name="authors">Authors</string>
<string name="authors_summary">Find out who\'s behind Team LibreTube and does the magic.</string>
<string name="download_folder">Directory name</string>
<string name="download_folder_summary">The name of the directory downloaded media gets stored in.</string>
<string name="authors_summary">Get to know team LibreTube and all its contributors helping to improve the app.</string>
<string name="download_folder">Name</string>
<string name="download_folder_summary">The name of the folder downloaded media is stored in.</string>
<string name="internal_storage">Internal storage</string>
<string name="downloads_directory">Downloads directory</string>
<string name="downloads_directory">Download folder</string>
<string name="sdcard">SD card</string>
<string name="music_directory">Music directory</string>
<string name="movies_directory">Movies directory</string>
<string name="shareTo">Share Url To:</string>
</resources>
<string name="music_directory">Music folder</string>
<string name="movies_directory">Movie folder</string>
<string name="shareTo">Share URL to</string>
<string name="views">%1$s views</string>
<string name="defaultIcon">Default</string>
<string name="legacyIcon">Lost legacy</string>
<string name="gradientIcon">Glib gradient</string>
<string name="fireIcon">Fashionable fire</string>
<string name="torchIcon">Trendy torch</string>
<string name="shapedIcon">Silly shaped</string>
<string name="flameIcon">Flying flame</string>
<string name="birdIcon">Boosted bird</string>
<string name="instance_summary">Piped, login, subscriptions</string>
<string name="customInstance_summary">Add a custom instance (on your own risk)</string>
<string name="instance_name">Instance name</string>
<string name="instance_api_url">Instance API url</string>
<string name="addInstance">Add Instance</string>
<string name="empty_instance">You have to fill in the name and the API url.</string>
<string name="clear_customInstances">Clear custom instances</string>
<string name="invalid_url">Please enter a valid url</string>
<string name="version">Version %1$s</string>
<string name="about_summary">Get to know team LibreTube and how it all happens.</string>
<string name="related_streams">Related streams</string>
<string name="related_streams_summary">Show related streams to videos.</string>
</resources>

View File

@ -68,4 +68,15 @@
</PreferenceCategory>
<PreferenceCategory>
<SwitchPreference
app:key="related_streams_toggle"
app:title="@string/related_streams"
app:summary="@string/related_streams_summary"
android:defaultValue="true"
android:icon="@drawable/ic_list"/>
</PreferenceCategory>
</PreferenceScreen>

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory app:title="@string/instance">
<ListPreference
android:icon="@drawable/ic_server"
app:defaultValue="https://pipedapi.kavin.rocks/"
app:entries="@array/instances"
app:entryValues="@array/instancesValue"
app:key="selectInstance"
app:title="@string/instances" />
<Preference
app:key="customInstance"
app:title="@string/customInstance"
app:summary="@string/customInstance_summary"
android:icon="@drawable/ic_add_instance" />
<Preference
app:key="clearCustomInstances"
app:title="@string/clear_customInstances"
android:icon="@drawable/ic_trash" />
<Preference
android:icon="@drawable/ic_login"
android:summary="@string/notgmail"
app:key="login_register"
app:title="@string/login_register" />
<Preference
android:icon="@drawable/ic_upload"
android:summary="@string/import_from_yt_summary"
app:key="import_from_yt"
app:title="@string/import_from_yt" />
</PreferenceCategory>
</PreferenceScreen>

View File

@ -5,83 +5,66 @@
<PreferenceCategory app:title="@string/location">
<ListPreference
app:key="region"
app:title="@string/region"
android:icon="@drawable/ic_region"
app:defaultValue="US"
app:entries="@array/regions"
app:entryValues="@array/regionsValue"
app:defaultValue="US"
app:useSimpleSummaryProvider="true"
android:icon="@drawable/ic_region" />
app:key="region"
app:title="@string/region"
app:useSimpleSummaryProvider="true" />
<ListPreference
app:key="language"
app:title="@string/changeLanguage"
android:icon="@drawable/ic_translate"
app:defaultValue="sys"
app:entries="@array/languages"
app:entryValues="@array/languagesValue"
app:defaultValue="sys"
app:useSimpleSummaryProvider="true"
android:icon="@drawable/ic_translate" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/instance">
<ListPreference
app:key="instance"
app:title="@string/instances"
app:entries="@array/instances"
app:entryValues="@array/instancesValue"
app:defaultValue="https://pipedapi.kavin.rocks/"
android:icon="@drawable/ic_server" />
<EditTextPreference
app:key="customInstance"
app:title="@string/customInstance"
app:isPreferenceVisible="false" />
<Preference
app:key="login_register"
app:title="@string/login_register"
android:icon="@drawable/ic_login"
android:summary="@string/notgmail" />
<Preference
app:key="import_from_yt"
app:title="@string/import_from_yt"
android:summary="@string/import_from_yt_summary"
android:icon="@drawable/ic_upload" />
app:key="language"
app:title="@string/changeLanguage"
app:useSimpleSummaryProvider="true" />
</PreferenceCategory>
<PreferenceCategory app:title="@string/customization">
<Preference
app:key="appearance"
app:title="@string/appearance"
app:summary="@string/appearance_summary"
android:icon="@drawable/ic_color" />
android:icon="@drawable/ic_server"
app:key="instance"
app:summary="@string/instance_summary"
app:title="@string/instance" />
<Preference
app:title="@string/sponsorblock"
android:icon="@drawable/ic_color"
app:key="appearance"
app:summary="@string/appearance_summary"
app:title="@string/appearance" />
<Preference
android:icon="@drawable/ic_block"
app:key="sponsorblock"
app:summary="@string/sponsorblock_summary"
android:icon="@drawable/ic_block" />
app:title="@string/sponsorblock" />
<Preference
android:icon="@drawable/ic_list"
app:key="advanced"
app:title="@string/advanced"
app:summary="@string/advanced_summary"
android:icon="@drawable/ic_list" />
app:title="@string/advanced" />
</PreferenceCategory>
<PreferenceCategory>
<Preference
app:title="@string/about"
android:icon="@drawable/ic_info"
app:key="about"
android:icon="@drawable/ic_info" />
app:summary="@string/about_summary"
app:title="@string/about" />
<Preference
android:icon="@drawable/ic_update"
app:key="update"
app:summary="@string/update_summary"
app:title="App version" />
</PreferenceCategory>

View File

@ -0,0 +1,6 @@
Added Option to change the app icon
You can now open YouTube/Piped links with the app
New video options dialog on longpressing a video
Audio only mode
Aspect ratio option in player
And many bug fixes :)

View File

@ -1 +1 @@
LibreTube is not connected to google directly, instead it uses piped instances to load data and play videos. Therefore this app doesnt need to use any of Google Services installed. Also there is no need for a YouTube account, and its FLOSS
<i>LibreTube</i> is an alternative frontend for YouTube. It uses the <a href='https://github.com/TeamPiped/Piped' target='_blank' rel='nofollow'>Piped</a> API to load data and play videos and thus needs no YT account and no Google Services on your device.