This commit is contained in:
Milos Kozak 2022-02-23 19:15:22 +01:00
commit 7908823b8d
118 changed files with 2499 additions and 1132 deletions

View file

@ -1,13 +1,13 @@
package info.nightscout.androidaps.activities package info.nightscout.androidaps.activities
import android.os.Bundle import android.os.Bundle
import android.view.MenuItem
import android.view.View import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.FragmentTransaction
import info.nightscout.androidaps.R import info.nightscout.androidaps.R
import info.nightscout.androidaps.activities.fragments.* import info.nightscout.androidaps.activities.fragments.*
import info.nightscout.androidaps.databinding.TreatmentsFragmentBinding import info.nightscout.androidaps.databinding.TreatmentsFragmentBinding
import info.nightscout.androidaps.extensions.toVisibility
import info.nightscout.androidaps.interfaces.ActivePlugin import info.nightscout.androidaps.interfaces.ActivePlugin
import info.nightscout.androidaps.utils.buildHelper.BuildHelper import info.nightscout.androidaps.utils.buildHelper.BuildHelper
import javax.inject.Inject import javax.inject.Inject
@ -23,40 +23,60 @@ class TreatmentsActivity : NoSplashAppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
binding = TreatmentsFragmentBinding.inflate(layoutInflater) binding = TreatmentsFragmentBinding.inflate(layoutInflater)
setContentView(binding.root) setContentView(binding.root)
//binding.tempBasals.visibility = buildHelper.isEngineeringMode().toVisibility() //binding.tempBasals.visibility = buildHelper.isEngineeringMode().toVisibility()
//binding.extendedBoluses.visibility = (buildHelper.isEngineeringMode() && !activePlugin.activePump.isFakingTempsByExtendedBoluses).toVisibility() //binding.extendedBoluses.visibility = (buildHelper.isEngineeringMode() && !activePlugin.activePump.isFakingTempsByExtendedBoluses).toVisibility()
binding.treatments.setOnClickListener { binding.treatments.setOnClickListener {
setFragment(TreatmentsBolusCarbsFragment()) setFragment(TreatmentsBolusCarbsFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.carbs_and_bolus)
} }
binding.extendedBoluses.setOnClickListener { binding.extendedBoluses.setOnClickListener {
setFragment(TreatmentsExtendedBolusesFragment()) setFragment(TreatmentsExtendedBolusesFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.extended_bolus)
} }
binding.tempBasals.setOnClickListener { binding.tempBasals.setOnClickListener {
setFragment(TreatmentsTemporaryBasalsFragment()) setFragment(TreatmentsTemporaryBasalsFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.tempbasal_label)
} }
binding.tempTargets.setOnClickListener { binding.tempTargets.setOnClickListener {
setFragment(TreatmentsTempTargetFragment()) setFragment(TreatmentsTempTargetFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.tempt_targets)
} }
binding.profileSwitches.setOnClickListener { binding.profileSwitches.setOnClickListener {
setFragment(TreatmentsProfileSwitchFragment()) setFragment(TreatmentsProfileSwitchFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.profile_changes)
} }
binding.careportal.setOnClickListener { binding.careportal.setOnClickListener {
setFragment(TreatmentsCareportalFragment()) setFragment(TreatmentsCareportalFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.careportal)
} }
binding.userentry.setOnClickListener { binding.userentry.setOnClickListener {
setFragment(TreatmentsUserEntryFragment()) setFragment(TreatmentsUserEntryFragment())
setBackgroundColorOnSelected(it) setBackgroundColorOnSelected(it)
supportActionBar?.title = rh.gs(R.string.user_action)
} }
setFragment(TreatmentsBolusCarbsFragment()) setFragment(TreatmentsBolusCarbsFragment())
setBackgroundColorOnSelected(binding.treatments) setBackgroundColorOnSelected(binding.treatments)
setSupportActionBar(binding.toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
supportActionBar?.title = rh.gs(R.string.carbs_and_bolus)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
android.R.id.home -> {
finish()
true
}
else -> false
}
} }
private fun setFragment(selectedFragment: Fragment) { private fun setFragment(selectedFragment: Fragment) {

View file

@ -3,9 +3,13 @@ package info.nightscout.androidaps.activities.fragments
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Paint import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.util.Log
import android.view.View import android.util.SparseArray
import android.view.ViewGroup import android.view.*
import android.widget.CompoundButton
import android.view.ActionMode
import androidx.appcompat.widget.Toolbar
import androidx.core.util.forEach
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -67,6 +71,10 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
@Inject lateinit var repository: AppRepository @Inject lateinit var repository: AppRepository
@Inject lateinit var activePlugin: ActivePlugin @Inject lateinit var activePlugin: ActivePlugin
private var _binding: TreatmentsBolusCarbsFragmentBinding? = null
// This property is only valid between onCreateView and onDestroyView.
private val binding get() = _binding!!
class MealLink( class MealLink(
val bolus: Bolus? = null, val bolus: Bolus? = null,
val carbs: Carbs? = null, val carbs: Carbs? = null,
@ -74,14 +82,12 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
) )
private val disposable = CompositeDisposable() private val disposable = CompositeDisposable()
private val millsToThePast = T.days(30).msecs() private val millsToThePast = T.days(30).msecs()
private var _binding: TreatmentsBolusCarbsFragmentBinding? = null private var selectedItems: SparseArray<MealLink> = SparseArray()
private var showInvalidated = false
// This property is only valid between onCreateView and private var removeActionMode: ActionMode? = null
// onDestroyView. private var toolbar: Toolbar? = null
private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
TreatmentsBolusCarbsFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root TreatmentsBolusCarbsFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
@ -89,92 +95,10 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
setHasOptionsMenu(true)
toolbar = activity?.findViewById(R.id.toolbar)
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
binding.refreshFromNightscout.setOnClickListener {
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.refresheventsfromnightscout) + "?") {
uel.log(Action.TREATMENTS_NS_REFRESH, Sources.Treatments)
disposable +=
Completable.fromAction {
repository.deleteAllBolusCalculatorResults()
repository.deleteAllBoluses()
repository.deleteAllCarbs()
}
.subscribeOn(aapsSchedulers.io)
.observeOn(aapsSchedulers.main)
.subscribeBy(
onError = { aapsLogger.error("Error removing entries", it) },
onComplete = {
rxBus.send(EventTreatmentChange())
rxBus.send(EventNewHistoryData(0, false))
}
)
rxBus.send(EventNSClientRestart())
}
}
}
binding.deleteFutureTreatments.setOnClickListener {
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.overview_treatment_label), rh.gs(R.string.deletefuturetreatments) + "?", Runnable {
uel.log(Action.DELETE_FUTURE_TREATMENTS, Sources.Treatments)
repository
.getBolusesDataFromTime(dateUtil.now(), false)
.observeOn(aapsSchedulers.main)
.subscribe { list ->
list.forEach { bolus ->
disposable += repository.runTransactionForResult(InvalidateBolusTransaction(bolus.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated bolus $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating bolus", it) }
)
}
}
repository
.getCarbsDataFromTimeNotExpanded(dateUtil.now(), false)
.observeOn(aapsSchedulers.main)
.subscribe { list ->
list.forEach { carb ->
if (carb.duration == 0L)
disposable += repository.runTransactionForResult(InvalidateCarbsTransaction(carb.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated carbs $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating carbs", it) }
)
else {
disposable += repository.runTransactionForResult(CutCarbsTransaction(carb.id, dateUtil.now()))
.subscribe(
{ result ->
result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated carbs $it") }
result.updated.forEach { aapsLogger.debug(LTag.DATABASE, "Updated (cut end) carbs $it") }
},
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating carbs", it) }
)
}
}
}
repository
.getBolusCalculatorResultsDataFromTime(dateUtil.now(), false)
.observeOn(aapsSchedulers.main)
.subscribe { list ->
list.forEach { bolusCalc ->
disposable += repository.runTransactionForResult(InvalidateBolusCalculatorResultTransaction(bolusCalc.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated bolusCalculatorResult $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating bolusCalculatorResult", it) }
)
}
}
binding.deleteFutureTreatments.visibility = View.GONE
})
}
}
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_insulin, false) || !sp.getBoolean(R.string.key_ns_receive_carbs, false) || !buildHelper.isEngineeringMode()
if (nsUploadOnly) binding.refreshFromNightscout.visibility = View.GONE
binding.showInvalidated.setOnCheckedChangeListener { _, _ ->
rxBus.send(EventTreatmentUpdateGui())
}
} }
private fun bolusMealLinksWithInvalid(now: Long) = repository private fun bolusMealLinksWithInvalid(now: Long) = repository
@ -204,8 +128,9 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
fun swapAdapter() { fun swapAdapter() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
if (binding.showInvalidated.isChecked) disposable +=
disposable += carbsMealLinksWithInvalid(now) if (showInvalidated)
carbsMealLinksWithInvalid(now)
.zipWith(bolusMealLinksWithInvalid(now)) { first, second -> first + second } .zipWith(bolusMealLinksWithInvalid(now)) { first, second -> first + second }
.zipWith(calcResultMealLinksWithInvalid(now)) { first, second -> first + second } .zipWith(calcResultMealLinksWithInvalid(now)) { first, second -> first + second }
.map { ml -> .map { ml ->
@ -217,10 +142,9 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> .subscribe { list ->
binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true) binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true)
binding.deleteFutureTreatments.visibility = list.isNotEmpty().toVisibility()
} }
else else
disposable += carbsMealLinks(now) carbsMealLinks(now)
.zipWith(bolusMealLinks(now)) { first, second -> first + second } .zipWith(bolusMealLinks(now)) { first, second -> first + second }
.zipWith(calcResultMealLinks(now)) { first, second -> first + second } .zipWith(calcResultMealLinks(now)) { first, second -> first + second }
.map { ml -> .map { ml ->
@ -232,7 +156,6 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> .subscribe { list ->
binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true) binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true)
binding.deleteFutureTreatments.visibility = list.isNotEmpty().toVisibility()
} }
} }
@ -267,13 +190,14 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
@Synchronized @Synchronized
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
removeActionMode?.let { it.finish() }
binding.recyclerview.adapter = null // avoid leaks binding.recyclerview.adapter = null // avoid leaks
_binding = null _binding = null
} }
private fun timestamp(ml: MealLink): Long = ml.bolusCalculatorResult?.let { it.timestamp } ?: ml.bolus?.let { it.timestamp } ?: ml.carbs?.let { it.timestamp } ?: 0L private fun timestamp(ml: MealLink): Long = ml.bolusCalculatorResult?.timestamp ?: ml.bolus?.timestamp ?: ml.carbs?.timestamp ?: 0L
inner class RecyclerViewAdapter internal constructor(var mealLinks: List<MealLink>) : RecyclerView.Adapter<RecyclerViewAdapter.MealLinkLoadedViewHolder>() { inner class RecyclerViewAdapter internal constructor(private var mealLinks: List<MealLink>) : RecyclerView.Adapter<RecyclerViewAdapter.MealLinkLoadedViewHolder>() {
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): MealLinkLoadedViewHolder = override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): MealLinkLoadedViewHolder =
MealLinkLoadedViewHolder(LayoutInflater.from(viewGroup.context).inflate(R.layout.treatments_bolus_carbs_item, viewGroup, false)) MealLinkLoadedViewHolder(LayoutInflater.from(viewGroup.context).inflate(R.layout.treatments_bolus_carbs_item, viewGroup, false))
@ -287,13 +211,13 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
holder.binding.date.text = dateUtil.dateString(timestamp(ml)) holder.binding.date.text = dateUtil.dateString(timestamp(ml))
// Metadata // Metadata
holder.binding.metadataLayout.visibility = (ml.bolusCalculatorResult != null && (ml.bolusCalculatorResult.isValid || binding.showInvalidated.isChecked)).toVisibility() holder.binding.metadataLayout.visibility = (ml.bolusCalculatorResult != null && (ml.bolusCalculatorResult.isValid || showInvalidated)).toVisibility()
ml.bolusCalculatorResult?.let { bolusCalculatorResult -> ml.bolusCalculatorResult?.let { bolusCalculatorResult ->
holder.binding.calcTime.text = dateUtil.timeString(bolusCalculatorResult.timestamp) holder.binding.calcTime.text = dateUtil.timeString(bolusCalculatorResult.timestamp)
} }
// Bolus // Bolus
holder.binding.bolusLayout.visibility = (ml.bolus != null && (ml.bolus.isValid || binding.showInvalidated.isChecked)).toVisibility() holder.binding.bolusLayout.visibility = (ml.bolus != null && (ml.bolus.isValid || showInvalidated)).toVisibility()
ml.bolus?.let { bolus -> ml.bolus?.let { bolus ->
holder.binding.bolusTime.text = dateUtil.timeString(bolus.timestamp) holder.binding.bolusTime.text = dateUtil.timeString(bolus.timestamp)
holder.binding.insulin.text = rh.gs(R.string.formatinsulinunits, bolus.amount) holder.binding.insulin.text = rh.gs(R.string.formatinsulinunits, bolus.amount)
@ -321,7 +245,7 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
} }
} }
// Carbs // Carbs
holder.binding.carbsLayout.visibility = (ml.carbs != null && (ml.carbs.isValid || binding.showInvalidated.isChecked)).toVisibility() holder.binding.carbsLayout.visibility = (ml.carbs != null && (ml.carbs.isValid || showInvalidated)).toVisibility()
ml.carbs?.let { carbs -> ml.carbs?.let { carbs ->
holder.binding.carbsTime.text = dateUtil.timeString(carbs.timestamp) holder.binding.carbsTime.text = dateUtil.timeString(carbs.timestamp)
holder.binding.carbs.text = rh.gs(R.string.format_carbs, carbs.amount.toInt()) holder.binding.carbs.text = rh.gs(R.string.format_carbs, carbs.amount.toInt())
@ -330,19 +254,28 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
holder.binding.carbsPump.visibility = (carbs.interfaceIDs.pumpId != null).toVisibility() holder.binding.carbsPump.visibility = (carbs.interfaceIDs.pumpId != null).toVisibility()
holder.binding.carbsInvalid.visibility = carbs.isValid.not().toVisibility() holder.binding.carbsInvalid.visibility = carbs.isValid.not().toVisibility()
} }
holder.binding.cbBolusRemove.visibility = (ml.bolus?.isValid == true && removeActionMode != null).toVisibility()
holder.binding.bolusRemove.visibility = (ml.bolus?.isValid == true).toVisibility() holder.binding.cbCarbsRemove.visibility = (ml.carbs?.isValid == true && removeActionMode != null).toVisibility()
holder.binding.carbsRemove.visibility = (ml.carbs?.isValid == true).toVisibility() if (removeActionMode != null) {
holder.binding.bolusRemove.tag = ml val onChange = CompoundButton.OnCheckedChangeListener { _, value ->
holder.binding.carbsRemove.tag = ml if (value) {
selectedItems.put(position, ml)
} else {
selectedItems.remove(position)
}
removeActionMode?.title = rh.gs(R.string.count_selected, selectedItems.size())
}
holder.binding.cbBolusRemove.setOnCheckedChangeListener(onChange)
holder.binding.cbBolusRemove.isChecked = selectedItems.get(position) != null
holder.binding.cbCarbsRemove.setOnCheckedChangeListener(onChange)
holder.binding.cbCarbsRemove.isChecked = selectedItems.get(position) != null
}
holder.binding.calculation.tag = ml holder.binding.calculation.tag = ml
val nextTimestamp = if (mealLinks.size != position + 1) timestamp(mealLinks[position + 1]) else 0L val nextTimestamp = if (mealLinks.size != position + 1) timestamp(mealLinks[position + 1]) else 0L
holder.binding.delimiter.visibility = dateUtil.isSameDay(timestamp(ml), nextTimestamp).toVisibility() holder.binding.delimiter.visibility = dateUtil.isSameDay(timestamp(ml), nextTimestamp).toVisibility()
} }
override fun getItemCount(): Int { override fun getItemCount() = mealLinks.size
return mealLinks.size
}
inner class MealLinkLoadedViewHolder internal constructor(view: View) : RecyclerView.ViewHolder(view) { inner class MealLinkLoadedViewHolder internal constructor(view: View) : RecyclerView.ViewHolder(view) {
@ -359,35 +292,199 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
} }
} }
binding.calculation.paintFlags = binding.calculation.paintFlags or Paint.UNDERLINE_TEXT_FLAG binding.calculation.paintFlags = binding.calculation.paintFlags or Paint.UNDERLINE_TEXT_FLAG
binding.bolusRemove.setOnClickListener { ml -> }
val bolus = (ml.tag as MealLink?)?.bolus ?: return@setOnClickListener }
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_treatments_carbs_bolus, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onPrepareOptionsMenu(menu: Menu) {
menu.findItem(R.id.nav_hide_invalidated)?.isVisible = showInvalidated
menu.findItem(R.id.nav_show_invalidated)?.isVisible = !showInvalidated
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_insulin, false) || !sp.getBoolean(R.string.key_ns_receive_carbs, false) || !buildHelper.isEngineeringMode()
menu.findItem(R.id.nav_refresh_ns)?.isVisible = !nsUploadOnly
val hasItems = (binding.recyclerview.adapter?.itemCount ?: 0) > 0
menu.findItem(R.id.nav_delete_future)?.isVisible = hasItems
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean =
when (item.itemId) {
R.id.nav_remove_items -> {
removeActionMode = toolbar?.startActionMode(RemoveActionModeCallback())
true
}
R.id.nav_show_invalidated -> {
showInvalidated = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_invalidated -> {
showInvalidated = false
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_delete_future -> {
deleteFutureTreatments()
true
}
R.id.nav_refresh_ns -> {
refreshFromNightscout()
true
}
else -> false
}
private fun refreshFromNightscout() {
activity?.let { activity -> activity?.let { activity ->
val text = rh.gs(R.string.configbuilder_insulin) + ": " + OKDialog.showConfirmation(activity, rh.gs(R.string.refresheventsfromnightscout) + "?") {
rh.gs(R.string.formatinsulinunits, bolus.amount) + "\n" + uel.log(Action.TREATMENTS_NS_REFRESH, Sources.Treatments)
disposable +=
Completable.fromAction {
repository.deleteAllBolusCalculatorResults()
repository.deleteAllBoluses()
repository.deleteAllCarbs()
}
.subscribeOn(aapsSchedulers.io)
.observeOn(aapsSchedulers.main)
.subscribeBy(
onError = { aapsLogger.error("Error removing entries", it) },
onComplete = {
rxBus.send(EventTreatmentChange())
rxBus.send(EventNewHistoryData(0, false))
}
)
rxBus.send(EventNSClientRestart())
}
}
}
fun deleteFutureTreatments() {
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.overview_treatment_label), rh.gs(R.string.deletefuturetreatments) + "?", Runnable {
uel.log(Action.DELETE_FUTURE_TREATMENTS, Sources.Treatments)
disposable += repository
.getBolusesDataFromTime(dateUtil.now(), false)
.observeOn(aapsSchedulers.main)
.subscribe { list ->
list.forEach { bolus ->
disposable += repository.runTransactionForResult(InvalidateBolusTransaction(bolus.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated bolus $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating bolus", it) }
)
}
}
disposable += repository
.getCarbsDataFromTimeNotExpanded(dateUtil.now(), false)
.observeOn(aapsSchedulers.main)
.subscribe { list ->
list.forEach { carb ->
if (carb.duration == 0L)
disposable += repository.runTransactionForResult(InvalidateCarbsTransaction(carb.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated carbs $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating carbs", it) }
)
else {
disposable += repository.runTransactionForResult(CutCarbsTransaction(carb.id, dateUtil.now()))
.subscribe(
{ result ->
result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated carbs $it") }
result.updated.forEach { aapsLogger.debug(LTag.DATABASE, "Updated (cut end) carbs $it") }
},
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating carbs", it) }
)
}
}
}
disposable += repository
.getBolusCalculatorResultsDataFromTime(dateUtil.now(), false)
.observeOn(aapsSchedulers.main)
.subscribe { list ->
list.forEach { bolusCalc ->
disposable += repository.runTransactionForResult(InvalidateBolusCalculatorResultTransaction(bolusCalc.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated bolusCalculatorResult $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating bolusCalculatorResult", it) }
)
}
}
})
}
}
inner class RemoveActionModeCallback : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode, menu: Menu?): Boolean {
mode.menuInflater.inflate(R.menu.menu_delete_selection, menu)
selectedItems.clear()
mode.title = rh.gs(R.string.count_selected, selectedItems.size())
binding.recyclerview.adapter?.notifyDataSetChanged()
return true
}
override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?) = false
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
return when (item.itemId) {
R.id.remove_selected -> {
removeSelected()
true
}
else -> false
}
}
override fun onDestroyActionMode(mode: ActionMode?) {
removeActionMode = null
binding.recyclerview.adapter?.notifyDataSetChanged()
}
}
private fun getConfirmationText(): String {
if (selectedItems.size() == 1) {
val mealLink = selectedItems.valueAt(0)
val bolus = mealLink.bolus
if (bolus != null)
return rh.gs(R.string.configbuilder_insulin) + ": " + rh.gs(R.string.formatinsulinunits, bolus.amount) + "\n" +
rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(bolus.timestamp) rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(bolus.timestamp)
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), text, Runnable { val carbs = mealLink.carbs
if (carbs != null)
return rh.gs(R.string.carbs) + ": " + rh.gs(R.string.format_carbs, carbs.amount.toInt()) + "\n" +
rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(carbs.timestamp)
}
return rh.gs(R.string.confirm_remove_multiple_items, selectedItems.size())
}
fun removeSelected() {
if (selectedItems.size() > 0)
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), getConfirmationText(), Runnable {
selectedItems.forEach {key, ml ->
ml.bolus?.let { bolus ->
uel.log( uel.log(
Action.BOLUS_REMOVED, Sources.Treatments, Action.BOLUS_REMOVED, Sources.Treatments,
ValueWithUnit.Timestamp(bolus.timestamp), ValueWithUnit.Timestamp(bolus.timestamp),
ValueWithUnit.Insulin(bolus.amount) ValueWithUnit.Insulin(bolus.amount)
//ValueWithUnit.Gram(mealLinkLoaded.carbs.toInt())
) )
disposable += repository.runTransactionForResult(InvalidateBolusTransaction(bolus.id)) disposable += repository.runTransactionForResult(InvalidateBolusTransaction(bolus.id))
.subscribe( .subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated bolus $it") } }, { result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated bolus $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating bolus", it) } { aapsLogger.error(LTag.DATABASE, "Error while invalidating bolus", it) }
) )
})
} }
} ml.carbs?.let { carb ->
binding.bolusRemove.paintFlags = binding.bolusRemove.paintFlags or Paint.UNDERLINE_TEXT_FLAG
binding.carbsRemove.setOnClickListener { ml ->
val carb = (ml.tag as MealLink?)?.carbs ?: return@setOnClickListener
activity?.let { activity ->
val text = rh.gs(R.string.carbs) + ": " +
rh.gs(R.string.carbs) + ": " + rh.gs(R.string.format_carbs, carb.amount.toInt()) + "\n" +
rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(carb.timestamp)
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), text, Runnable {
uel.log( uel.log(
Action.CARBS_REMOVED, Sources.Treatments, Action.CARBS_REMOVED, Sources.Treatments,
ValueWithUnit.Timestamp(carb.timestamp), ValueWithUnit.Timestamp(carb.timestamp),
@ -398,11 +495,12 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated carbs $it") } }, { result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated carbs $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating carbs", it) } { aapsLogger.error(LTag.DATABASE, "Error while invalidating carbs", it) }
) )
}
}
removeActionMode?.finish()
}) })
} }
} else
binding.carbsRemove.paintFlags = binding.carbsRemove.paintFlags or Paint.UNDERLINE_TEXT_FLAG removeActionMode?.finish()
}
}
} }
} }

View file

@ -1,10 +1,11 @@
package info.nightscout.androidaps.activities.fragments package info.nightscout.androidaps.activities.fragments
import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.util.SparseArray
import android.view.View import android.view.*
import android.view.ViewGroup import android.view.ActionMode
import androidx.appcompat.widget.Toolbar
import androidx.core.util.forEach
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -57,24 +58,30 @@ class TreatmentsCareportalFragment : DaggerFragment() {
@Inject lateinit var repository: AppRepository @Inject lateinit var repository: AppRepository
@Inject lateinit var uel: UserEntryLogger @Inject lateinit var uel: UserEntryLogger
private val disposable = CompositeDisposable()
private val millsToThePast = T.days(30).msecs()
private var _binding: TreatmentsCareportalFragmentBinding? = null private var _binding: TreatmentsCareportalFragmentBinding? = null
// This property is only valid between onCreateView and onDestroyView.
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!! private val binding get() = _binding!!
private val disposable = CompositeDisposable()
private val millsToThePast = T.days(30).msecs()
private var selectedItems: SparseArray<TherapyEvent> = SparseArray()
private var showInvalidated = false
private var toolbar: Toolbar? = null
private var removeActionMode: ActionMode? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
TreatmentsCareportalFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root TreatmentsCareportalFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
toolbar = activity?.findViewById(R.id.toolbar)
setHasOptionsMenu(true)
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
binding.refreshFromNightscout.setOnClickListener { }
private fun refreshFromNightscout() {
activity?.let { activity -> activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.careportal), rh.gs(R.string.refresheventsfromnightscout) + " ?", Runnable { OKDialog.showConfirmation(activity, rh.gs(R.string.careportal), rh.gs(R.string.refresheventsfromnightscout) + " ?", Runnable {
uel.log(Action.CAREPORTAL_NS_REFRESH, Sources.Treatments) uel.log(Action.CAREPORTAL_NS_REFRESH, Sources.Treatments)
@ -88,30 +95,24 @@ class TreatmentsCareportalFragment : DaggerFragment() {
}) })
} }
} }
binding.removeAndroidapsStartedEvents.setOnClickListener {
private fun removeStartedEvents() {
activity?.let { activity -> activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.careportal), rh.gs(R.string.careportal_removestartedevents), Runnable { OKDialog.showConfirmation(activity, rh.gs(R.string.careportal), rh.gs(R.string.careportal_removestartedevents), Runnable {
uel.log(Action.RESTART_EVENTS_REMOVED, Sources.Treatments) uel.log(Action.RESTART_EVENTS_REMOVED, Sources.Treatments)
repository.runTransactionForResult(InvalidateAAPSStartedTherapyEventTransaction(rh.gs(R.string.androidaps_start))) disposable += repository.runTransactionForResult(InvalidateAAPSStartedTherapyEventTransaction(rh.gs(R.string.androidaps_start)))
.subscribe( .subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated therapy event $it") } }, { result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated therapy event $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating therapy event", it) } { aapsLogger.error(LTag.DATABASE, "Error while invalidating therapy event", it) }
) )
}, null) })
}
}
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_therapy_events, false) || !buildHelper.isEngineeringMode()
if (nsUploadOnly) binding.refreshFromNightscout.visibility = View.GONE
binding.showInvalidated.setOnCheckedChangeListener { _, _ ->
rxBus.send(EventTreatmentUpdateGui())
} }
} }
fun swapAdapter() { fun swapAdapter() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
disposable += disposable +=
if (binding.showInvalidated.isChecked) if (showInvalidated)
repository repository
.getTherapyEventDataIncludingInvalidFromTime(now - millsToThePast, false) .getTherapyEventDataIncludingInvalidFromTime(now - millsToThePast, false)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
@ -148,6 +149,7 @@ class TreatmentsCareportalFragment : DaggerFragment() {
@Synchronized @Synchronized
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
removeActionMode?.let { it.finish() }
binding.recyclerview.adapter = null // avoid leaks binding.recyclerview.adapter = null // avoid leaks
_binding = null _binding = null
} }
@ -170,42 +172,137 @@ class TreatmentsCareportalFragment : DaggerFragment() {
holder.binding.duration.text = if (therapyEvent.duration == 0L) "" else dateUtil.niceTimeScalar(therapyEvent.duration, rh) holder.binding.duration.text = if (therapyEvent.duration == 0L) "" else dateUtil.niceTimeScalar(therapyEvent.duration, rh)
holder.binding.note.text = therapyEvent.note holder.binding.note.text = therapyEvent.note
holder.binding.type.text = translator.translate(therapyEvent.type) holder.binding.type.text = translator.translate(therapyEvent.type)
holder.binding.remove.tag = therapyEvent holder.binding.cbRemove.visibility = (therapyEvent.isValid && removeActionMode != null).toVisibility()
if (removeActionMode != null) {
holder.binding.cbRemove.setOnCheckedChangeListener { _, value ->
if (value) {
selectedItems.put(position, therapyEvent)
} else {
selectedItems.remove(position)
}
removeActionMode?.title = rh.gs(R.string.count_selected, selectedItems.size())
}
holder.binding.cbRemove.isChecked = selectedItems.get(position) != null
}
val nextTimestamp = if (therapyList.size != position + 1) therapyList[position + 1].timestamp else 0L val nextTimestamp = if (therapyList.size != position + 1) therapyList[position + 1].timestamp else 0L
holder.binding.delimiter.visibility = dateUtil.isSameDay(therapyEvent.timestamp, nextTimestamp).toVisibility() holder.binding.delimiter.visibility = dateUtil.isSameDay(therapyEvent.timestamp, nextTimestamp).toVisibility()
} }
override fun getItemCount(): Int { override fun getItemCount() = therapyList.size
return therapyList.size
}
inner class TherapyEventsViewHolder(view: View) : RecyclerView.ViewHolder(view) { inner class TherapyEventsViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val binding = TreatmentsCareportalItemBinding.bind(view) val binding = TreatmentsCareportalItemBinding.bind(view)
}
init { }
binding.remove.setOnClickListener { v: View ->
val therapyEvent = v.tag as TherapyEvent override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
activity?.let { activity -> inflater.inflate(R.menu.menu_treatments_careportal, menu)
val text = rh.gs(R.string.eventtype) + ": " + translator.translate(therapyEvent.type) + "\n" + super.onCreateOptionsMenu(menu, inflater)
rh.gs(R.string.notes_label) + ": " + (therapyEvent.note }
?: "") + "\n" +
override fun onPrepareOptionsMenu(menu: Menu) {
menu.findItem(R.id.nav_hide_invalidated)?.isVisible = showInvalidated
menu.findItem(R.id.nav_show_invalidated)?.isVisible = !showInvalidated
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_therapy_events, false) || !buildHelper.isEngineeringMode()
menu.findItem(R.id.nav_refresh_ns)?.isVisible = !nsUploadOnly
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean =
when (item.itemId) {
R.id.nav_remove_items -> {
removeActionMode = toolbar?.startActionMode(RemoveActionModeCallback())
true
}
R.id.nav_show_invalidated -> {
showInvalidated = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_invalidated -> {
showInvalidated = false
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_remove_started_events -> {
removeStartedEvents()
true
}
R.id.nav_refresh_ns -> {
refreshFromNightscout()
true
}
else -> false
}
inner class RemoveActionModeCallback : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode, menu: Menu?): Boolean {
mode.menuInflater.inflate(R.menu.menu_delete_selection, menu)
selectedItems.clear()
mode.title = rh.gs(R.string.count_selected, selectedItems.size())
binding.recyclerview.adapter?.notifyDataSetChanged()
return true
}
override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?) = false
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
return when (item.itemId) {
R.id.remove_selected -> {
removeSelected()
true
}
else -> false
}
}
override fun onDestroyActionMode(mode: ActionMode?) {
removeActionMode = null
binding.recyclerview.adapter?.notifyDataSetChanged()
}
}
private fun getConfirmationText(): String {
if (selectedItems.size() == 1) {
val therapyEvent = selectedItems.valueAt(0)
return rh.gs(R.string.eventtype) + ": " + translator.translate(therapyEvent.type) + "\n" +
rh.gs(R.string.notes_label) + ": " + (therapyEvent.note ?: "") + "\n" +
rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(therapyEvent.timestamp) rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(therapyEvent.timestamp)
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), text, Runnable { }
uel.log(Action.CAREPORTAL_REMOVED, Sources.Treatments, therapyEvent.note , return rh.gs(R.string.confirm_remove_multiple_items, selectedItems.size())
}
private fun removeSelected() {
if (selectedItems.size() > 0)
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), getConfirmationText(), Runnable {
selectedItems.forEach { _, therapyEvent ->
uel.log(
Action.CAREPORTAL_REMOVED, Sources.Treatments, therapyEvent.note,
ValueWithUnit.Timestamp(therapyEvent.timestamp), ValueWithUnit.Timestamp(therapyEvent.timestamp),
ValueWithUnit.TherapyEventType(therapyEvent.type)) ValueWithUnit.TherapyEventType(therapyEvent.type)
)
disposable += repository.runTransactionForResult(InvalidateTherapyEventTransaction(therapyEvent.id)) disposable += repository.runTransactionForResult(InvalidateTherapyEventTransaction(therapyEvent.id))
.subscribe( .subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated therapy event $it") } }, { result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated therapy event $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating therapy event", it) } { aapsLogger.error(LTag.DATABASE, "Error while invalidating therapy event", it) }
) )
}, null)
} }
removeActionMode?.finish()
})
} }
binding.remove.paintFlags = binding.remove.paintFlags or Paint.UNDERLINE_TEXT_FLAG else
} removeActionMode?.finish()
} }
}
} }

View file

@ -1,12 +1,12 @@
package info.nightscout.androidaps.activities.fragments package info.nightscout.androidaps.activities.fragments
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.DialogInterface
import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.util.SparseArray
import android.view.View import android.view.*
import android.view.ViewGroup import android.view.ActionMode
import androidx.appcompat.widget.Toolbar
import androidx.core.util.forEach
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -27,16 +27,17 @@ import info.nightscout.androidaps.extensions.toVisibility
import info.nightscout.androidaps.interfaces.ActivePlugin import info.nightscout.androidaps.interfaces.ActivePlugin
import info.nightscout.androidaps.interfaces.ProfileFunction import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.AAPSLogger
import info.nightscout.shared.logging.LTag
import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.logging.UserEntryLogger
import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.activities.fragments.TreatmentsExtendedBolusesFragment.RecyclerViewAdapter.ExtendedBolusesViewHolder import info.nightscout.androidaps.activities.fragments.TreatmentsExtendedBolusesFragment.RecyclerViewAdapter.ExtendedBolusesViewHolder
import info.nightscout.androidaps.events.EventTreatmentUpdateGui
import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.FabricPrivacy import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.T import info.nightscout.androidaps.utils.T
import info.nightscout.androidaps.utils.alertDialogs.OKDialog import info.nightscout.androidaps.utils.alertDialogs.OKDialog
import info.nightscout.androidaps.utils.resources.ResourceHelper import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.androidaps.utils.rx.AapsSchedulers
import info.nightscout.shared.logging.LTag
import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.CompositeDisposable
import io.reactivex.rxkotlin.plusAssign import io.reactivex.rxkotlin.plusAssign
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
@ -60,23 +61,27 @@ class TreatmentsExtendedBolusesFragment : DaggerFragment() {
@Inject lateinit var repository: AppRepository @Inject lateinit var repository: AppRepository
private var _binding: TreatmentsExtendedbolusFragmentBinding? = null private var _binding: TreatmentsExtendedbolusFragmentBinding? = null
// This property is only valid between onCreateView and onDestroyView.
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!! private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, private var selectedItems: SparseArray<ExtendedBolus> = SparseArray()
savedInstanceState: Bundle?): View = private var showInvalidated = false
private var removeActionMode: ActionMode? = null
private var toolbar: Toolbar? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
TreatmentsExtendedbolusFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root TreatmentsExtendedbolusFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
setHasOptionsMenu(true)
toolbar = activity?.findViewById(R.id.toolbar)
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
} }
fun swapAdapter() { fun swapAdapter() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
if (binding.showInvalidated.isChecked) disposable += if (showInvalidated)
repository repository
.getExtendedBolusDataIncludingInvalidFromTime(now - millsToThePast, false) .getExtendedBolusDataIncludingInvalidFromTime(now - millsToThePast, false)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
@ -109,6 +114,7 @@ class TreatmentsExtendedBolusesFragment : DaggerFragment() {
@Synchronized @Synchronized
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
removeActionMode?.let { it.finish() }
binding.recyclerview.adapter = null // avoid leaks binding.recyclerview.adapter = null // avoid leaks
_binding = null _binding = null
} }
@ -125,7 +131,7 @@ class TreatmentsExtendedBolusesFragment : DaggerFragment() {
holder.binding.ns.visibility = (extendedBolus.interfaceIDs.nightscoutId != null).toVisibility() holder.binding.ns.visibility = (extendedBolus.interfaceIDs.nightscoutId != null).toVisibility()
holder.binding.ph.visibility = (extendedBolus.interfaceIDs.pumpId != null).toVisibility() holder.binding.ph.visibility = (extendedBolus.interfaceIDs.pumpId != null).toVisibility()
holder.binding.invalid.visibility = extendedBolus.isValid.not().toVisibility() holder.binding.invalid.visibility = extendedBolus.isValid.not().toVisibility()
val sameDayPrevious = position > 0 && dateUtil.isSameDay(extendedBolus.timestamp, extendedBolusList[position-1].timestamp) val sameDayPrevious = position > 0 && dateUtil.isSameDay(extendedBolus.timestamp, extendedBolusList[position - 1].timestamp)
holder.binding.date.visibility = sameDayPrevious.not().toVisibility() holder.binding.date.visibility = sameDayPrevious.not().toVisibility()
holder.binding.date.text = dateUtil.dateString(extendedBolus.timestamp) holder.binding.date.text = dateUtil.dateString(extendedBolus.timestamp)
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
@ -143,41 +149,125 @@ class TreatmentsExtendedBolusesFragment : DaggerFragment() {
holder.binding.iob.text = rh.gs(R.string.formatinsulinunits, iob.iob) holder.binding.iob.text = rh.gs(R.string.formatinsulinunits, iob.iob)
holder.binding.ratio.text = rh.gs(R.string.pump_basebasalrate, extendedBolus.rate) holder.binding.ratio.text = rh.gs(R.string.pump_basebasalrate, extendedBolus.rate)
if (iob.iob != 0.0) holder.binding.iob.setTextColor(rh.gc(R.color.colorActive)) else holder.binding.iob.setTextColor(holder.binding.insulin.currentTextColor) if (iob.iob != 0.0) holder.binding.iob.setTextColor(rh.gc(R.color.colorActive)) else holder.binding.iob.setTextColor(holder.binding.insulin.currentTextColor)
holder.binding.remove.tag = extendedBolus holder.binding.cbRemove.visibility = (extendedBolus.isValid && removeActionMode != null).toVisibility()
if (removeActionMode != null) {
holder.binding.cbRemove.setOnCheckedChangeListener { _, value ->
if (value) {
selectedItems.put(position, extendedBolus)
} else {
selectedItems.remove(position)
}
removeActionMode?.title = rh.gs(R.string.count_selected, selectedItems.size())
}
holder.binding.cbRemove.isChecked = selectedItems.get(position) != null
}
val nextTimestamp = if (extendedBolusList.size != position + 1) extendedBolusList[position + 1].timestamp else 0L val nextTimestamp = if (extendedBolusList.size != position + 1) extendedBolusList[position + 1].timestamp else 0L
holder.binding.delimiter.visibility = dateUtil.isSameDay(extendedBolus.timestamp, nextTimestamp).toVisibility() holder.binding.delimiter.visibility = dateUtil.isSameDay(extendedBolus.timestamp, nextTimestamp).toVisibility()
} }
override fun getItemCount(): Int = extendedBolusList.size override fun getItemCount() = extendedBolusList.size
inner class ExtendedBolusesViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class ExtendedBolusesViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val binding = TreatmentsExtendedbolusItemBinding.bind(itemView) val binding = TreatmentsExtendedbolusItemBinding.bind(itemView)
}
init { }
binding.remove.setOnClickListener { v: View ->
val extendedBolus = v.tag as ExtendedBolus override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
context?.let { context -> inflater.inflate(R.menu.menu_treatments_extended_bolus, menu)
OKDialog.showConfirmation(context, rh.gs(R.string.removerecord), super.onCreateOptionsMenu(menu, inflater)
""" }
${rh.gs(R.string.extended_bolus)}
${rh.gs(R.string.date)}: ${dateUtil.dateAndTimeString(extendedBolus.timestamp)} override fun onPrepareOptionsMenu(menu: Menu) {
""".trimIndent(), { _: DialogInterface, _: Int -> menu.findItem(R.id.nav_hide_invalidated)?.isVisible = showInvalidated
uel.log(Action.EXTENDED_BOLUS_REMOVED, Sources.Treatments, menu.findItem(R.id.nav_show_invalidated)?.isVisible = !showInvalidated
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.nav_remove_items -> {
removeActionMode = toolbar?.startActionMode(RemoveActionModeCallback())
true
}
R.id.nav_show_invalidated -> {
showInvalidated = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_invalidated -> {
showInvalidated = false
rxBus.send(EventTreatmentUpdateGui())
true
}
else -> false
}
}
inner class RemoveActionModeCallback : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode, menu: Menu?): Boolean {
mode.menuInflater.inflate(R.menu.menu_delete_selection, menu)
selectedItems.clear()
mode.title = rh.gs(R.string.count_selected, selectedItems.size())
binding.recyclerview.adapter?.notifyDataSetChanged()
return true
}
override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?) = false
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
return when (item.itemId) {
R.id.remove_selected -> {
removeSelected()
true
}
else -> false
}
}
override fun onDestroyActionMode(mode: ActionMode?) {
removeActionMode = null
binding.recyclerview.adapter?.notifyDataSetChanged()
}
}
private fun getConfirmationText(): String {
if (selectedItems.size() == 1) {
val bolus = selectedItems.valueAt(0)
return rh.gs(R.string.extended_bolus) + "\n" +
"${rh.gs(R.string.date)}: ${dateUtil.dateAndTimeString(bolus.timestamp)}"
}
return rh.gs(R.string.confirm_remove_multiple_items, selectedItems.size())
}
private fun removeSelected() {
if (selectedItems.size() > 0)
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), getConfirmationText(), Runnable {
selectedItems.forEach { _, extendedBolus ->
uel.log(
Action.EXTENDED_BOLUS_REMOVED, Sources.Treatments,
ValueWithUnit.Timestamp(extendedBolus.timestamp), ValueWithUnit.Timestamp(extendedBolus.timestamp),
ValueWithUnit.Insulin(extendedBolus.amount), ValueWithUnit.Insulin(extendedBolus.amount),
ValueWithUnit.UnitPerHour(extendedBolus.rate), ValueWithUnit.UnitPerHour(extendedBolus.rate),
ValueWithUnit.Minute(TimeUnit.MILLISECONDS.toMinutes(extendedBolus.duration).toInt())) ValueWithUnit.Minute(TimeUnit.MILLISECONDS.toMinutes(extendedBolus.duration).toInt())
)
disposable += repository.runTransactionForResult(InvalidateExtendedBolusTransaction(extendedBolus.id)) disposable += repository.runTransactionForResult(InvalidateExtendedBolusTransaction(extendedBolus.id))
.subscribe( .subscribe(
{ aapsLogger.debug(LTag.DATABASE, "Removed extended bolus $extendedBolus") }, { aapsLogger.debug(LTag.DATABASE, "Removed extended bolus $extendedBolus") },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating extended bolus", it) }) { aapsLogger.error(LTag.DATABASE, "Error while invalidating extended bolus", it) })
}, null)
} }
removeActionMode?.finish()
})
} }
binding.remove.paintFlags = binding.remove.paintFlags or Paint.UNDERLINE_TEXT_FLAG else
} removeActionMode?.finish()
}
} }
} }

View file

@ -2,9 +2,11 @@ package info.nightscout.androidaps.activities.fragments
import android.graphics.Paint import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.util.SparseArray
import android.view.View import android.view.*
import android.view.ViewGroup import android.view.ActionMode
import androidx.appcompat.widget.Toolbar
import androidx.core.util.forEach
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -61,24 +63,29 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
@Inject lateinit var uel: UserEntryLogger @Inject lateinit var uel: UserEntryLogger
private var _binding: TreatmentsProfileswitchFragmentBinding? = null private var _binding: TreatmentsProfileswitchFragmentBinding? = null
// This property is only valid between onCreateView and onDestroyView.
private val binding get() = _binding!!
private val disposable = CompositeDisposable() private val disposable = CompositeDisposable()
private val millsToThePast = T.days(30).msecs() private val millsToThePast = T.days(30).msecs()
private var selectedItems: SparseArray<ProfileSealed> = SparseArray()
private var showInvalidated = false
private var removeActionMode: ActionMode? = null
private var toolbar: Toolbar? = null
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
TreatmentsProfileswitchFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root TreatmentsProfileswitchFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
setHasOptionsMenu(true)
toolbar = activity?.findViewById(R.id.toolbar)
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
}
binding.refreshFromNightscout.setOnClickListener { private fun refreshFromNightscout() {
activity?.let { activity -> activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.refresheventsfromnightscout) + "?") { OKDialog.showConfirmation(activity, rh.gs(R.string.refresheventsfromnightscout) + "?") {
uel.log(Action.TREATMENTS_NS_REFRESH, Sources.Treatments) uel.log(Action.TREATMENTS_NS_REFRESH, Sources.Treatments)
@ -101,11 +108,6 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
} }
} }
} }
if (!sp.getBoolean(R.string.key_ns_receive_profile_switch, false) || !buildHelper.isEngineeringMode()) binding.refreshFromNightscout.visibility = View.GONE
binding.showInvalidated.setOnCheckedChangeListener { _, _ ->
rxBus.send(EventTreatmentUpdateGui())
}
}
private fun profileSwitchWithInvalid(now: Long) = repository private fun profileSwitchWithInvalid(now: Long) = repository
.getProfileSwitchDataIncludingInvalidFromTime(now - millsToThePast, false) .getProfileSwitchDataIncludingInvalidFromTime(now - millsToThePast, false)
@ -126,8 +128,9 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
fun swapAdapter() { fun swapAdapter() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
if (binding.showInvalidated.isChecked) disposable +=
disposable += profileSwitchWithInvalid(now) if (showInvalidated)
profileSwitchWithInvalid(now)
.zipWith(effectiveProfileSwitchWithInvalid(now)) { first, second -> first + second } .zipWith(effectiveProfileSwitchWithInvalid(now)) { first, second -> first + second }
.map { ml -> ml.sortedByDescending { it.timestamp } } .map { ml -> ml.sortedByDescending { it.timestamp } }
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
@ -135,14 +138,13 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
binding.recyclerview.swapAdapter(RecyclerProfileViewAdapter(list), true) binding.recyclerview.swapAdapter(RecyclerProfileViewAdapter(list), true)
} }
else else
disposable += profileSwitches(now) profileSwitches(now)
.zipWith(effectiveProfileSwitches(now)) { first, second -> first + second } .zipWith(effectiveProfileSwitches(now)) { first, second -> first + second }
.map { ml -> ml.sortedByDescending { it.timestamp } } .map { ml -> ml.sortedByDescending { it.timestamp } }
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> .subscribe { list ->
binding.recyclerview.swapAdapter(RecyclerProfileViewAdapter(list), true) binding.recyclerview.swapAdapter(RecyclerProfileViewAdapter(list), true)
} }
} }
@Synchronized @Synchronized
@ -168,6 +170,7 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
@Synchronized @Synchronized
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
removeActionMode?.finish()
binding.recyclerview.adapter = null // avoid leaks binding.recyclerview.adapter = null // avoid leaks
_binding = null _binding = null
} }
@ -190,46 +193,36 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
if (profileSwitch is ProfileSealed.PS) profileSwitch.value.getCustomizedName() else if (profileSwitch is ProfileSealed.EPS) profileSwitch.value.originalCustomizedName else "" if (profileSwitch is ProfileSealed.PS) profileSwitch.value.getCustomizedName() else if (profileSwitch is ProfileSealed.EPS) profileSwitch.value.originalCustomizedName else ""
if (profileSwitch.isInProgress(dateUtil)) holder.binding.date.setTextColor(rh.gc(R.color.colorActive)) if (profileSwitch.isInProgress(dateUtil)) holder.binding.date.setTextColor(rh.gc(R.color.colorActive))
else holder.binding.date.setTextColor(holder.binding.duration.currentTextColor) else holder.binding.date.setTextColor(holder.binding.duration.currentTextColor)
holder.binding.remove.tag = profileSwitch
holder.binding.clone.tag = profileSwitch holder.binding.clone.tag = profileSwitch
holder.binding.name.tag = profileSwitch holder.binding.name.tag = profileSwitch
holder.binding.date.tag = profileSwitch holder.binding.date.tag = profileSwitch
holder.binding.invalid.visibility = profileSwitch.isValid.not().toVisibility() holder.binding.invalid.visibility = profileSwitch.isValid.not().toVisibility()
holder.binding.duration.visibility = (profileSwitch.duration != 0L && profileSwitch.duration != null).toVisibility() holder.binding.duration.visibility = (profileSwitch.duration != 0L && profileSwitch.duration != null).toVisibility()
holder.binding.remove.visibility = (profileSwitch is ProfileSealed.PS).toVisibility() holder.binding.cbRemove.visibility = (removeActionMode != null && profileSwitch is ProfileSealed.PS).toVisibility()
if (removeActionMode != null) {
holder.binding.cbRemove.setOnCheckedChangeListener { _, value ->
if (value) {
selectedItems.put(position, profileSwitch)
} else {
selectedItems.remove(position)
}
removeActionMode?.title = rh.gs(R.string.count_selected, selectedItems.size())
}
holder.binding.cbRemove.isChecked = selectedItems.get(position) != null
}
holder.binding.clone.visibility = (profileSwitch is ProfileSealed.PS).toVisibility() holder.binding.clone.visibility = (profileSwitch is ProfileSealed.PS).toVisibility()
holder.binding.spacer.visibility = (profileSwitch is ProfileSealed.PS).toVisibility() holder.binding.spacer.visibility = (profileSwitch is ProfileSealed.PS).toVisibility()
val nextTimestamp = if (profileSwitchList.size != position + 1) profileSwitchList[position + 1].timestamp else 0L val nextTimestamp = if (profileSwitchList.size != position + 1) profileSwitchList[position + 1].timestamp else 0L
holder.binding.delimiter.visibility = dateUtil.isSameDay(profileSwitch.timestamp, nextTimestamp).toVisibility() holder.binding.delimiter.visibility = dateUtil.isSameDay(profileSwitch.timestamp, nextTimestamp).toVisibility()
} }
override fun getItemCount(): Int { override fun getItemCount() = profileSwitchList.size
return profileSwitchList.size
}
inner class ProfileSwitchViewHolder internal constructor(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class ProfileSwitchViewHolder internal constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {
val binding = TreatmentsProfileswitchItemBinding.bind(itemView) val binding = TreatmentsProfileswitchItemBinding.bind(itemView)
init { init {
binding.remove.setOnClickListener { view ->
val profileSwitch = view.tag as ProfileSealed.PS
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord),
rh.gs(R.string.careportal_profileswitch) + ": " + profileSwitch.profileName +
"\n" + rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(profileSwitch.timestamp), Runnable {
uel.log(
Action.PROFILE_SWITCH_REMOVED, Sources.Treatments, profileSwitch.profileName,
ValueWithUnit.Timestamp(profileSwitch.timestamp)
)
disposable += repository.runTransactionForResult(InvalidateProfileSwitchTransaction(profileSwitch.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated ProfileSwitch $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating ProfileSwitch", it) }
)
})
}
}
binding.clone.setOnClickListener { binding.clone.setOnClickListener {
activity?.let { activity -> activity?.let { activity ->
val profileSwitch = (it.tag as ProfileSealed.PS).value val profileSwitch = (it.tag as ProfileSealed.PS).value
@ -256,7 +249,6 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
}) })
} }
} }
binding.remove.paintFlags = binding.remove.paintFlags or Paint.UNDERLINE_TEXT_FLAG
binding.clone.paintFlags = binding.clone.paintFlags or Paint.UNDERLINE_TEXT_FLAG binding.clone.paintFlags = binding.clone.paintFlags or Paint.UNDERLINE_TEXT_FLAG
binding.name.setOnClickListener { binding.name.setOnClickListener {
ProfileViewerDialog().also { pvd -> ProfileViewerDialog().also { pvd ->
@ -279,4 +271,104 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
} }
} }
} }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_treatments_profile_switch, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onPrepareOptionsMenu(menu: Menu) {
menu.findItem(R.id.nav_hide_invalidated)?.isVisible = showInvalidated
menu.findItem(R.id.nav_show_invalidated)?.isVisible = !showInvalidated
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_profile_switch, false) || !buildHelper.isEngineeringMode()
menu.findItem(R.id.nav_refresh_ns)?.isVisible = !nsUploadOnly
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean =
when (item.itemId) {
R.id.nav_remove_items -> {
removeActionMode = toolbar?.startActionMode(RemoveActionModeCallback())
true
}
R.id.nav_show_invalidated -> {
showInvalidated = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_invalidated -> {
showInvalidated = false
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_refresh_ns -> {
refreshFromNightscout()
true
}
else -> false
}
inner class RemoveActionModeCallback : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode, menu: Menu?): Boolean {
mode.menuInflater.inflate(R.menu.menu_delete_selection, menu)
selectedItems.clear()
mode.title = rh.gs(R.string.count_selected, selectedItems.size())
binding.recyclerview.adapter?.notifyDataSetChanged()
return true
}
override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?) = false
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
return when (item.itemId) {
R.id.remove_selected -> {
removeSelected()
true
}
else -> false
}
}
override fun onDestroyActionMode(mode: ActionMode?) {
removeActionMode = null
binding.recyclerview.adapter?.notifyDataSetChanged()
}
}
private fun getConfirmationText(): String {
if (selectedItems.size() == 1) {
val profileSwitch = selectedItems.valueAt(0)
return rh.gs(R.string.careportal_profileswitch) + ": " + profileSwitch.profileName + "\n" + rh.gs(R.string.date) + ": " + dateUtil.dateAndTimeString(profileSwitch.timestamp)
}
return rh.gs(R.string.confirm_remove_multiple_items, selectedItems.size())
}
private fun removeSelected() {
if (selectedItems.size() > 0)
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), getConfirmationText(), Runnable {
selectedItems.forEach { _, profileSwitch ->
uel.log(
Action.PROFILE_SWITCH_REMOVED, Sources.Treatments, profileSwitch.profileName,
ValueWithUnit.Timestamp(profileSwitch.timestamp)
)
disposable += repository.runTransactionForResult(InvalidateProfileSwitchTransaction(profileSwitch.id))
.subscribe(
{ result -> result.invalidated.forEach { aapsLogger.debug(LTag.DATABASE, "Invalidated ProfileSwitch $it") } },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating ProfileSwitch", it) }
)
}
removeActionMode?.finish()
})
}
else
removeActionMode?.finish()
}
} }

View file

@ -1,12 +1,11 @@
package info.nightscout.androidaps.activities.fragments package info.nightscout.androidaps.activities.fragments
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.DialogInterface
import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.util.SparseArray
import android.view.View import android.view.*
import android.view.ViewGroup import androidx.appcompat.widget.Toolbar
import androidx.core.util.forEach
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -30,6 +29,8 @@ import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientRestart import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientRestart
import info.nightscout.androidaps.events.EventTreatmentUpdateGui import info.nightscout.androidaps.events.EventTreatmentUpdateGui
import info.nightscout.androidaps.activities.fragments.TreatmentsTempTargetFragment.RecyclerViewAdapter.TempTargetsViewHolder import info.nightscout.androidaps.activities.fragments.TreatmentsTempTargetFragment.RecyclerViewAdapter.TempTargetsViewHolder
import info.nightscout.androidaps.events.EventEffectiveProfileSwitchChanged
import info.nightscout.androidaps.events.EventProfileSwitchChanged
import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.FabricPrivacy import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.T import info.nightscout.androidaps.utils.T
@ -40,6 +41,7 @@ import info.nightscout.androidaps.extensions.friendlyDescription
import info.nightscout.androidaps.extensions.highValueToUnitsToString import info.nightscout.androidaps.extensions.highValueToUnitsToString
import info.nightscout.androidaps.extensions.lowValueToUnitsToString import info.nightscout.androidaps.extensions.lowValueToUnitsToString
import info.nightscout.androidaps.extensions.toVisibility import info.nightscout.androidaps.extensions.toVisibility
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventNewHistoryData
import info.nightscout.androidaps.utils.resources.ResourceHelper import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.androidaps.utils.rx.AapsSchedulers
import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.sharedPreferences.SP
@ -65,48 +67,55 @@ class TreatmentsTempTargetFragment : DaggerFragment() {
@Inject lateinit var uel: UserEntryLogger @Inject lateinit var uel: UserEntryLogger
@Inject lateinit var repository: AppRepository @Inject lateinit var repository: AppRepository
private val disposable = CompositeDisposable()
private val millsToThePast = T.days(30).msecs()
private var _binding: TreatmentsTemptargetFragmentBinding? = null private var _binding: TreatmentsTemptargetFragmentBinding? = null
// This property is only valid between onCreateView and onDestroyView.
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!! private val binding get() = _binding!!
private val disposable = CompositeDisposable()
private val millsToThePast = T.days(30).msecs()
private var selectedItems: SparseArray<TemporaryTarget> = SparseArray()
private var showInvalidated = false
private var toolbar: Toolbar? = null
private var removeActionMode: ActionMode? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
TreatmentsTemptargetFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root TreatmentsTemptargetFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
toolbar = activity?.findViewById(R.id.toolbar)
setHasOptionsMenu(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
binding.refreshFromNightscout.setOnClickListener { }
context?.let { context ->
OKDialog.showConfirmation(context, rh.gs(R.string.refresheventsfromnightscout) + " ?", { private fun refreshFromNightscout() {
uel.log(Action.TT_NS_REFRESH, Sources.Treatments) activity?.let { activity ->
disposable += Completable.fromAction { repository.deleteAllTempTargetEntries() } OKDialog.showConfirmation(activity, rh.gs(R.string.refresheventsfromnightscout) + "?") {
uel.log(Action.TREATMENTS_NS_REFRESH, Sources.Treatments)
disposable +=
Completable.fromAction {
repository.deleteAllEffectiveProfileSwitches()
repository.deleteAllProfileSwitches()
}
.subscribeOn(aapsSchedulers.io) .subscribeOn(aapsSchedulers.io)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribeBy( .subscribeBy(
onError = { aapsLogger.error("Error removing entries", it) }, onError = { aapsLogger.error("Error removing entries", it) },
onComplete = { rxBus.send(EventTempTargetChange()) } onComplete = {
rxBus.send(EventProfileSwitchChanged())
rxBus.send(EventEffectiveProfileSwitchChanged(0L))
rxBus.send(EventNewHistoryData(0, false))
}
) )
rxBus.send(EventNSClientRestart()) rxBus.send(EventNSClientRestart())
})
} }
} }
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_temp_target, false) || !buildHelper.isEngineeringMode()
if (nsUploadOnly) binding.refreshFromNightscout.visibility = View.INVISIBLE
binding.showInvalidated.setOnCheckedChangeListener { _, _ ->
rxBus.send(EventTreatmentUpdateGui())
}
} }
fun swapAdapter() { fun swapAdapter() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
if (binding.showInvalidated.isChecked) disposable +=
if (showInvalidated)
repository repository
.getTemporaryTargetDataIncludingInvalidFromTime(now - millsToThePast, false) .getTemporaryTargetDataIncludingInvalidFromTime(now - millsToThePast, false)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
@ -145,6 +154,7 @@ class TreatmentsTempTargetFragment : DaggerFragment() {
@Synchronized @Synchronized
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
removeActionMode?.let { it.finish() }
binding.recyclerview.adapter = null // avoid leaks binding.recyclerview.adapter = null // avoid leaks
_binding = null _binding = null
} }
@ -163,8 +173,19 @@ class TreatmentsTempTargetFragment : DaggerFragment() {
val tempTarget = tempTargetList[position] val tempTarget = tempTargetList[position]
holder.binding.ns.visibility = (tempTarget.interfaceIDs.nightscoutId != null).toVisibility() holder.binding.ns.visibility = (tempTarget.interfaceIDs.nightscoutId != null).toVisibility()
holder.binding.invalid.visibility = tempTarget.isValid.not().toVisibility() holder.binding.invalid.visibility = tempTarget.isValid.not().toVisibility()
holder.binding.remove.visibility = tempTarget.isValid.toVisibility() holder.binding.cbRemove.visibility = (tempTarget.isValid && removeActionMode != null).toVisibility()
val sameDayPrevious = position > 0 && dateUtil.isSameDay(tempTarget.timestamp, tempTargetList[position-1].timestamp) if (removeActionMode != null) {
holder.binding.cbRemove.setOnCheckedChangeListener { _, value ->
if (value) {
selectedItems.put(position, tempTarget)
} else {
selectedItems.remove(position)
}
removeActionMode?.title = rh.gs(R.string.count_selected, selectedItems.size())
}
holder.binding.cbRemove.isChecked = selectedItems.get(position) != null
}
val sameDayPrevious = position > 0 && dateUtil.isSameDay(tempTarget.timestamp, tempTargetList[position - 1].timestamp)
holder.binding.date.visibility = sameDayPrevious.not().toVisibility() holder.binding.date.visibility = sameDayPrevious.not().toVisibility()
holder.binding.date.text = dateUtil.dateString(tempTarget.timestamp) holder.binding.date.text = dateUtil.dateString(tempTarget.timestamp)
holder.binding.time.text = dateUtil.timeRangeString(tempTarget.timestamp, tempTarget.end) holder.binding.time.text = dateUtil.timeRangeString(tempTarget.timestamp, tempTarget.end)
@ -177,43 +198,123 @@ class TreatmentsTempTargetFragment : DaggerFragment() {
tempTarget.id == currentlyActiveTarget?.id -> rh.gc(R.color.colorActive) tempTarget.id == currentlyActiveTarget?.id -> rh.gc(R.color.colorActive)
tempTarget.timestamp > dateUtil.now() -> rh.gc(R.color.colorScheduled) tempTarget.timestamp > dateUtil.now() -> rh.gc(R.color.colorScheduled)
else -> holder.binding.reasonColon.currentTextColor else -> holder.binding.reasonColon.currentTextColor
}) }
holder.binding.remove.tag = tempTarget )
val nextTimestamp = if (tempTargetList.size != position + 1) tempTargetList[position + 1].timestamp else 0L val nextTimestamp = if (tempTargetList.size != position + 1) tempTargetList[position + 1].timestamp else 0L
holder.binding.delimiter.visibility = dateUtil.isSameDay(tempTarget.timestamp, nextTimestamp).toVisibility() holder.binding.delimiter.visibility = dateUtil.isSameDay(tempTarget.timestamp, nextTimestamp).toVisibility()
} }
override fun getItemCount(): Int = tempTargetList.size override fun getItemCount() = tempTargetList.size
inner class TempTargetsViewHolder(view: View) : RecyclerView.ViewHolder(view) { inner class TempTargetsViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val binding = TreatmentsTemptargetItemBinding.bind(view) val binding = TreatmentsTemptargetItemBinding.bind(view)
init { }
binding.remove.setOnClickListener { v: View -> }
val tempTarget = v.tag as TemporaryTarget
context?.let { context -> private fun removeSelected() {
OKDialog.showConfirmation(context, rh.gs(R.string.removerecord), if (selectedItems.size() > 0)
""" activity?.let { activity ->
${rh.gs(R.string.careportal_temporarytarget)}: ${tempTarget.friendlyDescription(profileFunction.getUnits(), rh)} OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), getConfirmationText(), Runnable {
${dateUtil.dateAndTimeString(tempTarget.timestamp)} selectedItems.forEach { _, tempTarget ->
""".trimIndent(), uel.log(
{ _: DialogInterface?, _: Int -> Action.TT_REMOVED, Sources.Treatments,
uel.log(Action.TT_REMOVED, Sources.Treatments,
ValueWithUnit.Timestamp(tempTarget.timestamp), ValueWithUnit.Timestamp(tempTarget.timestamp),
ValueWithUnit.TherapyEventTTReason(tempTarget.reason), ValueWithUnit.TherapyEventTTReason(tempTarget.reason),
ValueWithUnit.Mgdl(tempTarget.lowTarget), ValueWithUnit.Mgdl(tempTarget.lowTarget),
ValueWithUnit.Mgdl(tempTarget.highTarget).takeIf { tempTarget.lowTarget != tempTarget.highTarget }, ValueWithUnit.Mgdl(tempTarget.highTarget).takeIf { tempTarget.lowTarget != tempTarget.highTarget },
ValueWithUnit.Minute(TimeUnit.MILLISECONDS.toMinutes(tempTarget.duration).toInt())) ValueWithUnit.Minute(TimeUnit.MILLISECONDS.toMinutes(tempTarget.duration).toInt())
)
disposable += repository.runTransactionForResult(InvalidateTemporaryTargetTransaction(tempTarget.id)) disposable += repository.runTransactionForResult(InvalidateTemporaryTargetTransaction(tempTarget.id))
.subscribe( .subscribe(
{ aapsLogger.debug(LTag.DATABASE, "Removed temp target $tempTarget") }, { aapsLogger.debug(LTag.DATABASE, "Removed temp target $tempTarget") },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating temporary target", it) }) { aapsLogger.error(LTag.DATABASE, "Error while invalidating temporary target", it) })
}, null) }
removeActionMode?.finish()
})
}
else
removeActionMode?.finish()
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_treatments_temp_target, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onPrepareOptionsMenu(menu: Menu) {
menu.findItem(R.id.nav_hide_invalidated)?.isVisible = showInvalidated
menu.findItem(R.id.nav_show_invalidated)?.isVisible = !showInvalidated
val nsUploadOnly = !sp.getBoolean(R.string.key_ns_receive_temp_target, false) || !buildHelper.isEngineeringMode()
menu.findItem(R.id.nav_refresh_ns)?.isVisible = !nsUploadOnly
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean =
when (item.itemId) {
R.id.nav_remove_items -> {
removeActionMode = toolbar?.startActionMode(RemoveActionModeCallback())
true
}
R.id.nav_show_invalidated -> {
showInvalidated = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_invalidated -> {
showInvalidated = false
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_refresh_ns -> {
refreshFromNightscout()
true
}
else -> false
}
inner class RemoveActionModeCallback : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode, menu: Menu?): Boolean {
mode.menuInflater.inflate(R.menu.menu_delete_selection, menu)
selectedItems.clear()
mode.title = rh.gs(R.string.count_selected, selectedItems.size())
binding.recyclerview.adapter?.notifyDataSetChanged()
return true
}
override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?) = false
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
return when (item.itemId) {
R.id.remove_selected -> {
removeSelected()
true
}
else -> false
} }
} }
binding.remove.paintFlags = binding.remove.paintFlags or Paint.UNDERLINE_TEXT_FLAG
override fun onDestroyActionMode(mode: ActionMode?) {
removeActionMode = null
binding.recyclerview.adapter?.notifyDataSetChanged()
} }
} }
private fun getConfirmationText(): String {
if (selectedItems.size() == 1) {
val tempTarget = selectedItems.valueAt(0)
return "${rh.gs(R.string.careportal_temporarytarget)}: ${tempTarget.friendlyDescription(profileFunction.getUnits(), rh)}\n" +
dateUtil.dateAndTimeString(tempTarget.timestamp)
} }
return rh.gs(R.string.confirm_remove_multiple_items, selectedItems.size())
}
} }

View file

@ -1,11 +1,11 @@
package info.nightscout.androidaps.activities.fragments package info.nightscout.androidaps.activities.fragments
import android.content.DialogInterface
import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.util.Log
import android.view.View import android.util.SparseArray
import android.view.ViewGroup import android.view.*
import androidx.appcompat.widget.Toolbar
import androidx.core.util.forEach
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -36,6 +36,7 @@ import info.nightscout.shared.logging.LTag
import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.logging.UserEntryLogger
import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.activities.fragments.TreatmentsTemporaryBasalsFragment.RecyclerViewAdapter.TempBasalsViewHolder import info.nightscout.androidaps.activities.fragments.TreatmentsTemporaryBasalsFragment.RecyclerViewAdapter.TempBasalsViewHolder
import info.nightscout.androidaps.events.EventTreatmentUpdateGui
import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.FabricPrivacy import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.T import info.nightscout.androidaps.utils.T
@ -64,18 +65,22 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
@Inject lateinit var repository: AppRepository @Inject lateinit var repository: AppRepository
private var _binding: TreatmentsTempbasalsFragmentBinding? = null private var _binding: TreatmentsTempbasalsFragmentBinding? = null
// This property is only valid between onCreateView and onDestroyView.
private val binding get() = _binding!!
private val millsToThePast = T.days(30).msecs() private val millsToThePast = T.days(30).msecs()
private var selectedItems: SparseArray<TemporaryBasal> = SparseArray()
// This property is only valid between onCreateView and private var showInvalidated = false
// onDestroyView. private var toolbar: Toolbar? = null
private val binding get() = _binding!! private var removeActionMode: ActionMode? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
TreatmentsTempbasalsFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root TreatmentsTempbasalsFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
toolbar = activity?.findViewById(R.id.toolbar)
setHasOptionsMenu(true)
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
} }
@ -98,7 +103,7 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
disposable += disposable +=
if (activePlugin.activePump.isFakingTempsByExtendedBoluses) { if (activePlugin.activePump.isFakingTempsByExtendedBoluses) {
if (binding.showInvalidated.isChecked) if (showInvalidated)
tempBasalsWithInvalid(now) tempBasalsWithInvalid(now)
.zipWith(extendedBolusesWithInvalid(now)) { first, second -> first + second } .zipWith(extendedBolusesWithInvalid(now)) { first, second -> first + second }
.map { list -> list.filterNotNull() } .map { list -> list.filterNotNull() }
@ -113,7 +118,7 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true) } .subscribe { list -> binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true) }
} else { } else {
if (binding.showInvalidated.isChecked) if (showInvalidated)
tempBasalsWithInvalid(now) tempBasalsWithInvalid(now)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true) } .subscribe { list -> binding.recyclerview.swapAdapter(RecyclerViewAdapter(list), true) }
@ -150,6 +155,7 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
@Synchronized @Synchronized
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
removeActionMode?.let { it.finish() }
binding.recyclerview.adapter = null // avoid leaks binding.recyclerview.adapter = null // avoid leaks
_binding = null _binding = null
} }
@ -164,7 +170,7 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
holder.binding.ns.visibility = (tempBasal.interfaceIDs.nightscoutId != null).toVisibility() holder.binding.ns.visibility = (tempBasal.interfaceIDs.nightscoutId != null).toVisibility()
holder.binding.invalid.visibility = tempBasal.isValid.not().toVisibility() holder.binding.invalid.visibility = tempBasal.isValid.not().toVisibility()
holder.binding.ph.visibility = (tempBasal.interfaceIDs.pumpId != null).toVisibility() holder.binding.ph.visibility = (tempBasal.interfaceIDs.pumpId != null).toVisibility()
val sameDayPrevious = position > 0 && dateUtil.isSameDay(tempBasal.timestamp, tempBasalList[position-1].timestamp) val sameDayPrevious = position > 0 && dateUtil.isSameDay(tempBasal.timestamp, tempBasalList[position - 1].timestamp)
holder.binding.date.visibility = sameDayPrevious.not().toVisibility() holder.binding.date.visibility = sameDayPrevious.not().toVisibility()
holder.binding.date.text = dateUtil.dateString(tempBasal.timestamp) holder.binding.date.text = dateUtil.dateString(tempBasal.timestamp)
if (tempBasal.isInProgress) { if (tempBasal.isInProgress) {
@ -187,62 +193,147 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
holder.binding.emulatedSuspendFlag.visibility = (tempBasal.type == TemporaryBasal.Type.EMULATED_PUMP_SUSPEND).toVisibility() holder.binding.emulatedSuspendFlag.visibility = (tempBasal.type == TemporaryBasal.Type.EMULATED_PUMP_SUSPEND).toVisibility()
holder.binding.superBolusFlag.visibility = (tempBasal.type == TemporaryBasal.Type.SUPERBOLUS).toVisibility() holder.binding.superBolusFlag.visibility = (tempBasal.type == TemporaryBasal.Type.SUPERBOLUS).toVisibility()
if (abs(iob.basaliob) > 0.01) holder.binding.iob.setTextColor(rh.gc(R.color.colorActive)) else holder.binding.iob.setTextColor(holder.binding.duration.currentTextColor) if (abs(iob.basaliob) > 0.01) holder.binding.iob.setTextColor(rh.gc(R.color.colorActive)) else holder.binding.iob.setTextColor(holder.binding.duration.currentTextColor)
holder.binding.remove.tag = tempBasal holder.binding.cbRemove.visibility = (tempBasal.isValid && removeActionMode != null).toVisibility()
if (removeActionMode != null) {
holder.binding.cbRemove.setOnCheckedChangeListener { _, value ->
if (value) {
selectedItems.put(position, tempBasal)
} else {
selectedItems.remove(position)
}
removeActionMode?.title = rh.gs(R.string.count_selected, selectedItems.size())
}
holder.binding.cbRemove.isChecked = selectedItems.get(position) != null
}
val nextTimestamp = if (tempBasalList.size != position + 1) tempBasalList[position + 1].timestamp else 0L val nextTimestamp = if (tempBasalList.size != position + 1) tempBasalList[position + 1].timestamp else 0L
holder.binding.delimiter.visibility = dateUtil.isSameDay(tempBasal.timestamp, nextTimestamp).toVisibility() holder.binding.delimiter.visibility = dateUtil.isSameDay(tempBasal.timestamp, nextTimestamp).toVisibility()
} }
override fun getItemCount(): Int = tempBasalList.size override fun getItemCount() = tempBasalList.size
inner class TempBasalsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class TempBasalsViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val binding = TreatmentsTempbasalsItemBinding.bind(itemView) val binding = TreatmentsTempbasalsItemBinding.bind(itemView)
init { }
binding.remove.setOnClickListener { v: View ->
val tempBasal = v.tag as TemporaryBasal }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_treatments_temp_basal, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onPrepareOptionsMenu(menu: Menu) {
menu.findItem(R.id.nav_hide_invalidated)?.isVisible = showInvalidated
menu.findItem(R.id.nav_show_invalidated)?.isVisible = !showInvalidated
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean =
when (item.itemId) {
R.id.nav_remove_items -> {
removeActionMode = toolbar?.startActionMode(RemoveActionModeCallback())
true
}
R.id.nav_show_invalidated -> {
showInvalidated = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_invalidated -> {
showInvalidated = false
rxBus.send(EventTreatmentUpdateGui())
true
}
else -> false
}
inner class RemoveActionModeCallback : ActionMode.Callback {
override fun onCreateActionMode(mode: ActionMode, menu: Menu?): Boolean {
mode.menuInflater.inflate(R.menu.menu_delete_selection, menu)
selectedItems.clear()
mode.title = rh.gs(R.string.count_selected, selectedItems.size())
binding.recyclerview.adapter?.notifyDataSetChanged()
return true
}
override fun onPrepareActionMode(mode: ActionMode?, menu: Menu?) = false
override fun onActionItemClicked(mode: ActionMode, item: MenuItem): Boolean {
return when (item.itemId) {
R.id.remove_selected -> {
removeSelected()
true
}
else -> false
}
}
override fun onDestroyActionMode(mode: ActionMode?) {
removeActionMode = null
binding.recyclerview.adapter?.notifyDataSetChanged()
}
}
private fun getConfirmationText(): String {
if (selectedItems.size() == 1) {
val tempBasal = selectedItems.valueAt(0)
val isFakeExtended = tempBasal.type == TemporaryBasal.Type.FAKE_EXTENDED
val profile = profileFunction.getProfile(dateUtil.now())
if (profile != null)
return "${if (isFakeExtended) rh.gs(R.string.extended_bolus) else rh.gs(R.string.tempbasal_label)}: ${tempBasal.toStringFull(profile, dateUtil)}\n" +
"${rh.gs(R.string.date)}: ${dateUtil.dateAndTimeString(tempBasal.timestamp)}"
}
return rh.gs(R.string.confirm_remove_multiple_items, selectedItems.size())
}
private fun removeSelected() {
if (selectedItems.size() > 0)
activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.removerecord), getConfirmationText(), Runnable {
selectedItems.forEach {_, tempBasal ->
var extendedBolus: ExtendedBolus? = null var extendedBolus: ExtendedBolus? = null
val isFakeExtended = tempBasal.type == TemporaryBasal.Type.FAKE_EXTENDED val isFakeExtended = tempBasal.type == TemporaryBasal.Type.FAKE_EXTENDED
if (isFakeExtended) { if (isFakeExtended) {
val eb = repository.getExtendedBolusActiveAt(tempBasal.timestamp).blockingGet() val eb = repository.getExtendedBolusActiveAt(tempBasal.timestamp).blockingGet()
extendedBolus = if (eb is ValueWrapper.Existing) eb.value else null extendedBolus = if (eb is ValueWrapper.Existing) eb.value else null
} }
val profile = profileFunction.getProfile(dateUtil.now())
?: return@setOnClickListener
context?.let {
OKDialog.showConfirmation(it, rh.gs(R.string.removerecord),
"""
${if (isFakeExtended) rh.gs(R.string.extended_bolus) else rh.gs(R.string.tempbasal_label)}: ${tempBasal.toStringFull(profile, dateUtil)}
${rh.gs(R.string.date)}: ${dateUtil.dateAndTimeString(tempBasal.timestamp)}
""".trimIndent(),
{ _: DialogInterface?, _: Int ->
if (isFakeExtended && extendedBolus != null) { if (isFakeExtended && extendedBolus != null) {
uel.log(Action.EXTENDED_BOLUS_REMOVED, Sources.Treatments, uel.log(
Action.EXTENDED_BOLUS_REMOVED, Sources.Treatments,
ValueWithUnit.Timestamp(extendedBolus.timestamp), ValueWithUnit.Timestamp(extendedBolus.timestamp),
ValueWithUnit.Insulin(extendedBolus.amount), ValueWithUnit.Insulin(extendedBolus.amount),
ValueWithUnit.UnitPerHour(extendedBolus.rate), ValueWithUnit.UnitPerHour(extendedBolus.rate),
ValueWithUnit.Minute(TimeUnit.MILLISECONDS.toMinutes(extendedBolus.duration).toInt())) ValueWithUnit.Minute(TimeUnit.MILLISECONDS.toMinutes(extendedBolus.duration).toInt())
)
disposable += repository.runTransactionForResult(InvalidateExtendedBolusTransaction(extendedBolus.id)) disposable += repository.runTransactionForResult(InvalidateExtendedBolusTransaction(extendedBolus.id))
.subscribe( .subscribe(
{ aapsLogger.debug(LTag.DATABASE, "Removed extended bolus $extendedBolus") }, { aapsLogger.debug(LTag.DATABASE, "Removed extended bolus $extendedBolus") },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating extended bolus", it) }) { aapsLogger.error(LTag.DATABASE, "Error while invalidating extended bolus", it) })
} else if (!isFakeExtended) { } else if (!isFakeExtended) {
uel.log(Action.TEMP_BASAL_REMOVED, Sources.Treatments, uel.log(
Action.TEMP_BASAL_REMOVED, Sources.Treatments,
ValueWithUnit.Timestamp(tempBasal.timestamp), ValueWithUnit.Timestamp(tempBasal.timestamp),
if (tempBasal.isAbsolute) ValueWithUnit.UnitPerHour(tempBasal.rate) else ValueWithUnit.Percent(tempBasal.rate.toInt()), if (tempBasal.isAbsolute) ValueWithUnit.UnitPerHour(tempBasal.rate) else ValueWithUnit.Percent(tempBasal.rate.toInt()),
ValueWithUnit.Minute(T.msecs(tempBasal.duration).mins().toInt())) ValueWithUnit.Minute(T.msecs(tempBasal.duration).mins().toInt())
)
disposable += repository.runTransactionForResult(InvalidateTemporaryBasalTransaction(tempBasal.id)) disposable += repository.runTransactionForResult(InvalidateTemporaryBasalTransaction(tempBasal.id))
.subscribe( .subscribe(
{ aapsLogger.debug(LTag.DATABASE, "Removed temporary basal $tempBasal") }, { aapsLogger.debug(LTag.DATABASE, "Removed temporary basal $tempBasal") },
{ aapsLogger.error(LTag.DATABASE, "Error while invalidating temporary basal", it) }) { aapsLogger.error(LTag.DATABASE, "Error while invalidating temporary basal", it) })
} }
}, null)
} }
removeActionMode?.finish()
})
} }
binding.remove.paintFlags = binding.remove.paintFlags or Paint.UNDERLINE_TEXT_FLAG else
} removeActionMode?.finish()
}
} }
} }

View file

@ -1,9 +1,7 @@
package info.nightscout.androidaps.activities.fragments package info.nightscout.androidaps.activities.fragments
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.*
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import dagger.android.support.DaggerFragment import dagger.android.support.DaggerFragment
@ -30,6 +28,7 @@ import info.nightscout.androidaps.utils.alertDialogs.OKDialog
import info.nightscout.androidaps.utils.resources.ResourceHelper import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.androidaps.utils.rx.AapsSchedulers
import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.CompositeDisposable
import io.reactivex.rxkotlin.plusAssign
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import javax.inject.Inject import javax.inject.Inject
@ -51,11 +50,10 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
private val millsToThePastFiltered = T.days(30).msecs() private val millsToThePastFiltered = T.days(30).msecs()
private val millsToThePastUnFiltered = T.days(3).msecs() private val millsToThePastUnFiltered = T.days(3).msecs()
private var showLoop = false
private var _binding: TreatmentsUserEntryFragmentBinding? = null private var _binding: TreatmentsUserEntryFragmentBinding? = null
// This property is only valid between onCreateView and // This property is only valid between onCreateView and onDestroyView.
// onDestroyView.
private val binding get() = _binding!! private val binding get() = _binding!!
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
@ -63,9 +61,12 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
setHasOptionsMenu(true)
binding.recyclerview.setHasFixedSize(true) binding.recyclerview.setHasFixedSize(true)
binding.recyclerview.layoutManager = LinearLayoutManager(view.context) binding.recyclerview.layoutManager = LinearLayoutManager(view.context)
binding.ueExportToXml.setOnClickListener { }
fun exportUserEnteries() {
activity?.let { activity -> activity?.let { activity ->
OKDialog.showConfirmation(activity, rh.gs(R.string.ue_export_to_csv) + "?") { OKDialog.showConfirmation(activity, rh.gs(R.string.ue_export_to_csv) + "?") {
uel.log(Action.EXPORT_CSV, Sources.Treatments) uel.log(Action.EXPORT_CSV, Sources.Treatments)
@ -73,25 +74,20 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
} }
} }
} }
binding.showLoop.setOnCheckedChangeListener { _, _ ->
rxBus.send(EventTreatmentUpdateGui())
}
}
fun swapAdapter() { fun swapAdapter() {
val now = System.currentTimeMillis() val now = System.currentTimeMillis()
if (binding.showLoop.isChecked) disposable +=
disposable.add( repository if (showLoop)
repository
.getUserEntryDataFromTime(now - millsToThePastUnFiltered) .getUserEntryDataFromTime(now - millsToThePastUnFiltered)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(list), true) } .subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(list), true) }
)
else else
disposable.add( repository repository
.getUserEntryFilteredDataFromTime(now - millsToThePastFiltered) .getUserEntryFilteredDataFromTime(now - millsToThePastFiltered)
.observeOn(aapsSchedulers.main) .observeOn(aapsSchedulers.main)
.subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(list), true) } .subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(list), true) }
)
} }
@Synchronized @Synchronized
@ -99,15 +95,15 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
super.onResume() super.onResume()
swapAdapter() swapAdapter()
disposable.add(rxBus disposable += rxBus
.toObservable(EventPreferenceChange::class.java) .toObservable(EventPreferenceChange::class.java)
.observeOn(aapsSchedulers.io) .observeOn(aapsSchedulers.io)
.subscribe({ swapAdapter() }, fabricPrivacy::logException)) .subscribe({ swapAdapter() }, fabricPrivacy::logException)
disposable.add(rxBus disposable += rxBus
.toObservable(EventTreatmentUpdateGui::class.java) .toObservable(EventTreatmentUpdateGui::class.java)
.observeOn(aapsSchedulers.io) .observeOn(aapsSchedulers.io)
.debounce(1L, TimeUnit.SECONDS) .debounce(1L, TimeUnit.SECONDS)
.subscribe({ swapAdapter() }, fabricPrivacy::logException)) .subscribe({ swapAdapter() }, fabricPrivacy::logException)
} }
@Synchronized @Synchronized
@ -132,7 +128,7 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
override fun onBindViewHolder(holder: UserEntryViewHolder, position: Int) { override fun onBindViewHolder(holder: UserEntryViewHolder, position: Int) {
val current = entries[position] val current = entries[position]
val sameDayPrevious = position > 0 && dateUtil.isSameDay(current.timestamp, entries[position-1].timestamp) val sameDayPrevious = position > 0 && dateUtil.isSameDay(current.timestamp, entries[position - 1].timestamp)
holder.binding.date.visibility = sameDayPrevious.not().toVisibility() holder.binding.date.visibility = sameDayPrevious.not().toVisibility()
holder.binding.date.text = dateUtil.dateString(current.timestamp) holder.binding.date.text = dateUtil.dateString(current.timestamp)
holder.binding.time.text = dateUtil.timeStringWithSeconds(current.timestamp) holder.binding.time.text = dateUtil.timeStringWithSeconds(current.timestamp)
@ -152,7 +148,40 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
val binding = TreatmentsUserEntryItemBinding.bind(itemView) val binding = TreatmentsUserEntryItemBinding.bind(itemView)
} }
override fun getItemCount(): Int = entries.size override fun getItemCount() = entries.size
} }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.menu_treatments_user_entry, menu)
super.onCreateOptionsMenu(menu, inflater)
}
override fun onPrepareOptionsMenu(menu: Menu) {
menu.findItem(R.id.nav_hide_loop)?.isVisible = showLoop
menu.findItem(R.id.nav_show_loop)?.isVisible = !showLoop
return super.onPrepareOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean =
when (item.itemId) {
R.id.nav_show_loop -> {
showLoop = true
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_hide_loop -> {
showLoop = false
rxBus.send(EventTreatmentUpdateGui())
true
}
R.id.nav_export -> {
exportUserEnteries()
true
}
else -> false
}
} }

View file

@ -125,7 +125,9 @@ class WizardDialog : DaggerDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
loadCheckedStates() loadCheckedStates()
processCobCheckBox() processCobCheckBox()
binding.sbCheckbox.visibility = sp.getBoolean(R.string.key_usesuperbolus, false).toVisibility() val useSuperBolus = sp.getBoolean(R.string.key_usesuperbolus, false)
binding.sbCheckbox.visibility = useSuperBolus.toVisibility()
binding.superBolusRow.visibility = useSuperBolus.toVisibility()
binding.notesLayout.visibility = sp.getBoolean(R.string.key_show_notes_entry_dialogs, false).toVisibility() binding.notesLayout.visibility = sp.getBoolean(R.string.key_show_notes_entry_dialogs, false).toVisibility()
val maxCarbs = constraintChecker.getMaxCarbsAllowed().value() val maxCarbs = constraintChecker.getMaxCarbsAllowed().value()

View file

@ -628,6 +628,7 @@
</TableRow> </TableRow>
<TableRow <TableRow
android:id="@+id/super_bolus_row"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:focusable="true"> android:focusable="true">

View file

@ -1,54 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsBolusCarbsFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsBolusCarbsFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/refresh_from_nightscout"
style="?android:attr/buttonStyle"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_refresh"
android:text="@string/nav_refreshtreatments" />
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/delete_future_treatments"
style="?android:attr/buttonStyle"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_remove"
android:text="@string/deletefuturetreatments" />
<CheckBox
android:id="@+id/show_invalidated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_removed"
app:srcCompat="@drawable/ic_visibility" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -161,14 +161,12 @@
android:text="@string/invalid" android:text="@string/invalid"
android:textColor="@android:color/holo_red_light" /> android:textColor="@android:color/holo_red_light" />
<TextView <CheckBox
android:id="@+id/bolus_remove" android:id="@+id/cb_bolus_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:contentDescription="@string/select_for_removal"
android:text="@string/remove_button" android:visibility="gone" />
android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -257,13 +255,21 @@
<TextView <TextView
android:id="@+id/carbs_remove" android:id="@+id/carbs_remove"
android:visibility="gone"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:layout_marginStart="5dp"
android:text="@string/remove_button" android:text="@string/remove_button"
android:textAlignment="viewEnd" android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" /> android:textColor="@android:color/holo_orange_light" />
<CheckBox
android:id="@+id/cb_carbs_remove"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -1,54 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsCareportalFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsCareportalFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/refresh_from_nightscout"
style="?android:attr/buttonStyle"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_refresh"
android:text="@string/nav_refreshtreatments" />
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/remove_androidaps_started_events"
style="?android:attr/buttonStyle"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_remove"
android:text="@string/careportal_removestartedevents" />
<CheckBox
android:id="@+id/show_invalidated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_removed"
app:srcCompat="@drawable/ic_visibility" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -112,14 +112,12 @@
android:text="Activity" android:text="Activity"
tools:ignore="HardcodedText,RtlSymmetry" /> tools:ignore="HardcodedText,RtlSymmetry" />
<TextView <CheckBox
android:id="@+id/remove" android:id="@+id/cb_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="10dp" android:contentDescription="@string/select_for_removal"
android:text="@string/remove_button" android:visibility="gone" />
android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" />
</LinearLayout> </LinearLayout>

View file

@ -1,34 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsExtendedBolusesFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsExtendedBolusesFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/show_invalidated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
app:srcCompat="@drawable/ic_visibility"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_removed" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -153,14 +153,12 @@
android:text="@string/invalid" android:text="@string/invalid"
android:textColor="@android:color/holo_red_light" /> android:textColor="@android:color/holo_red_light" />
<TextView <CheckBox
android:id="@+id/remove" android:id="@+id/cb_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:contentDescription="@string/select_for_removal"
android:text="@string/remove_button" android:visibility="gone" />
android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -6,6 +6,13 @@
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.TreatmentsActivity"> tools:context="info.nightscout.androidaps.activities.TreatmentsActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:titleTextColor="@android:color/white" />
<com.google.android.flexbox.FlexboxLayout <com.google.android.flexbox.FlexboxLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -1,44 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsProfileSwitchFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsProfileSwitchFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/refresh_from_nightscout"
style="?android:attr/buttonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_refresh"
android:text="@string/refresheventsfromnightscout" />
<CheckBox
android:id="@+id/show_invalidated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_removed"
app:srcCompat="@drawable/ic_visibility" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -124,15 +124,12 @@
android:textAlignment="viewEnd" android:textAlignment="viewEnd"
android:textColor="@android:color/holo_blue_light" /> android:textColor="@android:color/holo_blue_light" />
<TextView <CheckBox
android:id="@+id/remove" android:id="@+id/cb_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="10dp" android:contentDescription="@string/select_for_removal"
android:paddingEnd="5dp" android:visibility="gone" />
android:text="@string/remove_button"
android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" />
</LinearLayout> </LinearLayout>

View file

@ -1,36 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsTemporaryBasalsFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsTemporaryBasalsFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<CheckBox
android:id="@+id/show_invalidated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_removed"
app:srcCompat="@drawable/ic_visibility" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -172,15 +172,12 @@
android:text="@string/invalid" android:text="@string/invalid"
android:textColor="@android:color/holo_red_light" /> android:textColor="@android:color/holo_red_light" />
<TextView <CheckBox
android:id="@+id/remove" android:id="@+id/cb_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="5dp" android:contentDescription="@string/select_for_removal"
android:visibility="gone" android:visibility="gone" />
android:text="@string/remove_button"
android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -1,45 +1,10 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsTempTargetFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsTempTargetFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/refresh_from_nightscout"
style="?android:attr/buttonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_refresh"
android:text="@string/refresheventsfromnightscout"
tools:visibility="visible" />
<CheckBox
android:id="@+id/show_invalidated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_removed"
app:srcCompat="@drawable/ic_visibility" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -147,14 +147,12 @@
android:text="@string/invalid" android:text="@string/invalid"
android:textColor="@android:color/holo_red_light" /> android:textColor="@android:color/holo_red_light" />
<TextView <CheckBox
android:id="@+id/remove" android:id="@+id/cb_remove"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="10dp" android:contentDescription="@string/select_for_removal"
android:text="@string/remove_button" android:visibility="gone" />
android:textAlignment="viewEnd"
android:textColor="@android:color/holo_orange_light" />
</LinearLayout> </LinearLayout>

View file

@ -6,40 +6,6 @@
android:orientation="vertical" android:orientation="vertical"
tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsUserEntryFragment"> tools:context="info.nightscout.androidaps.activities.fragments.TreatmentsUserEntryFragment">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<info.nightscout.androidaps.utils.ui.SingleClickButton
android:id="@+id/ue_export_to_xml"
style="?android:attr/buttonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:drawableStart="@drawable/ic_header_export"
android:text="@string/ue_export_to_csv" />
<CheckBox
android:id="@+id/show_loop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:checked="false"
android:paddingEnd="5dp"
tools:ignore="RtlSymmetry" />
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:contentDescription="@string/show_calculation"
app:srcCompat="@drawable/ic_loop_closed_white" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview" android:id="@+id/recyclerview"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -0,0 +1,11 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/remove_selected"
android:icon="@drawable/ic_trash"
android:iconTint="@color/white"
android:title="@string/remove_selected_items"
app:showAsAction="always" />
</menu>

View file

@ -0,0 +1,25 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_remove_items"
android:title="@string/remove_items"
app:showAsAction="never" />
<item
android:id="@+id/nav_show_invalidated"
android:title="@string/show_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_invalidated"
android:title="@string/hide_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_delete_future"
android:title="@string/delete_future_treatments"
app:showAsAction="never" />
<item
android:id="@+id/nav_refresh_ns"
android:title="@string/refresh_from_nightscout"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,25 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_remove_items"
android:title="@string/remove_items"
app:showAsAction="never" />
<item
android:id="@+id/nav_show_invalidated"
android:title="@string/show_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_invalidated"
android:title="@string/hide_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_refresh_ns"
android:title="@string/refresh_from_nightscout"
app:showAsAction="never" />
<item
android:id="@+id/nav_remove_started_events"
android:title="@string/careportal_removestartedevents"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,17 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_remove_items"
android:title="@string/remove_items"
app:showAsAction="never" />
<item
android:id="@+id/nav_show_invalidated"
android:title="@string/show_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_invalidated"
android:title="@string/hide_invalidated"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,17 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_remove_items"
android:title="@string/remove_items"
app:showAsAction="never" />
<item
android:id="@+id/nav_show_invalidated"
android:title="@string/show_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_invalidated"
android:title="@string/hide_invalidated"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,17 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_remove_items"
android:title="@string/remove_items"
app:showAsAction="never" />
<item
android:id="@+id/nav_show_invalidated"
android:title="@string/show_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_invalidated"
android:title="@string/hide_invalidated"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,21 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_remove_items"
android:title="@string/remove_items"
app:showAsAction="never" />
<item
android:id="@+id/nav_show_invalidated"
android:title="@string/show_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_invalidated"
android:title="@string/hide_invalidated"
app:showAsAction="never" />
<item
android:id="@+id/nav_refresh_ns"
android:title="@string/refresh_from_nightscout"
app:showAsAction="never" />
</menu>

View file

@ -0,0 +1,17 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/nav_show_loop"
android:title="@string/show_loop"
app:showAsAction="never" />
<item
android:id="@+id/nav_hide_loop"
android:title="@string/hide_loop"
app:showAsAction="never" />
<item
android:id="@+id/nav_export"
android:title="@string/ue_export_to_csv"
app:showAsAction="never" />
</menu>

View file

@ -181,7 +181,6 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Stuur alle Data weer</string> <string name="resend_all_data">Stuur alle Data weer</string>
<string name="open_settings_on_wear">Oop instellings op Wear</string> <string name="open_settings_on_wear">Oop instellings op Wear</string>
<string name="basal_rate">Basale waarde:</string>
<string name="basalvaluebelowminimum">Basale waarde onder minimum. Profiel nie gestel nie!</string> <string name="basalvaluebelowminimum">Basale waarde onder minimum. Profiel nie gestel nie!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Laaste BG:</string> <string name="sms_lastbg">Laaste BG:</string>
@ -573,4 +572,5 @@
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<string name="overview_show_predictions">Projeksies</string> <string name="overview_show_predictions">Projeksies</string>
<string name="prime">Prima</string> <string name="prime">Prima</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -245,7 +245,6 @@
<string name="wear">Часовник</string> <string name="wear">Часовник</string>
<string name="resend_all_data">Изпрати отново всички дани</string> <string name="resend_all_data">Изпрати отново всички дани</string>
<string name="open_settings_on_wear">Отвори настройките на часовника</string> <string name="open_settings_on_wear">Отвори настройките на часовника</string>
<string name="basal_rate">Базал:</string>
<string name="basalvaluebelowminimum">Базалните стойности са под минимума. Не е зададен профил!</string> <string name="basalvaluebelowminimum">Базалните стойности са под минимума. Не е зададен профил!</string>
<string name="sms_actualbg">КЗ:</string> <string name="sms_actualbg">КЗ:</string>
<string name="sms_lastbg">Последна КЗ:</string> <string name="sms_lastbg">Последна КЗ:</string>
@ -747,8 +746,6 @@
<string name="profilenamecontainsdot">Името на профила съдържа точка.\nТова не се поддържа от НС.\nПрофилът не е качен в НС.</string> <string name="profilenamecontainsdot">Името на профила съдържа точка.\nТова не се поддържа от НС.\nПрофилът не е качен в НС.</string>
<string name="low_mark_comment">Ниската граница на диапазона (графика)</string> <string name="low_mark_comment">Ниската граница на диапазона (графика)</string>
<string name="high_mark_comment">Високата граница на диапазона (графика)</string> <string name="high_mark_comment">Високата граница на диапазона (графика)</string>
<string name="age">Възраст:</string>
<string name="weight_label">Тегло:</string>
<string name="id">Номер:</string> <string name="id">Номер:</string>
<string name="submit">Изпрати</string> <string name="submit">Изпрати</string>
<string name="mostcommonprofile">Най-често използван профил:</string> <string name="mostcommonprofile">Най-често използван профил:</string>
@ -890,4 +887,5 @@
<string name="recalculated_data_used">Рекалкулирани използвани данни</string> <string name="recalculated_data_used">Рекалкулирани използвани данни</string>
<string name="bg_too_close">КЗ близо до:\n%1$s\n%2$s</string> <string name="bg_too_close">КЗ близо до:\n%1$s\n%2$s</string>
<string name="not_available_full">Недостъпно</string> <string name="not_available_full">Недостъпно</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -316,4 +316,5 @@
<string name="doprofileswitch">Canviar de perfil</string> <string name="doprofileswitch">Canviar de perfil</string>
<string name="careportal_sensor_label">Sensor</string> <string name="careportal_sensor_label">Sensor</string>
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<!-- WEAR OS-->
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Synchronizace dat s NS</string> <string name="description_ns_client">Synchronizace dat s NS</string>
<string name="description_ama">Stav algoritmu v roce 2017</string> <string name="description_ama">Stav algoritmu v roce 2017</string>
<string name="description_smb">Nejnovější algoritmus pro pokročilé uživatele</string> <string name="description_smb">Nejnovější algoritmus pro pokročilé uživatele</string>
<string name="description_smb_dynamic_isf">Nejnovější algoritmus pro pokročilé uživatele s dynamickým/automatickým ISF</string>
<string name="description_overview">Zobrazení stavu a informací. Přístup k nejběžnějším ovládacím prvkům</string> <string name="description_overview">Zobrazení stavu a informací. Přístup k nejběžnějším ovládacím prvkům</string>
<string name="description_persistent_notification">Zobrazení průběžného oznámení v Androidu s krátkým přehledem, co smyčka právě dělá</string> <string name="description_persistent_notification">Zobrazení průběžného oznámení v Androidu s krátkým přehledem, co smyčka právě dělá</string>
<string name="description_profile_local">Definujte profil, který je dostupný offline.</string> <string name="description_profile_local">Definujte profil, který je dostupný offline.</string>
@ -154,7 +155,7 @@
<string name="check_preferences_before_import">Před importem zkontrolujte předvolby:</string> <string name="check_preferences_before_import">Před importem zkontrolujte předvolby:</string>
<string name="check_preferences_cannot_import">Předvolby nelze importovat!</string> <string name="check_preferences_cannot_import">Předvolby nelze importovat!</string>
<string name="check_preferences_dangerous_import">Předvolby by neměly být importovány!</string> <string name="check_preferences_dangerous_import">Předvolby by neměly být importovány!</string>
<string name="check_preferences_details_btn">Vysvětlení problémy při importu…</string> <string name="check_preferences_details_btn">Vysvětlení problémů při importu…</string>
<string name="check_preferences_details_title">Detaily problémů importu</string> <string name="check_preferences_details_title">Detaily problémů importu</string>
<string name="check_preferences_import_btn">Import</string> <string name="check_preferences_import_btn">Import</string>
<string name="check_preferences_import_anyway_btn">Přesto importovat (NEBEZPEČNÉ!)</string> <string name="check_preferences_import_anyway_btn">Přesto importovat (NEBEZPEČNÉ!)</string>
@ -246,7 +247,7 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Znovu poslat všechna data</string> <string name="resend_all_data">Znovu poslat všechna data</string>
<string name="open_settings_on_wear">Otevřít nastavení na hodinkách Wear</string> <string name="open_settings_on_wear">Otevřít nastavení na hodinkách Wear</string>
<string name="basal_rate">Bazál:</string> <string name="basal_rate">Bazál</string>
<string name="basalvaluebelowminimum">Hodnota bazálu pod povoleným minimem. Nenastaveno!</string> <string name="basalvaluebelowminimum">Hodnota bazálu pod povoleným minimem. Nenastaveno!</string>
<string name="sms_actualbg">Glykémie:</string> <string name="sms_actualbg">Glykémie:</string>
<string name="sms_lastbg">Poslední glykémie:</string> <string name="sms_lastbg">Poslední glykémie:</string>
@ -267,6 +268,7 @@
<string name="configbuilder_shortname">KONF</string> <string name="configbuilder_shortname">KONF</string>
<string name="loop_shortname">SMYČ</string> <string name="loop_shortname">SMYČ</string>
<string name="oaps_shortname">OAPS</string> <string name="oaps_shortname">OAPS</string>
<string name="dynisf_shortname">DYNSENZ</string>
<string name="localprofile_shortname">MPRF</string> <string name="localprofile_shortname">MPRF</string>
<string name="overview_shortname">PŘEH</string> <string name="overview_shortname">PŘEH</string>
<string name="virtualpump_shortname">VPUM</string> <string name="virtualpump_shortname">VPUM</string>
@ -434,6 +436,7 @@
<string name="ns_localbroadcasts">Povolit vysílání do jiných aplikací (například xDrip+). Nepovolujte, pokud máte instalovánu více než jednu instanci AAPS nebo NSClient!</string> <string name="ns_localbroadcasts">Povolit vysílání do jiných aplikací (například xDrip+). Nepovolujte, pokud máte instalovánu více než jednu instanci AAPS nebo NSClient!</string>
<string name="ns_localbroadcasts_title">Povolení odesílaní</string> <string name="ns_localbroadcasts_title">Povolení odesílaní</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB s dynamickým ISF</string>
<string name="enableuam">Povolit UAM</string> <string name="enableuam">Povolit UAM</string>
<string name="enablesmb">Povolit SMB</string> <string name="enablesmb">Povolit SMB</string>
<string name="enablesmb_summary">Použít super mikro bolusy místo dočasných bazálů pro zrychlení účinku</string> <string name="enablesmb_summary">Použít super mikro bolusy místo dočasných bazálů pro zrychlení účinku</string>
@ -502,6 +505,7 @@
<string name="negativeonly">Pouze záporné</string> <string name="negativeonly">Pouze záporné</string>
<string name="overview_editquickwizard_usecob">Kalkulace COB</string> <string name="overview_editquickwizard_usecob">Kalkulace COB</string>
<string name="overview_editquickwizard_usetemptarget">Kalkulace s dočasným cílem</string> <string name="overview_editquickwizard_usetemptarget">Kalkulace s dočasným cílem</string>
<string name="overview_editquickwizard_usepercentage">Procentní výpočet</string>
<string name="loopenabled">Smyčka povolena</string> <string name="loopenabled">Smyčka povolena</string>
<string name="apsselected">APS vybráno</string> <string name="apsselected">APS vybráno</string>
<string name="nsclienthaswritepermission">NSClient má povolení k zápisu</string> <string name="nsclienthaswritepermission">NSClient má povolení k zápisu</string>
@ -757,8 +761,8 @@
<string name="profilenamecontainsdot">Název profilu obsahuje tečky.\nToto není v NS podporováno.\nProfil není přenesen do NS.</string> <string name="profilenamecontainsdot">Název profilu obsahuje tečky.\nToto není v NS podporováno.\nProfil není přenesen do NS.</string>
<string name="low_mark_comment">Spodní hodnota oblasti v rozsahu (pouze zobrazování)</string> <string name="low_mark_comment">Spodní hodnota oblasti v rozsahu (pouze zobrazování)</string>
<string name="high_mark_comment">Horní hodnota oblasti v rozsahu (pouze zobrazování)</string> <string name="high_mark_comment">Horní hodnota oblasti v rozsahu (pouze zobrazování)</string>
<string name="age">Věk:</string> <string name="age">Věk</string>
<string name="weight_label">Hmotnost:</string> <string name="weight_label">Váha</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Odeslat</string> <string name="submit">Odeslat</string>
<string name="mostcommonprofile">Nejběžnější profil:</string> <string name="mostcommonprofile">Nejběžnější profil:</string>
@ -900,9 +904,74 @@
<string name="errors">Chyby</string> <string name="errors">Chyby</string>
<string name="ns_sync_slow">Zpomalit odesílání</string> <string name="ns_sync_slow">Zpomalit odesílání</string>
<string name="data_status">Stav glykémie</string> <string name="data_status">Stav glykémie</string>
<string name="statuslights_cannula_age">stáří kanyly</string>
<string name="statuslights_patch_pump_age">stáří náplasťové pumpy</string>
<string name="patch_pump">Náplasťová pumpa</string>
<string name="recalculated_data_used">Použita přepočítaná data</string> <string name="recalculated_data_used">Použita přepočítaná data</string>
<string name="bg_too_close">Glykémie je příliš blízko:\n%1$s\n%2$s</string> <string name="bg_too_close">Glykémie je příliš blízko:\n%1$s\n%2$s</string>
<string name="identification">Identifikace (e-mail, jméno na FB nebo Discord atd.)</string> <string name="identification">Identifikace (e-mail, jméno na FB nebo Discord atd.)</string>
<string name="identification_not_set">Identifikace není nastavena ve vývojářském režimu</string> <string name="identification_not_set">Identifikace není nastavena ve vývojářském režimu</string>
<string name="a11y_dialog">dialog</string>
<string name="a11y_current_bg">aktuální hodnota glykémie</string>
<string name="a11_correction_percentage">správný výsledek v %</string>
<string name="a11_correction_units">správný výsledek s jednotkami</string>
<string name="not_available_full">Nedostupný</string> <string name="not_available_full">Nedostupný</string>
<string name="a11y_high">vysoká</string>
<string name="a11y_inrange">v rozsahu</string>
<string name="a11y_low">nízká</string>
<string name="a11y_arrow_double_down">rychle klesající</string>
<string name="a11y_arrow_single_down">klesající</string>
<string name="a11y_arrow_forty_five_down">pomalu klesající</string>
<string name="a11y_arrow_flat">stabilní</string>
<string name="a11y_arrow_forty_five_up">pomalu stoupající</string>
<string name="a11y_arrow_single_up">stoupající</string>
<string name="a11y_arrow_double_up">rychle stoupající</string>
<string name="a11y_arrow_none">žádný</string>
<string name="a11y_arrow_unknown">neznámý</string>
<string name="a11y_graph">graf</string>
<string name="a11y_bg_quality">kvalita glykémií</string>
<string name="a11y_bg_quality_recalculated">přepočítáno</string>
<string name="a11y_bg_quality_doubles">dvojité položky</string>
<string name="a11y_insulin_label">inzulín</string>
<string name="a11y_blood_glucose">glykémie</string>
<string name="a11y_bg_outdated">zastaralé</string>
<string name="a11y_carb_reminder">nastavit připomenutí</string>
<string name="a11y_add_new_profile">přidat nový profil</string>
<string name="a11y_clone_profile">klonovat aktuální profil</string>
<string name="a11y_delete_current_profile">odstranit aktuální profil</string>
<string name="a11y_add_new_to_list">přidat nový do seznamu</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Dočasný cíl neznámá předvolba: %1$s</string>
<string name="wear_action_tempt_cancel_message">Zrušení běžícího dočasného cíle?</string>
<string name="wear_action_tempt_unit_error">Různé jednotky používané na hodinkách a telefonu!</string>
<string name="wear_action_tempt_zero_message">Nulový dočasný cíl - zrušení běžícího dočasného cíle?</string>
<string name="wear_action_tempt_min_bg_error">Minimální glykémie mimo dosah!</string>
<string name="wear_action_tempt_max_bg_error">Maximální glykémie mimo dosah!</string>
<string name="wear_action_tempt_manual_range_message">Doč. cíl:\nMin: %1$s\nMax: %2$s\nTrvání: %3$s</string>
<string name="wear_action_tempt_manual_message">Doč. cíl:\nCíl: %1$s\nTrvání: %2$s</string>
<string name="wear_action_tempt_preset_message">Doč. cíl:\nDůvod: %1$s\nCíl: %2$s\nTrvání: %3$s</string>
<string name="quick_wizard_message">Rychlý bolus: %1$s\nInzulín: %2$.2fU\nSacharidy: %3$dg</string>
<string name="wizard_result">Kalkulátor: \nInzulín: %1$.2fU\nSacharidy: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Zobrazit záznam na zařízení:</string>
<string name="quick_wizard_not_available">Vybraný rychlý bolus již není k dispozici, obnovte prosím dlaždici</string>
<string name="wizard_no_actual_bg">Žádná aktuální glykémie k výpočtu!</string>
<string name="wizard_no_active_profile">Není nastaven žádný aktivní profil!</string>
<string name="wizard_no_cob">Neznámý COB! Chybějící glykémie nebo nedávný restart aplikace?</string>
<string name="wizard_carbs_constraint">Sacharidy mimo povolený rozsah!</string>
<string name="wizard_explain_calc">Kalk (IC: %2$.1f, ISF: %2$.1f) z:\"</string>
<string name="wizard_explain_carbs">Sacharidy: %1$.2fU</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fU</string>
<string name="wizard_explain_bg">Glykémie: %1$.2fU</string>
<string name="wizard_explain_basal_iob">Bazální IOB: %1$.2fU</string>
<string name="wizard_explain_bolus_iob">Bolusové IOB: %1$.2fU</string>
<string name="wizard_explain_superbolus">Superbolus: %1$.2fU</string>
<string name="wizard_explain_trend">15\' trend: %1$.2fU</string>
<string name="wizard_explain_percent">Procentuální hodnota: %1$.2fU x %2$d%% ≈ %3$.2fU</string>
<string name="wizard_constraint_bolus_size">Inzulím mimo povolený rozsah!\nNelze podat %1$.2fU</string>
<string name="wizard_explain_tt">Doč. cíl: %1$s</string>
<string name="wizard_explain_tt_to">%1$s %2$s</string>
<string name="wizard_pump_not_available">Pumpa není k dispozici!</string>
<string name="wear_unknown_action_string">Neznámý příkaz k akci:</string>
<string name="overview_editquickwizard_percentage">Procentní podíl</string>
<string name="app_default">Výchozí nastavení aplikace</string>
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Ur</string> <string name="wear">Ur</string>
<string name="resend_all_data">Send alle data igen</string> <string name="resend_all_data">Send alle data igen</string>
<string name="open_settings_on_wear">Åbn indstillinger på ur</string> <string name="open_settings_on_wear">Åbn indstillinger på ur</string>
<string name="basal_rate">Basal rate:</string>
<string name="basalvaluebelowminimum">Basal værdi under minimum. Profil ikke angivet!</string> <string name="basalvaluebelowminimum">Basal værdi under minimum. Profil ikke angivet!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Sidste BG:</string> <string name="sms_lastbg">Sidste BG:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Profilnavn indeholder punktum.\nDette understøttes ikke af NS.\nProfilen er ikke uploadet til NS.</string> <string name="profilenamecontainsdot">Profilnavn indeholder punktum.\nDette understøttes ikke af NS.\nProfilen er ikke uploadet til NS.</string>
<string name="low_mark_comment">Nedre værdi for målområde (kun visning)</string> <string name="low_mark_comment">Nedre værdi for målområde (kun visning)</string>
<string name="high_mark_comment">Øvre værdi for målområde (kun visning)</string> <string name="high_mark_comment">Øvre værdi for målområde (kun visning)</string>
<string name="age">Alder:</string>
<string name="weight_label">Vægt:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Send</string> <string name="submit">Send</string>
<string name="mostcommonprofile">Mest almindelige profil:</string> <string name="mostcommonprofile">Mest almindelige profil:</string>
@ -900,9 +897,13 @@
<string name="errors">Fejl</string> <string name="errors">Fejl</string>
<string name="ns_sync_slow">Reducer upload hastighed</string> <string name="ns_sync_slow">Reducer upload hastighed</string>
<string name="data_status">BG data status</string> <string name="data_status">BG data status</string>
<string name="statuslights_cannula_age">Indstik alder</string>
<string name="statuslights_patch_pump_age">patch pumpe alder</string>
<string name="patch_pump">Patch pumpe</string>
<string name="recalculated_data_used">Genberegnede data anvendt</string> <string name="recalculated_data_used">Genberegnede data anvendt</string>
<string name="bg_too_close">BG for tæt:\n%1$s\n%2$s</string> <string name="bg_too_close">BG for tæt:\n%1$s\n%2$s</string>
<string name="identification">Identifikation (e-mail, FB eller Discord alias osv.)</string> <string name="identification">Identifikation (e-mail, FB eller Discord alias osv.)</string>
<string name="identification_not_set">Identifikation ikke indstillet i udvikler-tilstand</string> <string name="identification_not_set">Identifikation ikke indstillet i udvikler-tilstand</string>
<string name="not_available_full">Ikke tilgængelig</string> <string name="not_available_full">Ikke tilgængelig</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -246,7 +246,7 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Alle Daten erneut senden</string> <string name="resend_all_data">Alle Daten erneut senden</string>
<string name="open_settings_on_wear">Öffne Einstellungen auf der Uhr</string> <string name="open_settings_on_wear">Öffne Einstellungen auf der Uhr</string>
<string name="basal_rate">Basalrate:</string> <string name="basal_rate">Basalrate</string>
<string name="basalvaluebelowminimum">Wert der Basalrate unter Minimum. Profil nicht gesetzt!</string> <string name="basalvaluebelowminimum">Wert der Basalrate unter Minimum. Profil nicht gesetzt!</string>
<string name="sms_actualbg">BZ:</string> <string name="sms_actualbg">BZ:</string>
<string name="sms_lastbg">Letzter BZ:</string> <string name="sms_lastbg">Letzter BZ:</string>
@ -758,8 +758,8 @@ Unerwartetes Verhalten.</string>
<string name="profilenamecontainsdot">Profilname enthält Punkte.\nDies wird von NS nicht unterstützt.\nProfil wird nicht zu NS hochgeladen.</string> <string name="profilenamecontainsdot">Profilname enthält Punkte.\nDies wird von NS nicht unterstützt.\nProfil wird nicht zu NS hochgeladen.</string>
<string name="low_mark_comment">Unterer Wert des Zielbereichs (nur Anzeige)</string> <string name="low_mark_comment">Unterer Wert des Zielbereichs (nur Anzeige)</string>
<string name="high_mark_comment">Oberer Wert des Zielbereichs (nur Anzeige)</string> <string name="high_mark_comment">Oberer Wert des Zielbereichs (nur Anzeige)</string>
<string name="age">Alter:</string> <string name="age">Alter</string>
<string name="weight_label">Gewicht:</string> <string name="weight_label">Gewicht</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Senden</string> <string name="submit">Senden</string>
<string name="mostcommonprofile">Meistgenutztes Profil:</string> <string name="mostcommonprofile">Meistgenutztes Profil:</string>
@ -900,9 +900,41 @@ Unerwartetes Verhalten.</string>
<string name="errors">Fehler</string> <string name="errors">Fehler</string>
<string name="ns_sync_slow">Hochladen verlangsamen</string> <string name="ns_sync_slow">Hochladen verlangsamen</string>
<string name="data_status">Status BZ-Daten</string> <string name="data_status">Status BZ-Daten</string>
<string name="statuslights_cannula_age">Kanülenalter</string>
<string name="statuslights_patch_pump_age">Alter Patchpumpe</string>
<string name="patch_pump">Patch-Pumpe</string>
<string name="recalculated_data_used">Verwendete Daten neu berechnet</string> <string name="recalculated_data_used">Verwendete Daten neu berechnet</string>
<string name="bg_too_close">BZ zu nah:\n%1$s\n%2$s</string> <string name="bg_too_close">BZ zu nah:\n%1$s\n%2$s</string>
<string name="identification">Identifikation (E-Mail, Facebook oder Discord Nickname)</string> <string name="identification">Identifikation (E-Mail, Facebook oder Discord Nickname)</string>
<string name="identification_not_set">Identifikation im Dev-Modus nicht gesetzt</string> <string name="identification_not_set">Identifikation im Dev-Modus nicht gesetzt</string>
<string name="a11y_dialog">Dialog</string>
<string name="a11y_current_bg">Aktueller Blutzucker</string>
<string name="a11_correction_percentage">korrektes Ergebnis mit %</string>
<string name="a11_correction_units">korrektes Ergebnis mit Einheiten</string>
<string name="not_available_full">Nicht verfügbar</string> <string name="not_available_full">Nicht verfügbar</string>
<string name="a11y_high">hoch</string>
<string name="a11y_inrange">im Zielbereich</string>
<string name="a11y_low">niedrig</string>
<string name="a11y_arrow_double_down">schnell fallend</string>
<string name="a11y_arrow_single_down">fallend</string>
<string name="a11y_arrow_forty_five_down">langsam fallend</string>
<string name="a11y_arrow_flat">stabil</string>
<string name="a11y_arrow_forty_five_up">Langsamer Anstieg</string>
<string name="a11y_arrow_single_up">steigend</string>
<string name="a11y_arrow_double_up">schnell steigend</string>
<string name="a11y_arrow_none">kein(e)</string>
<string name="a11y_arrow_unknown">unbekannt</string>
<string name="a11y_graph">Diagramm</string>
<string name="a11y_bg_quality">BZ-Qualität</string>
<string name="a11y_bg_quality_recalculated">neu berechnet</string>
<string name="a11y_bg_quality_doubles">doppelte Einträge</string>
<string name="a11y_insulin_label">Insulin</string>
<string name="a11y_blood_glucose">Blutzucker</string>
<string name="a11y_bg_outdated">veraltet</string>
<string name="a11y_carb_reminder">Erinnerung einstellen</string>
<string name="a11y_add_new_profile">Neues Profil hinzufügen</string>
<string name="a11y_clone_profile">aktuelles Profil klonen (kopieren)</string>
<string name="a11y_delete_current_profile">aktuelles Profil löschen</string>
<string name="a11y_add_new_to_list">neu zur Liste hinzufügen</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -183,7 +183,6 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Ξαναστείλτε όλα τα Δεδομένα</string> <string name="resend_all_data">Ξαναστείλτε όλα τα Δεδομένα</string>
<string name="open_settings_on_wear">Ρυθμίσεις στο Wear</string> <string name="open_settings_on_wear">Ρυθμίσεις στο Wear</string>
<string name="basal_rate">Βασικός Ρυθμός:</string>
<string name="basalvaluebelowminimum">Τιμή βασικού κάτω από το ελάχιστο. Δεν έχει ρυθμιστεί το προφίλ!</string> <string name="basalvaluebelowminimum">Τιμή βασικού κάτω από το ελάχιστο. Δεν έχει ρυθμιστεί το προφίλ!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Τελευταία BG:</string> <string name="sms_lastbg">Τελευταία BG:</string>
@ -578,4 +577,5 @@
<string name="format_percent">%1$d%%</string> <string name="format_percent">%1$d%%</string>
<string name="unit_minute_short">min</string> <string name="unit_minute_short">min</string>
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<!-- WEAR OS-->
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Sincroniza tus datos con Nightscout</string> <string name="description_ns_client">Sincroniza tus datos con Nightscout</string>
<string name="description_ama">Estado del algoritmo en 2017</string> <string name="description_ama">Estado del algoritmo en 2017</string>
<string name="description_smb">Algoritmo más reciente para usuarios avanzados</string> <string name="description_smb">Algoritmo más reciente para usuarios avanzados</string>
<string name="description_smb_dynamic_isf">Algoritmo más reciente para usuarios avanzados con ISF dinámico/automático</string>
<string name="description_overview">Muestra el estado actual de tu lazo y los botones para las acciones más usadas</string> <string name="description_overview">Muestra el estado actual de tu lazo y los botones para las acciones más usadas</string>
<string name="description_persistent_notification">Muestra una notificación en curso con un breve resumen de lo que está haciendo tu lazo</string> <string name="description_persistent_notification">Muestra una notificación en curso con un breve resumen de lo que está haciendo tu lazo</string>
<string name="description_profile_local">Define un perfil que esté disponible cuando tengas una desconexión</string> <string name="description_profile_local">Define un perfil que esté disponible cuando tengas una desconexión</string>
@ -224,7 +225,7 @@
<string name="overview_editquickwizard_valid">Validar:</string> <string name="overview_editquickwizard_valid">Validar:</string>
<string name="overview_editquickwizardlistactivity_add">Añadir</string> <string name="overview_editquickwizardlistactivity_add">Añadir</string>
<string name="overview_quickwizard_item_edit_button">Editar</string> <string name="overview_quickwizard_item_edit_button">Editar</string>
<string name="mealbolus">BOLO</string> <string name="mealbolus">COMIDA</string>
<string name="correctionbous">Corrección</string> <string name="correctionbous">Corrección</string>
<string name="actions">Acciones</string> <string name="actions">Acciones</string>
<string name="ns_upload_only">(PELIGROSO DESHABILITAR) Sólo subida a Nightscout</string> <string name="ns_upload_only">(PELIGROSO DESHABILITAR) Sólo subida a Nightscout</string>
@ -246,7 +247,7 @@
<string name="wear">Reloj</string> <string name="wear">Reloj</string>
<string name="resend_all_data">Reenviar todos los datos</string> <string name="resend_all_data">Reenviar todos los datos</string>
<string name="open_settings_on_wear">Abrir ajustes en el reloj</string> <string name="open_settings_on_wear">Abrir ajustes en el reloj</string>
<string name="basal_rate">Ratio Basal:</string> <string name="basal_rate">Tasa Basal</string>
<string name="basalvaluebelowminimum">Valor basal por debajo del mínimo. Perfil no establecido.</string> <string name="basalvaluebelowminimum">Valor basal por debajo del mínimo. Perfil no establecido.</string>
<string name="sms_actualbg">Glucosa:</string> <string name="sms_actualbg">Glucosa:</string>
<string name="sms_lastbg">Última Glucosa:</string> <string name="sms_lastbg">Última Glucosa:</string>
@ -267,6 +268,7 @@
<string name="configbuilder_shortname">CONF</string> <string name="configbuilder_shortname">CONF</string>
<string name="loop_shortname">LAZO</string> <string name="loop_shortname">LAZO</string>
<string name="oaps_shortname">OAPS</string> <string name="oaps_shortname">OAPS</string>
<string name="dynisf_shortname">DYNISF</string>
<string name="localprofile_shortname">PERFIL</string> <string name="localprofile_shortname">PERFIL</string>
<string name="overview_shortname">INICIO</string> <string name="overview_shortname">INICIO</string>
<string name="virtualpump_shortname">BOMBAV</string> <string name="virtualpump_shortname">BOMBAV</string>
@ -434,6 +436,7 @@
<string name="ns_localbroadcasts">Habilita las transmisiones a otras aplicaciones (como xDrip+). ¡No lo habilites si tienes más de una instancia de AAPS o NSClient instaladas!</string> <string name="ns_localbroadcasts">Habilita las transmisiones a otras aplicaciones (como xDrip+). ¡No lo habilites si tienes más de una instancia de AAPS o NSClient instaladas!</string>
<string name="ns_localbroadcasts_title">Habilitar la emisión de mensajes localmente.</string> <string name="ns_localbroadcasts_title">Habilitar la emisión de mensajes localmente.</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB ISF Dinámico</string>
<string name="enableuam">Activar UAM</string> <string name="enableuam">Activar UAM</string>
<string name="enablesmb">Activar SMB</string> <string name="enablesmb">Activar SMB</string>
<string name="enablesmb_summary">Usar microbolos en lugar de basales temporales, para corregir más rápidamente</string> <string name="enablesmb_summary">Usar microbolos en lugar de basales temporales, para corregir más rápidamente</string>
@ -502,6 +505,7 @@
<string name="negativeonly">Solo negativo</string> <string name="negativeonly">Solo negativo</string>
<string name="overview_editquickwizard_usecob">Cálculo COB</string> <string name="overview_editquickwizard_usecob">Cálculo COB</string>
<string name="overview_editquickwizard_usetemptarget">Cálculo objetivo temporal</string> <string name="overview_editquickwizard_usetemptarget">Cálculo objetivo temporal</string>
<string name="overview_editquickwizard_usepercentage">Cálculo de porcentaje</string>
<string name="loopenabled">Lazo activado</string> <string name="loopenabled">Lazo activado</string>
<string name="apsselected">APS seleccionado</string> <string name="apsselected">APS seleccionado</string>
<string name="nsclienthaswritepermission">NSClient tiene permiso para escribir</string> <string name="nsclienthaswritepermission">NSClient tiene permiso para escribir</string>
@ -757,8 +761,8 @@
<string name="profilenamecontainsdot">El nombre de perfil contiene puntos.\nEsto no está soportado por NS.\nEl perfil no se carga en NS.</string> <string name="profilenamecontainsdot">El nombre de perfil contiene puntos.\nEsto no está soportado por NS.\nEl perfil no se carga en NS.</string>
<string name="low_mark_comment">Valor de glucosa baja (sólo visualización)</string> <string name="low_mark_comment">Valor de glucosa baja (sólo visualización)</string>
<string name="high_mark_comment">Valor de glucosa alta (sólo visualización)</string> <string name="high_mark_comment">Valor de glucosa alta (sólo visualización)</string>
<string name="age">Edad:</string> <string name="age">Edad</string>
<string name="weight_label">Peso:</string> <string name="weight_label">Peso</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Enviar</string> <string name="submit">Enviar</string>
<string name="mostcommonprofile">Perfil más común:</string> <string name="mostcommonprofile">Perfil más común:</string>
@ -900,9 +904,74 @@
<string name="errors">Errores</string> <string name="errors">Errores</string>
<string name="ns_sync_slow">Ralentizar subidas</string> <string name="ns_sync_slow">Ralentizar subidas</string>
<string name="data_status">Estado de datos de glucosa</string> <string name="data_status">Estado de datos de glucosa</string>
<string name="statuslights_cannula_age">edad de la cánula</string>
<string name="statuslights_patch_pump_age">edad del parche de la bomba</string>
<string name="patch_pump">Bomba parche</string>
<string name="recalculated_data_used">Datos recalculados utilizados</string> <string name="recalculated_data_used">Datos recalculados utilizados</string>
<string name="bg_too_close">Datos de glucosa demasiado cercanos:\n%1$s\n%2$s</string> <string name="bg_too_close">Datos de glucosa demasiado cercanos:\n%1$s\n%2$s</string>
<string name="identification">Identificación (correo electrónico, FB, nick de Discord, etc.)</string> <string name="identification">Identificación (correo electrónico, FB, nick de Discord, etc.)</string>
<string name="identification_not_set">Identificación no establecida en el modo dev</string> <string name="identification_not_set">Identificación no establecida en el modo dev</string>
<string name="a11y_dialog">diálogo</string>
<string name="a11y_current_bg">glucosa en sangre actual</string>
<string name="a11_correction_percentage">resultado correcto con %</string>
<string name="a11_correction_units">corregir resultado con unidades</string>
<string name="not_available_full">No disponible</string> <string name="not_available_full">No disponible</string>
<string name="a11y_high">alto</string>
<string name="a11y_inrange">en rango</string>
<string name="a11y_low">bajo</string>
<string name="a11y_arrow_double_down">bajando rápido</string>
<string name="a11y_arrow_single_down">bajando</string>
<string name="a11y_arrow_forty_five_down">bajando despacio</string>
<string name="a11y_arrow_flat">estable</string>
<string name="a11y_arrow_forty_five_up">subiendo despacio</string>
<string name="a11y_arrow_single_up">subiendo</string>
<string name="a11y_arrow_double_up">subiendo rápido</string>
<string name="a11y_arrow_none">ninguno</string>
<string name="a11y_arrow_unknown">desconocido</string>
<string name="a11y_graph">gráfico</string>
<string name="a11y_bg_quality">calidad de glucosa en sangre</string>
<string name="a11y_bg_quality_recalculated">recalculado</string>
<string name="a11y_bg_quality_doubles">entradas dobles</string>
<string name="a11y_insulin_label">insulina</string>
<string name="a11y_blood_glucose">glucosa en sangre</string>
<string name="a11y_bg_outdated">desactualizado</string>
<string name="a11y_carb_reminder">establecer recordatorio</string>
<string name="a11y_add_new_profile">añadir nuevo perfil</string>
<string name="a11y_clone_profile">clonar el perfil actual</string>
<string name="a11y_delete_current_profile">borrar el perfil actual</string>
<string name="a11y_add_new_to_list">añadir nuevo a la lista</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Objetivo Temporal preestablecido desconocido: %1$s</string>
<string name="wear_action_tempt_cancel_message">¿Cancelar la ejecución del objetivo temporal?</string>
<string name="wear_action_tempt_unit_error">¡Diferentes unidades usadas en reloj y en el teléfono!</string>
<string name="wear_action_tempt_zero_message">Objetivo Temporal Zero - ¿Cancelar el Objetivo Temporal en ejecución?</string>
<string name="wear_action_tempt_min_bg_error">¡Glucosa mínima fuera de rango!</string>
<string name="wear_action_tempt_max_bg_error">¡Glucosa máxima fuera de rango!</string>
<string name="wear_action_tempt_manual_range_message">Objetivo temporal:\nMin: %1$s\nMax: %2$s\nDuración: %3$s</string>
<string name="wear_action_tempt_manual_message">Objetivo temporal:\nObjetivo: %1$s\nDuración: %2$s</string>
<string name="wear_action_tempt_preset_message">ObjetivoTemporal:\Razón: %1$s\nObjetivo: %2$s\nDuración: %3$s</string>
<string name="quick_wizard_message">Asistente Rápido: %1$s\nInsulina: %2$.2fU\nCarbohidratos: %3$dg</string>
<string name="wizard_result">Calc. Asistente:\nInsulina: %1$.2fU\nCarbohidratos: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Mostrar entrada en dispositivo:</string>
<string name="quick_wizard_not_available">El asistente rápido seleccionado ya no está disponible, por favor actualice su mosaico</string>
<string name="wizard_no_actual_bg">¡No hay valor de glucosa reciente en el que basar el cálculo!</string>
<string name="wizard_no_active_profile">¡No hay perfil activo!</string>
<string name="wizard_no_cob">COB desconocido! ¿Valor de glucosa ausente o reincio reciente de la aplicación?</string>
<string name="wizard_carbs_constraint">¡Violación de restricción de carbohidratos!</string>
<string name="wizard_explain_calc">Calc (CI: %2$.1f, ISF: %2$.1f) desde:\"</string>
<string name="wizard_explain_carbs">Carbohidratos: %1$.2fU</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fU</string>
<string name="wizard_explain_bg">BG: %1$.2fU</string>
<string name="wizard_explain_basal_iob">Basal IOB: %1$.2fU</string>
<string name="wizard_explain_bolus_iob">Bolo IOB: %1$.2fU</string>
<string name="wizard_explain_superbolus">Superbolo: %1$.2fU</string>
<string name="wizard_explain_trend">Tendencia 15\': %1$.2fU</string>
<string name="wizard_explain_percent">Porcentaje: %1$.2fU x %2$d%% ≈ %3$.2fU</string>
<string name="wizard_constraint_bolus_size">¡Violación de restricciones de insulina!\nNo se puede entregar %1$.2fU</string>
<string name="wizard_explain_tt">BasalT: %1$s</string>
<string name="wizard_explain_tt_to">%1$s a %2$s</string>
<string name="wizard_pump_not_available">¡No hay bomba disponible!</string>
<string name="wear_unknown_action_string">Comando de acción desconocido:</string>
<string name="overview_editquickwizard_percentage">Porcentaje</string>
<string name="app_default">Aplicación por defecto</string>
</resources> </resources>

View file

@ -247,7 +247,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Renvoyer toutes les données</string> <string name="resend_all_data">Renvoyer toutes les données</string>
<string name="open_settings_on_wear">Afficher les Paramètres sur la Montre</string> <string name="open_settings_on_wear">Afficher les Paramètres sur la Montre</string>
<string name="basal_rate">Débit Basal :</string> <string name="basal_rate">Débit de Basal</string>
<string name="basalvaluebelowminimum">Le débit Basal est inférieur au minimum autorisé. Profil non accepté !</string> <string name="basalvaluebelowminimum">Le débit Basal est inférieur au minimum autorisé. Profil non accepté !</string>
<string name="sms_actualbg">G:</string> <string name="sms_actualbg">G:</string>
<string name="sms_lastbg">Dernière G:</string> <string name="sms_lastbg">Dernière G:</string>
@ -503,6 +503,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="negativeonly">Seulement négatif</string> <string name="negativeonly">Seulement négatif</string>
<string name="overview_editquickwizard_usecob">Calcul GA</string> <string name="overview_editquickwizard_usecob">Calcul GA</string>
<string name="overview_editquickwizard_usetemptarget">Cible temporaire</string> <string name="overview_editquickwizard_usetemptarget">Cible temporaire</string>
<string name="overview_editquickwizard_usepercentage">Calcul du pourcentage</string>
<string name="loopenabled">Boucle activée</string> <string name="loopenabled">Boucle activée</string>
<string name="apsselected">APS Sélectionné</string> <string name="apsselected">APS Sélectionné</string>
<string name="nsclienthaswritepermission">NSClient a la permission d\'écriture</string> <string name="nsclienthaswritepermission">NSClient a la permission d\'écriture</string>
@ -758,8 +759,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="profilenamecontainsdot">Le nom du profil contient des points.\nCe n\'est pas pris en charge par NS.\nLe profil n\'est pas remonté dans NS.</string> <string name="profilenamecontainsdot">Le nom du profil contient des points.\nCe n\'est pas pris en charge par NS.\nLe profil n\'est pas remonté dans NS.</string>
<string name="low_mark_comment">Valeur inférieure dans la plage (affichage uniquement)</string> <string name="low_mark_comment">Valeur inférieure dans la plage (affichage uniquement)</string>
<string name="high_mark_comment">Valeur supérieure dans la plage (affichage uniquement)</string> <string name="high_mark_comment">Valeur supérieure dans la plage (affichage uniquement)</string>
<string name="age">Âge :</string> <string name="age">Âge </string>
<string name="weight_label">Poids :</string> <string name="weight_label">Poids </string>
<string name="id">ID :</string> <string name="id">ID :</string>
<string name="submit">Envoyer</string> <string name="submit">Envoyer</string>
<string name="mostcommonprofile">Profil le plus courant :</string> <string name="mostcommonprofile">Profil le plus courant :</string>
@ -900,9 +901,74 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="errors">Erreurs</string> <string name="errors">Erreurs</string>
<string name="ns_sync_slow">Ralentir les téléchargements</string> <string name="ns_sync_slow">Ralentir les téléchargements</string>
<string name="data_status">État des données Gly</string> <string name="data_status">État des données Gly</string>
<string name="statuslights_cannula_age">âge canule</string>
<string name="statuslights_patch_pump_age">âge pompe patch</string>
<string name="patch_pump">Pompe patch</string>
<string name="recalculated_data_used">Données recalculées utilisées</string> <string name="recalculated_data_used">Données recalculées utilisées</string>
<string name="bg_too_close">Gly trop proche :\n%1$s\n%2$s</string> <string name="bg_too_close">Gly trop proche :\n%1$s\n%2$s</string>
<string name="identification">Identification (email, FB ou pseudo dans Discord, etc)</string> <string name="identification">Identification (email, FB ou pseudo dans Discord, etc)</string>
<string name="identification_not_set">Identification non définie en mode dev</string> <string name="identification_not_set">Identification non définie en mode dev</string>
<string name="a11y_dialog">dialogue</string>
<string name="a11y_current_bg">glycémie actuelle</string>
<string name="a11_correction_percentage">corriger le résultat avec le %</string>
<string name="a11_correction_units">corriger le résultat avec les unités</string>
<string name="not_available_full">Non disponible</string> <string name="not_available_full">Non disponible</string>
<string name="a11y_high">haut</string>
<string name="a11y_inrange">dans la plage</string>
<string name="a11y_low">bas</string>
<string name="a11y_arrow_double_down">en baisse rapide</string>
<string name="a11y_arrow_single_down">en baisse</string>
<string name="a11y_arrow_forty_five_down">en baisse lente</string>
<string name="a11y_arrow_flat">stable</string>
<string name="a11y_arrow_forty_five_up">en hausse lente</string>
<string name="a11y_arrow_single_up">en hausse</string>
<string name="a11y_arrow_double_up">en hausse rapide</string>
<string name="a11y_arrow_none">aucun</string>
<string name="a11y_arrow_unknown">inconnu</string>
<string name="a11y_graph">graphique</string>
<string name="a11y_bg_quality">qualité de la glycémie</string>
<string name="a11y_bg_quality_recalculated">recalculé</string>
<string name="a11y_bg_quality_doubles">entrées doubles</string>
<string name="a11y_insulin_label">insuline</string>
<string name="a11y_blood_glucose">glycémie</string>
<string name="a11y_bg_outdated">obsolète</string>
<string name="a11y_carb_reminder">définir un rappel</string>
<string name="a11y_add_new_profile">ajouter un nouveau profil</string>
<string name="a11y_clone_profile">dupliquer le profil actuel</string>
<string name="a11y_delete_current_profile">supprimer le profil actuel</string>
<string name="a11y_add_new_to_list">ajouter un nouveau à la liste</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Préréglage inconnu de la cible temporaire : %1$s</string>
<string name="wear_action_tempt_cancel_message">Annuler l\'exécution des cibles Temp?</string>
<string name="wear_action_tempt_unit_error">Différentes unités utilisées sur la montre et le téléphone!</string>
<string name="wear_action_tempt_zero_message">Pas de Cible Temp - annuler la cible temporaire en cours?</string>
<string name="wear_action_tempt_min_bg_error">Gly mini hors limite!</string>
<string name="wear_action_tempt_max_bg_error">Gly maxi hors limite!</string>
<string name="wear_action_tempt_manual_range_message">Cible temporaire:\nMin: %1$s\nMax : %2$s\nDurée : %3$s</string>
<string name="wear_action_tempt_manual_message">Cible temporaire:\nCible: %1$s\nDurée: %2$s</string>
<string name="wear_action_tempt_preset_message">Cible temporaire:\nRaison: %1$s\nCible : %2$s\nDurée : %3$s</string>
<string name="quick_wizard_message">Assistant: %1$s\nInsuline : %2$.2fU\nGlucides : %3$dg</string>
<string name="wizard_result">Assistant Calc :\nInsuline : %1$.2fU\nGlucides : %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Afficher l\'entrée sur l\'appareil :</string>
<string name="quick_wizard_not_available">L\'assistant rapide sélectionné n\'est plus disponible, veuillez actualiser l\'écran</string>
<string name="wizard_no_actual_bg">Pas de glycémie récente pour calculer !</string>
<string name="wizard_no_active_profile">Aucun profil activé !</string>
<string name="wizard_no_cob">GA inconnu! glycémie manquante ou démarrage récent de l\'application ?</string>
<string name="wizard_carbs_constraint">Violation de contrainte des glucides!</string>
<string name="wizard_explain_calc">Calcul (G/I: %2$.1f, SI: %2$.1f) de:\"</string>
<string name="wizard_explain_carbs">Glucides : %1$.2fU</string>
<string name="wizard_explain_cob">GA: %1$.0fg %2$.2fU</string>
<string name="wizard_explain_bg">Gly: %1$.2fU</string>
<string name="wizard_explain_basal_iob">Basal IA: %1$.2fU</string>
<string name="wizard_explain_bolus_iob">Bolus IA: %1$.2fU</string>
<string name="wizard_explain_superbolus">Superbolus : %1$.2fU</string>
<string name="wizard_explain_trend">tendance 15\': %1$.2fU</string>
<string name="wizard_explain_percent">Pourcentage : %1$.2fU x %2$d%% ≈ %3$.2fU</string>
<string name="wizard_constraint_bolus_size">Violation de contrainte d\'insuline!\nImpossible de délivrer %1$.2fU</string>
<string name="wizard_explain_tt">Cible Temp: %1$s</string>
<string name="wizard_explain_tt_to">%1$s vers %2$s</string>
<string name="wizard_pump_not_available">Aucune pompe disponible!</string>
<string name="wear_unknown_action_string">Commande inconnue :</string>
<string name="overview_editquickwizard_percentage">Pourcentage</string>
<string name="app_default">Application par défaut</string>
</resources> </resources>

View file

@ -78,7 +78,6 @@
<string name="units_colon">Aonaid:</string> <string name="units_colon">Aonaid:</string>
<string name="units">Aonaid</string> <string name="units">Aonaid</string>
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="basal_rate">Bunaidh ráta:</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">GF deiridh:</string> <string name="sms_lastbg">GF deiridh:</string>
<string name="mdi">MDI</string> <string name="mdi">MDI</string>
@ -186,7 +185,7 @@
<string name="dia_short">DIA</string> <string name="dia_short">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="age">Aois:</string>
<string name="randombg_short">BG</string> <string name="randombg_short">BG</string>
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<!-- WEAR OS-->
</resources> </resources>

View file

@ -5,4 +5,5 @@
<!-- <string name="ja_lang" translatable="false">Japanese</string> --> <!-- <string name="ja_lang" translatable="false">Japanese</string> -->
<string name="ns_wifi_ssids">WiFi SSID</string> <string name="ns_wifi_ssids">WiFi SSID</string>
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<!-- WEAR OS-->
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Smartwatch</string> <string name="wear">Smartwatch</string>
<string name="resend_all_data">Invia di nuovo tutti i dati</string> <string name="resend_all_data">Invia di nuovo tutti i dati</string>
<string name="open_settings_on_wear">Apri impostazioni sullo smartwatch</string> <string name="open_settings_on_wear">Apri impostazioni sullo smartwatch</string>
<string name="basal_rate">Velocità basale:</string>
<string name="basalvaluebelowminimum">Valore basale inferiore al minimo. Profilo non impostato!</string> <string name="basalvaluebelowminimum">Valore basale inferiore al minimo. Profilo non impostato!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Ultimo BG:</string> <string name="sms_lastbg">Ultimo BG:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Il nome profilo contiene dei punti.\nQuesto non è supportato da NS.\nIl profilo non viene caricato in NS.</string> <string name="profilenamecontainsdot">Il nome profilo contiene dei punti.\nQuesto non è supportato da NS.\nIl profilo non viene caricato in NS.</string>
<string name="low_mark_comment">Valore più basso per l\'intervallo di visualizzazione dell\'area \"in range\"</string> <string name="low_mark_comment">Valore più basso per l\'intervallo di visualizzazione dell\'area \"in range\"</string>
<string name="high_mark_comment">Valore più alto per l\'intervallo di visualizzazione dell\'area \"in range\"</string> <string name="high_mark_comment">Valore più alto per l\'intervallo di visualizzazione dell\'area \"in range\"</string>
<string name="age">Età:</string>
<string name="weight_label">Peso:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Invia</string> <string name="submit">Invia</string>
<string name="mostcommonprofile">Profilo più comune:</string> <string name="mostcommonprofile">Profilo più comune:</string>
@ -905,4 +902,5 @@
<string name="identification">Identificazione (email, nick Discord o FB, etc)</string> <string name="identification">Identificazione (email, nick Discord o FB, etc)</string>
<string name="identification_not_set">Identificazione non impostata in modalità dev</string> <string name="identification_not_set">Identificazione non impostata in modalità dev</string>
<string name="not_available_full">Non disponibile</string> <string name="not_available_full">Non disponibile</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">מסנכרן את נתוניכם עם Nightscout</string> <string name="description_ns_client">מסנכרן את נתוניכם עם Nightscout</string>
<string name="description_ama">הישאר עם האלגוריתם של 2017</string> <string name="description_ama">הישאר עם האלגוריתם של 2017</string>
<string name="description_smb">האלגוריתם העדכני ביותר, עבור משתמשים מתקדמים בלבד</string> <string name="description_smb">האלגוריתם העדכני ביותר, עבור משתמשים מתקדמים בלבד</string>
<string name="description_smb_dynamic_isf">האלגוריתם העדכני ביותר, נועד למשתמשים מתקדמים עם רגישות (ISF) דינאמית\\אוטומטית</string>
<string name="description_overview">מציג את המצב הנוכחי של הלולאה ולחצני פעולות שימושיות</string> <string name="description_overview">מציג את המצב הנוכחי של הלולאה ולחצני פעולות שימושיות</string>
<string name="description_persistent_notification">מציג הודעה קבועה עם סקירה קצרה של מה שהלולאה שלכם עושה</string> <string name="description_persistent_notification">מציג הודעה קבועה עם סקירה קצרה של מה שהלולאה שלכם עושה</string>
<string name="description_profile_local">הגדירו פרופיל שזמין באופן לא מקוון.</string> <string name="description_profile_local">הגדירו פרופיל שזמין באופן לא מקוון.</string>
@ -246,7 +247,6 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">שלח מחדש את כל הנתונים</string> <string name="resend_all_data">שלח מחדש את כל הנתונים</string>
<string name="open_settings_on_wear">פתיחת הגדרות Wear</string> <string name="open_settings_on_wear">פתיחת הגדרות Wear</string>
<string name="basal_rate">מינונים בזאליים:</string>
<string name="basalvaluebelowminimum">ערך הבסיס מתחת למינימום. פרופיל אינו מוגדר!</string> <string name="basalvaluebelowminimum">ערך הבסיס מתחת למינימום. פרופיל אינו מוגדר!</string>
<string name="sms_actualbg">ערכי סוכר בדם:</string> <string name="sms_actualbg">ערכי סוכר בדם:</string>
<string name="sms_lastbg">ערכי סוכר אחרונים:</string> <string name="sms_lastbg">ערכי סוכר אחרונים:</string>
@ -260,13 +260,14 @@
<string name="array_of_elements">מערך של %1$d אלמנטים. \n ערך נוכחי:</string> <string name="array_of_elements">מערך של %1$d אלמנטים. \n ערך נוכחי:</string>
<string name="openapsma_autosensdata_label">נתוני חישוב רגישות אוטו\'</string> <string name="openapsma_autosensdata_label">נתוני חישוב רגישות אוטו\'</string>
<string name="openapsma_scriptdebugdata_label">תיקון באגים בסקריפט</string> <string name="openapsma_scriptdebugdata_label">תיקון באגים בסקריפט</string>
<string name="openapsama_useautosens">אפשר חישוב רגישות אוטומטית (Autosens)</string> <string name="openapsama_useautosens">אפשר חישוב רגישות אוטומטי (Autosens)</string>
<string name="refresheventsfromnightscout">רענון אירועים מנייטסקאוט</string> <string name="refresheventsfromnightscout">רענון אירועים מנייטסקאוט</string>
<string name="deletefuturetreatments">מחיקת טיפולים עתידיים</string> <string name="deletefuturetreatments">מחיקת טיפולים עתידיים</string>
<string name="actions_shortname">ACT</string> <string name="actions_shortname">ACT</string>
<string name="configbuilder_shortname">CONF</string> <string name="configbuilder_shortname">CONF</string>
<string name="loop_shortname">לולאה</string> <string name="loop_shortname">לולאה</string>
<string name="oaps_shortname">OAPS</string> <string name="oaps_shortname">OAPS</string>
<string name="dynisf_shortname">DynISF</string>
<string name="localprofile_shortname">LP</string> <string name="localprofile_shortname">LP</string>
<string name="overview_shortname">בית</string> <string name="overview_shortname">בית</string>
<string name="virtualpump_shortname">VPUMP</string> <string name="virtualpump_shortname">VPUMP</string>
@ -280,8 +281,8 @@
<string name="profile">פרופיל</string> <string name="profile">פרופיל</string>
<string name="openapsama_max_daily_safety_multiplier_summary">ערך ברירת מחדל: 3 מנגנון הגנה עיקרי של OpenAPS. מגביל את המינון הבזאלי לעד פי 3 מהמינון הבזאלי הגבוה ביותר שהוגדר. ברוב המקרים אין צורך לשנות ערך זה, אך יש לזכור שזו המשמעות של “3x max daily; 4x current” בדיון על מנגנוני הגנה.</string> <string name="openapsama_max_daily_safety_multiplier_summary">ערך ברירת מחדל: 3 מנגנון הגנה עיקרי של OpenAPS. מגביל את המינון הבזאלי לעד פי 3 מהמינון הבזאלי הגבוה ביותר שהוגדר. ברוב המקרים אין צורך לשנות ערך זה, אך יש לזכור שזו המשמעות של “3x max daily; 4x current” בדיון על מנגנוני הגנה.</string>
<string name="openapsama_current_basal_safety_multiplier_summary">ערך ברירת מחדל: 4 זהו החצי השני של מנגנון הגנה עיקרי של OpenAPS, והחצי השני של \"3x max daily; 4x current\" במנגנוני ההגנה. המשמעות היא שהמינון הבזאלי, ללא קשר למקסימום שנקבע במשאבה, אינו יכול להיות גבוה יותר ממספר זה כפול הקצב הבזאלי הנוכחי. מיועד למנוע כניסה לתחומים מסוכנים ע\"י קביעת קצב בזאלי גבוה לפני הבנה של פעולת האלגוריתם. שוב: ברירת המחדל היא x4, רוב המשתמשים לעולם אינם צריכים לשנות ערך זה ואם הם מרגישים שמנגנון הגנה זה מפריע להם, הפתרון הוא בשינוי של הגדרות אחרות.</string> <string name="openapsama_current_basal_safety_multiplier_summary">ערך ברירת מחדל: 4 זהו החצי השני של מנגנון הגנה עיקרי של OpenAPS, והחצי השני של \"3x max daily; 4x current\" במנגנוני ההגנה. המשמעות היא שהמינון הבזאלי, ללא קשר למקסימום שנקבע במשאבה, אינו יכול להיות גבוה יותר ממספר זה כפול הקצב הבזאלי הנוכחי. מיועד למנוע כניסה לתחומים מסוכנים ע\"י קביעת קצב בזאלי גבוה לפני הבנה של פעולת האלגוריתם. שוב: ברירת המחדל היא x4, רוב המשתמשים לעולם אינם צריכים לשנות ערך זה ואם הם מרגישים שמנגנון הגנה זה מפריע להם, הפתרון הוא בשינוי של הגדרות אחרות.</string>
<string name="openapsama_autosens_max_summary">ערך ברירת מחדל: 1.2\nזוהי מגבלת המכפיל של autosens (ובקרוב autotune) שמגדירה 20%% כיחס מקסימלי של autosens, אשר קובע בתורו את גובה הבזאלי המקסימלי, גובהו המינימלי של יחס התיקון, ואת המינימום של ערכי המטרה האפשריים.</string> <string name="openapsama_autosens_max_summary">ערך ברירת מחדל: 1.2\nזוהי מגבלת המכפיל של Autosens (ובקרוב Autotune) שמגדירה 20% כיחס מקסימלי של autosens, אשר קובע בתורו את גובה הבזאלי המקסימלי, גובהו המינימלי של יחס התיקון, ואת המינימום של ערכי המטרה האפשריים.</string>
<string name="openapsama_autosens_min_summary">ערך ברירת מחדל: 0.7\nבצד השני של מגבלות הבטיחות של autosens, ערך זה מגביל את יכולתו של autosens להוריד את הערכים הבזאליים ועד כמה יכול להעלות את יחס התיקון ואת ערכי מטרת הסוכר בדם.</string> <string name="openapsama_autosens_min_summary">ערך ברירת מחדל: 0.7\nבצד השני של מגבלות הבטיחות של Autosens, ערך זה מגביל את יכולתו של autosens להוריד את הערכים הבזאליים ועד כמה יכול להעלות את יחס התיקון ואת ערכי מטרת הסוכר בדם.</string>
<string name="openapsama_autosens_adjusttargets">וויסות ערכי מטרה ע\"י Autosens</string> <string name="openapsama_autosens_adjusttargets">וויסות ערכי מטרה ע\"י Autosens</string>
<string name="openapsama_autosens_adjusttargets_summary">ערך ברירת מחדל: התאמה מדויקת\n נועד לאפשר ל-Autosens לשנות את המטרה של ערכי הסוכר, בנוסף ליחס התיקון והבזאלים.</string> <string name="openapsama_autosens_adjusttargets_summary">ערך ברירת מחדל: התאמה מדויקת\n נועד לאפשר ל-Autosens לשנות את המטרה של ערכי הסוכר, בנוסף ליחס התיקון והבזאלים.</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">ערך ברירת מחדל: 2\n מעכב בולוס מופעל אחרי שאתם מזריקים בולוס ארוחה, כך שהלולאה לא תפצה ע\"י בזאלי זמני נמוך אחרי הארוחה. הדוגמה כאן וברירת המחדל היא 2; כך שהגדרה של משך פעילות אינסולין של 3 שעות משמעה שהעיכוב יחלוף בהדרגה בתוך 1.5 שעות (3 ש\' לחלק ל-2).</string> <string name="openapsama_bolussnooze_dia_divisor_summary">ערך ברירת מחדל: 2\n מעכב בולוס מופעל אחרי שאתם מזריקים בולוס ארוחה, כך שהלולאה לא תפצה ע\"י בזאלי זמני נמוך אחרי הארוחה. הדוגמה כאן וברירת המחדל היא 2; כך שהגדרה של משך פעילות אינסולין של 3 שעות משמעה שהעיכוב יחלוף בהדרגה בתוך 1.5 שעות (3 ש\' לחלק ל-2).</string>
@ -434,6 +435,7 @@
<string name="ns_localbroadcasts">אפשר הפצה לאפליקציות אחרות (כגון xDrip). אין להפעיל אם מותקן לכם יותר ממופע אחד של AAPS או NSClient!</string> <string name="ns_localbroadcasts">אפשר הפצה לאפליקציות אחרות (כגון xDrip). אין להפעיל אם מותקן לכם יותר ממופע אחד של AAPS או NSClient!</string>
<string name="ns_localbroadcasts_title">אפשר שידורים מקומיים.</string> <string name="ns_localbroadcasts_title">אפשר שידורים מקומיים.</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB רגישות דינאמית</string>
<string name="enableuam">הפעלת UAM</string> <string name="enableuam">הפעלת UAM</string>
<string name="enablesmb">אפשר SMB</string> <string name="enablesmb">אפשר SMB</string>
<string name="enablesmb_summary">השתמש בסופר מיקרו בולוסים במקום בבזאלי זמני לפעילות מהירה יותר</string> <string name="enablesmb_summary">השתמש בסופר מיקרו בולוסים במקום בבזאלי זמני לפעילות מהירה יותר</string>
@ -757,8 +759,6 @@
<string name="profilenamecontainsdot">שם הפרופיל מכיל נקודות.\nשם כזה אינו נתמך ע\"י Nightscout \n הפרופיל לא הועלה ל-Nightscout.</string> <string name="profilenamecontainsdot">שם הפרופיל מכיל נקודות.\nשם כזה אינו נתמך ע\"י Nightscout \n הפרופיל לא הועלה ל-Nightscout.</string>
<string name="low_mark_comment">ערך נמוך יותר באזור הטווח (הצגה בלבד)</string> <string name="low_mark_comment">ערך נמוך יותר באזור הטווח (הצגה בלבד)</string>
<string name="high_mark_comment">ערך גבוה יותר באזור הטווח (הצגה בלבד)</string> <string name="high_mark_comment">ערך גבוה יותר באזור הטווח (הצגה בלבד)</string>
<string name="age">גיל:</string>
<string name="weight_label">משקל:</string>
<string name="id">מס\' זיהוי:</string> <string name="id">מס\' זיהוי:</string>
<string name="submit">עדכן</string> <string name="submit">עדכן</string>
<string name="mostcommonprofile">הפרופיל הנפוץ ביותר:</string> <string name="mostcommonprofile">הפרופיל הנפוץ ביותר:</string>
@ -900,9 +900,36 @@
<string name="errors">שגיאות</string> <string name="errors">שגיאות</string>
<string name="ns_sync_slow">האט העלאות</string> <string name="ns_sync_slow">האט העלאות</string>
<string name="data_status">מצב נתוני הסוכר</string> <string name="data_status">מצב נתוני הסוכר</string>
<string name="statuslights_cannula_age">גיל הצינורית</string>
<string name="statuslights_patch_pump_age">גיל משאבה</string>
<string name="patch_pump">משאבה ללא צינורית</string>
<string name="recalculated_data_used">משתמש בנתונים מחושבים מחדש</string> <string name="recalculated_data_used">משתמש בנתונים מחושבים מחדש</string>
<string name="bg_too_close">רמת הסוכר קרובה מדי:\n%1$s\n%2$s</string> <string name="bg_too_close">רמת הסוכר קרובה מדי:\n%1$s\n%2$s</string>
<string name="identification">אמצעי זיהוי (מייל, פייסבוק או דיסקורד וכו\')</string> <string name="identification">אמצעי זיהוי (מייל, פייסבוק או דיסקורד וכו\')</string>
<string name="identification_not_set">אמצעי הזיהוי אינו מוגדר במצב מפתחים</string> <string name="identification_not_set">אמצעי הזיהוי אינו מוגדר במצב מפתחים</string>
<string name="a11y_dialog">תיבת דו-שיח</string>
<string name="a11y_current_bg">רמת סוכר נוכחית</string>
<string name="a11_correction_percentage">תיקון עם %</string>
<string name="a11_correction_units">תיקון עם יחידות</string>
<string name="not_available_full">לא זמין</string> <string name="not_available_full">לא זמין</string>
<string name="a11y_high">גבוה</string>
<string name="a11y_inrange">בטווח</string>
<string name="a11y_low">נמוך</string>
<string name="a11y_arrow_double_down">ירידה מהירה</string>
<string name="a11y_arrow_single_down">ירידה</string>
<string name="a11y_arrow_forty_five_down">ירידה איטית</string>
<string name="a11y_arrow_flat">יציב</string>
<string name="a11y_arrow_forty_five_up">עלייה איטית</string>
<string name="a11y_arrow_single_up">עלייה</string>
<string name="a11y_arrow_double_up">עלייה מהירה</string>
<string name="a11y_arrow_none">אין</string>
<string name="a11y_arrow_unknown">לא ידוע</string>
<string name="a11y_graph">גרף</string>
<string name="a11y_bg_quality">איכות נתוני סוכר</string>
<string name="a11y_bg_quality_recalculated">חושב מחדש</string>
<string name="a11y_bg_quality_doubles">רישומים כפולים</string>
<string name="a11y_insulin_label">אינסולין</string>
<string name="a11y_blood_glucose">ערכי סוכר בדם</string>
<string name="a11y_bg_outdated">לא עדכני</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -242,7 +242,6 @@
<string name="wear">워치</string> <string name="wear">워치</string>
<string name="resend_all_data">모든 데이터 다시 보내기</string> <string name="resend_all_data">모든 데이터 다시 보내기</string>
<string name="open_settings_on_wear">워치에서 설정 열기</string> <string name="open_settings_on_wear">워치에서 설정 열기</string>
<string name="basal_rate">Basal양:</string>
<string name="basalvaluebelowminimum">Basal값이 최소값 이하입니다. 프로파일이 설정되지 않습니다!</string> <string name="basalvaluebelowminimum">Basal값이 최소값 이하입니다. 프로파일이 설정되지 않습니다!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Last BG:</string> <string name="sms_lastbg">Last BG:</string>
@ -738,8 +737,6 @@
<string name="profilenamecontainsdot">프로파일명에 점을 포함하고 있습니다.\n이는 NS에서 지원하지 않습니다.\n프로파일이 NS에 업로드되지 않습니다.</string> <string name="profilenamecontainsdot">프로파일명에 점을 포함하고 있습니다.\n이는 NS에서 지원하지 않습니다.\n프로파일이 NS에 업로드되지 않습니다.</string>
<string name="low_mark_comment">혈당 정상범위의 하한값(표시 전용)</string> <string name="low_mark_comment">혈당 정상범위의 하한값(표시 전용)</string>
<string name="high_mark_comment">혈당 정상범위의 상한값(표시 전용)</string> <string name="high_mark_comment">혈당 정상범위의 상한값(표시 전용)</string>
<string name="age">나이:</string>
<string name="weight_label">몸무게:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">확인</string> <string name="submit">확인</string>
<string name="mostcommonprofile">가장 많이 사용된 프로파일:</string> <string name="mostcommonprofile">가장 많이 사용된 프로파일:</string>
@ -860,4 +857,5 @@
<string name="sms_timeout_while_wating">직전의 펌프 통신 종료를 기다리는 동안 타임 아웃</string> <string name="sms_timeout_while_wating">직전의 펌프 통신 종료를 기다리는 동안 타임 아웃</string>
<string name="smscommunicator_another_bolus_in_queue">대기열에 또다른 bolus가 있습니다. 이후에 다시 시도하세요.</string> <string name="smscommunicator_another_bolus_in_queue">대기열에 또다른 bolus가 있습니다. 이후에 다시 시도하세요.</string>
<string name="calculation_in_progress">계산 진행 중</string> <string name="calculation_in_progress">계산 진행 중</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Išmanieji laikrodžiai</string> <string name="wear">Išmanieji laikrodžiai</string>
<string name="resend_all_data">Pakartotinai siųsti visus duomenis</string> <string name="resend_all_data">Pakartotinai siųsti visus duomenis</string>
<string name="open_settings_on_wear">Atidaryti išmaniojo laikrodžio nustatymus</string> <string name="open_settings_on_wear">Atidaryti išmaniojo laikrodžio nustatymus</string>
<string name="basal_rate">Valandinė bazė:</string>
<string name="basalvaluebelowminimum">Valandinės bazės vertė mažesnė už minimalią. Profilis nenustatytas!</string> <string name="basalvaluebelowminimum">Valandinės bazės vertė mažesnė už minimalią. Profilis nenustatytas!</string>
<string name="sms_actualbg">KG:</string> <string name="sms_actualbg">KG:</string>
<string name="sms_lastbg">Paskutinė KG:</string> <string name="sms_lastbg">Paskutinė KG:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Profilio pavadinime yra taškų.\nŠios funkcijos NS nepalaiko.\nProfilis neįkeltas į NS.</string> <string name="profilenamecontainsdot">Profilio pavadinime yra taškų.\nŠios funkcijos NS nepalaiko.\nProfilis neįkeltas į NS.</string>
<string name="low_mark_comment">Mažiausia tikslinės srities vertė (tik rodymui)</string> <string name="low_mark_comment">Mažiausia tikslinės srities vertė (tik rodymui)</string>
<string name="high_mark_comment">Didžiausia tikslinės srities vertė (tik rodymui)</string> <string name="high_mark_comment">Didžiausia tikslinės srities vertė (tik rodymui)</string>
<string name="age">Amžius:</string>
<string name="weight_label">Svoris:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Pateikti</string> <string name="submit">Pateikti</string>
<string name="mostcommonprofile">Dažniausiai naudojamas profilis:</string> <string name="mostcommonprofile">Dažniausiai naudojamas profilis:</string>
@ -904,4 +901,5 @@
<string name="identification">Identifikacija (el. paštas, FB, Discord slapyvardis ar kt.)</string> <string name="identification">Identifikacija (el. paštas, FB, Discord slapyvardis ar kt.)</string>
<string name="identification_not_set">Kūrėjo režime tapatybė nenustatyta</string> <string name="identification_not_set">Kūrėjo režime tapatybė nenustatyta</string>
<string name="not_available_full">Negalimas</string> <string name="not_available_full">Negalimas</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Synchroniseert je data met Nightscout</string> <string name="description_ns_client">Synchroniseert je data met Nightscout</string>
<string name="description_ama">Het algoritme uit 2017</string> <string name="description_ama">Het algoritme uit 2017</string>
<string name="description_smb">Meest recente algoritme voor gevorderde gebruikers</string> <string name="description_smb">Meest recente algoritme voor gevorderde gebruikers</string>
<string name="description_smb_dynamic_isf">Meest recente algoritme voor gevorderde gebruikers met dynamische/automatische ISF</string>
<string name="description_overview">Toont de huidige Loop-status en knoppen voor meest gebruikte acties</string> <string name="description_overview">Toont de huidige Loop-status en knoppen voor meest gebruikte acties</string>
<string name="description_persistent_notification">Toont een permanente melding met een beknopt overzicht van hetgeen de Loop momenteel doet</string> <string name="description_persistent_notification">Toont een permanente melding met een beknopt overzicht van hetgeen de Loop momenteel doet</string>
<string name="description_profile_local">Gebruik profiel(en) die je in AAPS aanmaakt en offline kunt gebruiken.</string> <string name="description_profile_local">Gebruik profiel(en) die je in AAPS aanmaakt en offline kunt gebruiken.</string>
@ -246,7 +247,7 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Update Wear gegevens</string> <string name="resend_all_data">Update Wear gegevens</string>
<string name="open_settings_on_wear">Open instellingen op Wear</string> <string name="open_settings_on_wear">Open instellingen op Wear</string>
<string name="basal_rate">Basaal:</string> <string name="basal_rate">Basaalstand</string>
<string name="basalvaluebelowminimum">Basaalwaarde onder minimum. Profiel niet ingesteld!</string> <string name="basalvaluebelowminimum">Basaalwaarde onder minimum. Profiel niet ingesteld!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Laatste BG:</string> <string name="sms_lastbg">Laatste BG:</string>
@ -434,6 +435,7 @@
<string name="ns_localbroadcasts">Schakel lokaal data delen met andere apps (zoals xDrip) in. Schakel dit niet in als er meer dan één installatie van AAPS of NSClient zijn geinstalleerd!</string> <string name="ns_localbroadcasts">Schakel lokaal data delen met andere apps (zoals xDrip) in. Schakel dit niet in als er meer dan één installatie van AAPS of NSClient zijn geinstalleerd!</string>
<string name="ns_localbroadcasts_title">Activeer locaal delen.</string> <string name="ns_localbroadcasts_title">Activeer locaal delen.</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB Dynamische ISF</string>
<string name="enableuam">Activeer UAM</string> <string name="enableuam">Activeer UAM</string>
<string name="enablesmb">Activeer SMB</string> <string name="enablesmb">Activeer SMB</string>
<string name="enablesmb_summary">SMB in plaats van tijdelijke basalen voor snellere reactie</string> <string name="enablesmb_summary">SMB in plaats van tijdelijke basalen voor snellere reactie</string>
@ -502,6 +504,7 @@
<string name="negativeonly">Enkel negatief</string> <string name="negativeonly">Enkel negatief</string>
<string name="overview_editquickwizard_usecob">COB berekening</string> <string name="overview_editquickwizard_usecob">COB berekening</string>
<string name="overview_editquickwizard_usetemptarget">Tijdelijk doel berekenen</string> <string name="overview_editquickwizard_usetemptarget">Tijdelijk doel berekenen</string>
<string name="overview_editquickwizard_usepercentage">Percentage berekening</string>
<string name="loopenabled">Loop Actief</string> <string name="loopenabled">Loop Actief</string>
<string name="apsselected">APS geslecteerd</string> <string name="apsselected">APS geslecteerd</string>
<string name="nsclienthaswritepermission">NSClient heeft schrijf rechten</string> <string name="nsclienthaswritepermission">NSClient heeft schrijf rechten</string>
@ -757,8 +760,8 @@
<string name="profilenamecontainsdot">Profielnaam bevat punten.\nDit wordt niet ondersteund door NS.\nProfiel is niet geüpload naar NS.</string> <string name="profilenamecontainsdot">Profielnaam bevat punten.\nDit wordt niet ondersteund door NS.\nProfiel is niet geüpload naar NS.</string>
<string name="low_mark_comment">Laagste waarde in bereik (alleen weergave)</string> <string name="low_mark_comment">Laagste waarde in bereik (alleen weergave)</string>
<string name="high_mark_comment">Hoogste waarde in bereik (alleen weergave)</string> <string name="high_mark_comment">Hoogste waarde in bereik (alleen weergave)</string>
<string name="age">Leeftijd:</string> <string name="age">Leeftijd</string>
<string name="weight_label">Gewicht:</string> <string name="weight_label">Gewicht</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Verzenden</string> <string name="submit">Verzenden</string>
<string name="mostcommonprofile">Meest voorkomende profiel:</string> <string name="mostcommonprofile">Meest voorkomende profiel:</string>
@ -900,9 +903,74 @@
<string name="errors">Foutmeldingen</string> <string name="errors">Foutmeldingen</string>
<string name="ns_sync_slow">Vertraag uploads</string> <string name="ns_sync_slow">Vertraag uploads</string>
<string name="data_status">BG data status</string> <string name="data_status">BG data status</string>
<string name="statuslights_cannula_age">canule leeftijd</string>
<string name="statuslights_patch_pump_age">patchpomp leeftijd</string>
<string name="patch_pump">Patchpomp</string>
<string name="recalculated_data_used">Herberekende data gebruikt</string> <string name="recalculated_data_used">Herberekende data gebruikt</string>
<string name="bg_too_close">BG data interval to kort:\n%1$s\n%2$s</string> <string name="bg_too_close">BG data interval to kort:\n%1$s\n%2$s</string>
<string name="identification">Identificatie (e-mail, FB, Discord e. d.)</string> <string name="identification">Identificatie (e-mail, FB, Discord e. d.)</string>
<string name="identification_not_set">Identificatie niet ingesteld in dev modus</string> <string name="identification_not_set">Identificatie niet ingesteld in dev modus</string>
<string name="a11y_dialog">dialoogvenster</string>
<string name="a11y_current_bg">huidige bloedglucose</string>
<string name="a11_correction_percentage">corrigeer uitkomt met percentage</string>
<string name="a11_correction_units">corrigeer uitkomt met units</string>
<string name="not_available_full">Niet beschikbaar</string> <string name="not_available_full">Niet beschikbaar</string>
<string name="a11y_high">hoog</string>
<string name="a11y_inrange">binnen bereik</string>
<string name="a11y_low">laag</string>
<string name="a11y_arrow_double_down">snel dalend</string>
<string name="a11y_arrow_single_down">dalend</string>
<string name="a11y_arrow_forty_five_down">langzaam dalend</string>
<string name="a11y_arrow_flat">stabiel</string>
<string name="a11y_arrow_forty_five_up">langzaam stijgend</string>
<string name="a11y_arrow_single_up">stijgt</string>
<string name="a11y_arrow_double_up">snel stijgend</string>
<string name="a11y_arrow_none">geen</string>
<string name="a11y_arrow_unknown">onbekend</string>
<string name="a11y_graph">grafiek</string>
<string name="a11y_bg_quality">bloedglucose kwaliteit</string>
<string name="a11y_bg_quality_recalculated">opnieuw berekend</string>
<string name="a11y_bg_quality_doubles">dubbele items</string>
<string name="a11y_insulin_label">insuline</string>
<string name="a11y_blood_glucose">bloed glucose</string>
<string name="a11y_bg_outdated">verouderd</string>
<string name="a11y_carb_reminder">herinnering instellen</string>
<string name="a11y_add_new_profile">nieuw profiel toevoegen</string>
<string name="a11y_clone_profile">huidig profiel dupliceren</string>
<string name="a11y_delete_current_profile">huidig profiel verwijderen</string>
<string name="a11y_add_new_to_list">nieuwe toevoegen aan lijst</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Tijdelijke doel onbekende preset: %1$s</string>
<string name="wear_action_tempt_cancel_message">Huidige tijdelijk streefdoel annuleren?</string>
<string name="wear_action_tempt_unit_error">Verschillende eenheden gebruikt op horloge en telefoon!</string>
<string name="wear_action_tempt_zero_message">Tijdelijk streefdoel 0 minuten, huidige tijdelijk streefdoel annuleren?</string>
<string name="wear_action_tempt_min_bg_error">Min BG buiten bereik!</string>
<string name="wear_action_tempt_max_bg_error">Max BG buiten bereik!</string>
<string name="wear_action_tempt_manual_range_message">Tijdelijk streefdoel:\nMin: %1$s\nMax: %2$s\nDuur: %3$s</string>
<string name="wear_action_tempt_manual_message">Tijdelijk streefdoel:\nDoel: %1$s\nDuur: %2$s</string>
<string name="wear_action_tempt_preset_message">Tijdelijk streefdoel:\Reden: %1$s\nDoel: %2$s\nDuur: %3$s</string>
<string name="quick_wizard_message">QuickWizard: %1$s\nInsuline: %2$.2fE\nKoolhy.: %3$dg</string>
<string name="wizard_result">Reken. Wizard:\nInsuline: %1$.2fE\nKoolhy.: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Toon invoer op apparaat:</string>
<string name="quick_wizard_not_available">Geselecteerde QuickWizard is niet meer beschikbaar, vernieuw uw tegel</string>
<string name="wizard_no_actual_bg">Geen recente BG om de berekening op te baseren!</string>
<string name="wizard_no_active_profile">Geen actief profiel ingesteld!</string>
<string name="wizard_no_cob">Onbekende COB! BG uitlezing ontbreekt of de recente app herstart?</string>
<string name="wizard_carbs_constraint">Koolhydraten beperking overschreden!</string>
<string name="wizard_explain_calc">Bereken (IC: %2$.1f, ISF: %2$.1f) van:\"</string>
<string name="wizard_explain_carbs">Koolhydraten: %1$.2fE</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fE</string>
<string name="wizard_explain_bg">BG: %1$.2fE</string>
<string name="wizard_explain_basal_iob">Basaal IOB: %1$.2fE</string>
<string name="wizard_explain_bolus_iob">Bolus IOB: %1$.2fE</string>
<string name="wizard_explain_superbolus">Superbolus: %1$.2fE</string>
<string name="wizard_explain_trend">15\' trend: %1$.2fE</string>
<string name="wizard_explain_percent">Percentage: %1$.2fE x %2$d%% ≈ %3$.2fE</string>
<string name="wizard_constraint_bolus_size">Insuline beperking!\nKan %1$.2fE niet leveren</string>
<string name="wizard_explain_tt">Tijdelijk Doel: %1$s</string>
<string name="wizard_explain_tt_to">%1$s tot %2$s</string>
<string name="wizard_pump_not_available">Geen pomp beschikbaar!</string>
<string name="wear_unknown_action_string">Onbekend actie commando:</string>
<string name="overview_editquickwizard_percentage">Percentage</string>
<string name="app_default">Applicatie standaardwaarden</string>
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Synkroniserer dine data med Nightscout</string> <string name="description_ns_client">Synkroniserer dine data med Nightscout</string>
<string name="description_ama">Slik algoritmen var definert i 2017</string> <string name="description_ama">Slik algoritmen var definert i 2017</string>
<string name="description_smb">Siste utgave av algoritmen for avanserte brukere</string> <string name="description_smb">Siste utgave av algoritmen for avanserte brukere</string>
<string name="description_smb_dynamic_isf">Nyeste algoritme for avanserte brukere med dynamisk/automatisk ISF</string>
<string name="description_overview">Viser loopens nåværende tilstand og knapper for de vanligste funksjonene</string> <string name="description_overview">Viser loopens nåværende tilstand og knapper for de vanligste funksjonene</string>
<string name="description_persistent_notification">Viser en konstant melding med en kort oppsummering av hva loop gjør</string> <string name="description_persistent_notification">Viser en konstant melding med en kort oppsummering av hva loop gjør</string>
<string name="description_profile_local">Definer en profil som er tilgjengelig offline.</string> <string name="description_profile_local">Definer en profil som er tilgjengelig offline.</string>
@ -246,7 +247,7 @@
<string name="wear">Klokke</string> <string name="wear">Klokke</string>
<string name="resend_all_data">Send alle data på nytt</string> <string name="resend_all_data">Send alle data på nytt</string>
<string name="open_settings_on_wear">Åpne Innstillinger på klokken</string> <string name="open_settings_on_wear">Åpne Innstillinger på klokken</string>
<string name="basal_rate">Basal rate:</string> <string name="basal_rate">Basal rate</string>
<string name="basalvaluebelowminimum">Basal verdi under minimum. Profilen settes ikke!</string> <string name="basalvaluebelowminimum">Basal verdi under minimum. Profilen settes ikke!</string>
<string name="sms_actualbg">BS:</string> <string name="sms_actualbg">BS:</string>
<string name="sms_lastbg">Siste BS:</string> <string name="sms_lastbg">Siste BS:</string>
@ -267,6 +268,7 @@
<string name="configbuilder_shortname">KONF</string> <string name="configbuilder_shortname">KONF</string>
<string name="loop_shortname">LOOP</string> <string name="loop_shortname">LOOP</string>
<string name="oaps_shortname">OAPS</string> <string name="oaps_shortname">OAPS</string>
<string name="dynisf_shortname">DYNISF</string>
<string name="localprofile_shortname">LP</string> <string name="localprofile_shortname">LP</string>
<string name="overview_shortname">HJEM</string> <string name="overview_shortname">HJEM</string>
<string name="virtualpump_shortname">VPUMP</string> <string name="virtualpump_shortname">VPUMP</string>
@ -434,6 +436,7 @@
<string name="ns_localbroadcasts">Aktiver kringkasting til andre apper (som xDrip+). Ikke aktiver dette hvis du har mer enn en AAPS eller NSClient installert!</string> <string name="ns_localbroadcasts">Aktiver kringkasting til andre apper (som xDrip+). Ikke aktiver dette hvis du har mer enn en AAPS eller NSClient installert!</string>
<string name="ns_localbroadcasts_title">Aktiver lokale sendinger.</string> <string name="ns_localbroadcasts_title">Aktiver lokale sendinger.</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB dynamisk ISF</string>
<string name="enableuam">Aktiver UAM</string> <string name="enableuam">Aktiver UAM</string>
<string name="enablesmb">Aktiver SMB</string> <string name="enablesmb">Aktiver SMB</string>
<string name="enablesmb_summary">Bruk Super Mikro Solen i stedet for temp basal for raskere resultat</string> <string name="enablesmb_summary">Bruk Super Mikro Solen i stedet for temp basal for raskere resultat</string>
@ -502,6 +505,7 @@
<string name="negativeonly">Bare negative</string> <string name="negativeonly">Bare negative</string>
<string name="overview_editquickwizard_usecob">COB beregning</string> <string name="overview_editquickwizard_usecob">COB beregning</string>
<string name="overview_editquickwizard_usetemptarget">Temp target beregning</string> <string name="overview_editquickwizard_usetemptarget">Temp target beregning</string>
<string name="overview_editquickwizard_usepercentage">Prosent beregning</string>
<string name="loopenabled">Loop er aktivert</string> <string name="loopenabled">Loop er aktivert</string>
<string name="apsselected">APS valgt</string> <string name="apsselected">APS valgt</string>
<string name="nsclienthaswritepermission">NSClient har skrive rettigheter</string> <string name="nsclienthaswritepermission">NSClient har skrive rettigheter</string>
@ -757,8 +761,8 @@
<string name="profilenamecontainsdot">Profilnavnet inneholder prikker.\nDette støttes ikke av NS.\nProfilen er ikke lastet opp til NS.</string> <string name="profilenamecontainsdot">Profilnavnet inneholder prikker.\nDette støttes ikke av NS.\nProfilen er ikke lastet opp til NS.</string>
<string name="low_mark_comment">Nedre verdi for målområdet (kun visning)</string> <string name="low_mark_comment">Nedre verdi for målområdet (kun visning)</string>
<string name="high_mark_comment">Øvre verdi for målområdet (kun visning)</string> <string name="high_mark_comment">Øvre verdi for målområdet (kun visning)</string>
<string name="age">Alder:</string> <string name="age">Alder</string>
<string name="weight_label">Vekt:</string> <string name="weight_label">Vekt</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Lagre</string> <string name="submit">Lagre</string>
<string name="mostcommonprofile">Mest vanlig profil:</string> <string name="mostcommonprofile">Mest vanlig profil:</string>
@ -900,9 +904,74 @@
<string name="errors">Feil</string> <string name="errors">Feil</string>
<string name="ns_sync_slow">Reduser opplastingshastighet</string> <string name="ns_sync_slow">Reduser opplastingshastighet</string>
<string name="data_status">BS data status</string> <string name="data_status">BS data status</string>
<string name="statuslights_cannula_age">kanyle alder</string>
<string name="statuslights_patch_pump_age">patch pumpe alder</string>
<string name="patch_pump">Patch pumpe</string>
<string name="recalculated_data_used">Rekalkulerte siste data</string> <string name="recalculated_data_used">Rekalkulerte siste data</string>
<string name="bg_too_close">BS for nær:\n%1$s\n%2$s</string> <string name="bg_too_close">BS for nær:\n%1$s\n%2$s</string>
<string name="identification">Identifikasjon (e-post, Facebook eller Discord nick osv.)</string> <string name="identification">Identifikasjon (e-post, Facebook eller Discord nick osv.)</string>
<string name="identification_not_set">Identifikasjon ikke satt i utviklermodus</string> <string name="identification_not_set">Identifikasjon ikke satt i utviklermodus</string>
<string name="a11y_dialog">dialogvindu</string>
<string name="a11y_current_bg">nåværende blodsukker</string>
<string name="a11_correction_percentage">korriger resultatet med %</string>
<string name="a11_correction_units">korriger resultatet med enheter</string>
<string name="not_available_full">Ikke tilgjengelig</string> <string name="not_available_full">Ikke tilgjengelig</string>
<string name="a11y_high">høy</string>
<string name="a11y_inrange">i målområdet</string>
<string name="a11y_low">lav</string>
<string name="a11y_arrow_double_down">synker raskt</string>
<string name="a11y_arrow_single_down">synker</string>
<string name="a11y_arrow_forty_five_down">synker sakte</string>
<string name="a11y_arrow_flat">stabil</string>
<string name="a11y_arrow_forty_five_up">stiger sakte</string>
<string name="a11y_arrow_single_up">stiger</string>
<string name="a11y_arrow_double_up">stiger raskt</string>
<string name="a11y_arrow_none">ingen</string>
<string name="a11y_arrow_unknown">ukjent</string>
<string name="a11y_graph">graf</string>
<string name="a11y_bg_quality">blodsukkermålingens kvalitet</string>
<string name="a11y_bg_quality_recalculated">beregnet på nytt</string>
<string name="a11y_bg_quality_doubles">doble registreringer</string>
<string name="a11y_insulin_label">insulin</string>
<string name="a11y_blood_glucose">blodsukker</string>
<string name="a11y_bg_outdated">utdatert</string>
<string name="a11y_carb_reminder">angi påminnelse</string>
<string name="a11y_add_new_profile">legg til ny profil</string>
<string name="a11y_clone_profile">kopier gjeldende profil</string>
<string name="a11y_delete_current_profile">slett gjeldende profil</string>
<string name="a11y_add_new_to_list">legg til ny i liste</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Temptarget ukjent forhåndsinnstilling: %1$s</string>
<string name="wear_action_tempt_cancel_message">Avbryt gjeldende Temp Target?</string>
<string name="wear_action_tempt_unit_error">Forskjellige enheter brukt på klokke og telefon!</string>
<string name="wear_action_tempt_zero_message">Zero-TempTarget - avbryter gjeldende TempTarget?</string>
<string name="wear_action_tempt_min_bg_error">Min-BS utenfor område!</string>
<string name="wear_action_tempt_max_bg_error">Maks-BS utenfor område!</string>
<string name="wear_action_tempt_manual_range_message">Temp target:\nMin: %1$s\nMaks: %2$s\nVarighet: %3$s</string>
<string name="wear_action_tempt_manual_message">TempTarget:\nMål: %1$s\nVarighet: %2$s</string>
<string name="wear_action_tempt_preset_message">TempTarget:\nMin: %1$s\nMål: %2$s\nVarighet: %3$s</string>
<string name="quick_wizard_message">QuickWizard: %1$s\ninsulin: %2$.2fE\nKarbo: %3$dg</string>
<string name="wizard_result">Kalk. Wizard:\nInsulin: %1$.2fE\nKarbo: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Vis oppføring på enhet:</string>
<string name="quick_wizard_not_available">Den valgte hurtigveiviseren er ikke tilgjengelig lenger, oppdater klokkewidget</string>
<string name="wizard_no_actual_bg">Mangler nylige BS verdier til å bruke i beregninger!</string>
<string name="wizard_no_active_profile">Det er ikke angitt noen aktiv profil!</string>
<string name="wizard_no_cob">Ukjent COB! BS verdier mangler eller nylig oppstart av appen?</string>
<string name="wizard_carbs_constraint">Brudd på karbo begrensning!</string>
<string name="wizard_explain_calc">Kalk (IC: %2$.1f, ISF: %2$.1f) fra:\"</string>
<string name="wizard_explain_carbs">Karbo: %1$.2fE</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fE</string>
<string name="wizard_explain_bg">BS: %1$.2fE</string>
<string name="wizard_explain_basal_iob">Basal IOB: %1$.2fE</string>
<string name="wizard_explain_bolus_iob">Bolus IOB: %1$.2fE</string>
<string name="wizard_explain_superbolus">Superbolus: %1$.2fE</string>
<string name="wizard_explain_trend">15\' trend: %1$.2fE</string>
<string name="wizard_explain_percent">Prosent: %1$.2fE x %2$d%% ° %3$.2fE</string>
<string name="wizard_constraint_bolus_size">Insulinbegrensning nådd!\nKan ikke levere %1$.2fE</string>
<string name="wizard_explain_tt">TempT: %1$s</string>
<string name="wizard_explain_tt_to">%1$s til %2$s</string>
<string name="wizard_pump_not_available">Ingen pumpe tilgjengelig!</string>
<string name="wear_unknown_action_string">Ukjent kommando:</string>
<string name="overview_editquickwizard_percentage">Prosent</string>
<string name="app_default">Standardverdi</string>
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Oprogramowanie Wear (Smartwatch)</string> <string name="wear">Oprogramowanie Wear (Smartwatch)</string>
<string name="resend_all_data">Prześlij ponownie wszystkie dane</string> <string name="resend_all_data">Prześlij ponownie wszystkie dane</string>
<string name="open_settings_on_wear">Otwórz ustawienia dla Wear</string> <string name="open_settings_on_wear">Otwórz ustawienia dla Wear</string>
<string name="basal_rate">Dawka bazowa:</string>
<string name="basalvaluebelowminimum">Wartość bazy poniżej minimum. Nie ustawiono profilu!</string> <string name="basalvaluebelowminimum">Wartość bazy poniżej minimum. Nie ustawiono profilu!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Ostatnia BG:</string> <string name="sms_lastbg">Ostatnia BG:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Nazwa profilu zawiera kropki.\nTo nie jest obsługiwane przez NS.\nProfil nie zostanie przesyłany do NS.</string> <string name="profilenamecontainsdot">Nazwa profilu zawiera kropki.\nTo nie jest obsługiwane przez NS.\nProfil nie zostanie przesyłany do NS.</string>
<string name="low_mark_comment">Dolna wartość zakresu docelowego (tylko do wyświetlania)</string> <string name="low_mark_comment">Dolna wartość zakresu docelowego (tylko do wyświetlania)</string>
<string name="high_mark_comment">Górna wartość zakresu docelowego (tylko do wyświetlania)</string> <string name="high_mark_comment">Górna wartość zakresu docelowego (tylko do wyświetlania)</string>
<string name="age">Czas:</string>
<string name="weight_label">Waga:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Wyślij</string> <string name="submit">Wyślij</string>
<string name="mostcommonprofile">Najczęściej używany profil:</string> <string name="mostcommonprofile">Najczęściej używany profil:</string>
@ -904,4 +901,5 @@
<string name="identification">Identyfikator (email, nick na FB lub Discordzie itp.)</string> <string name="identification">Identyfikator (email, nick na FB lub Discordzie itp.)</string>
<string name="identification_not_set">Identyfikator nie jest ustawiony w trybie dev</string> <string name="identification_not_set">Identyfikator nie jest ustawiony w trybie dev</string>
<string name="not_available_full">Niedostępne</string> <string name="not_available_full">Niedostępne</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -32,11 +32,12 @@
<string name="objectives2_internalstorage">Seu arquivo de configurações foi encontrado no armazenamento interno/AAPS/preferências do seu telefone.</string> <string name="objectives2_internalstorage">Seu arquivo de configurações foi encontrado no armazenamento interno/AAPS/preferências do seu telefone.</string>
<string name="objectives2_cloud">Copie seu arquivo de preferências para um local seguro fora de seu telefone (por exemplo, usando uma unidade na nuvem, conectando um cabo a um computador, e-mail, etc.)</string> <string name="objectives2_cloud">Copie seu arquivo de preferências para um local seguro fora de seu telefone (por exemplo, usando uma unidade na nuvem, conectando um cabo a um computador, e-mail, etc.)</string>
<string name="objectives2_easyrestore">Se seu telefone ficar danificado ou se você perder-lo, existem maneiras fáceis de recuperar suas configurações remotamente sem um backup local.</string> <string name="objectives2_easyrestore">Se seu telefone ficar danificado ou se você perder-lo, existem maneiras fáceis de recuperar suas configurações remotamente sem um backup local.</string>
<string name="noisycgm_label">Leituras do CGM imprecisas</string>
<string name="noisycgm_whattodo">O que deve ser feito se os dados do CGM são irregulares?</string> <string name="noisycgm_whattodo">O que deve ser feito se os dados do CGM são irregulares?</string>
<string name="breadgrams_calc">Se os níveis de glicose no sangue estiverem fora dos limites aceitáveis (muito baixo ou muito alto) a calculadora de bolus pode ser usada para fornecer sugestões para correções de carboidrato ou insulina.</string> <string name="breadgrams_calc">Se os níveis de glicose no sangue estiverem fora dos limites aceitáveis (muito baixo ou muito alto) a calculadora de bolus pode ser usada para fornecer sugestões para correções de carboidrato ou insulina.</string>
<string name="breadgrams_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-to-carb-ratio-ic-g-u</string> <string name="breadgrams_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-to-carb-ratio-ic-g-u</string>
<string name="extendedcarbs_label">Tópico: e-Carbs</string> <string name="extendedcarbs_label">Tópico: e-Carbs</string>
<string name="extendedcarbs_handling">Para que você possa usar os e-Carbs (carboidratos estendidos)?</string> <string name="extendedcarbs_handling">Para que você possa usar os e-carbs (carboidratos estendidos)?</string>
<string name="extendedcarbs_future">Para agendar carboidratos no futuro, possivelmente distribuídos num intervalo (semelhante a um bolus estendido que distribui insulina num intervalo).</string> <string name="extendedcarbs_future">Para agendar carboidratos no futuro, possivelmente distribuídos num intervalo (semelhante a um bolus estendido que distribui insulina num intervalo).</string>
<string name="extendedcarbs_free">Para registrar carboidratos de exercício \'gratuitos\' que deseja ocultar do AndroidAPS.</string> <string name="extendedcarbs_free">Para registrar carboidratos de exercício \'gratuitos\' que deseja ocultar do AndroidAPS.</string>
<string name="extendedcarbs_fat">Os e-carbs (distribuídos no futuro) podem ajudar o AndroidAPS a lidar com comidas ricas em gorduras/proteínas.</string> <string name="extendedcarbs_fat">Os e-carbs (distribuídos no futuro) podem ajudar o AndroidAPS a lidar com comidas ricas em gorduras/proteínas.</string>
@ -51,7 +52,7 @@
<string name="nsclient_hint1">https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html</string> <string name="nsclient_hint1">https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html</string>
<string name="isf_label_exam">Tópico: Fator de Sensibilidade à Insulina (ISF)</string> <string name="isf_label_exam">Tópico: Fator de Sensibilidade à Insulina (ISF)</string>
<string name="isf_increasingvalue">Aumentar os valores de ISF levará à administração de mais insulina para cobrir uma quantidade específica de carboidratos.</string> <string name="isf_increasingvalue">Aumentar os valores de ISF levará à administração de mais insulina para cobrir uma quantidade específica de carboidratos.</string>
<string name="isf_decreasingvalue">Reduzir os valores do ISF levará à adminstração de quantidades menores de insulina para corrigir uma glicose acima do alvo.</string> <string name="isf_decreasingvalue">Reduzir os valores do ISF levará à adminstração de quantidades maiores de insulina para corrigir uma glicose acima do alvo.</string>
<string name="isf_noeffect">Aumentar ou reduzir o ISF não tem efeito na administração de insulina quando os níveis de glicose estão abaixo do alvo.</string> <string name="isf_noeffect">Aumentar ou reduzir o ISF não tem efeito na administração de insulina quando os níveis de glicose estão abaixo do alvo.</string>
<string name="isf_preferences">O ISF deve ser configurado nas Preferências do AndroidAPS.</string> <string name="isf_preferences">O ISF deve ser configurado nas Preferências do AndroidAPS.</string>
<string name="isf_profile">Alterar o valor do ISF no seu perfil é o suficiente para aplicar a alteração.</string> <string name="isf_profile">Alterar o valor do ISF no seu perfil é o suficiente para aplicar a alteração.</string>
@ -59,7 +60,6 @@
<string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string> <string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string>
<string name="ic_multiple">Você pode definir mais do que um valor para o rácio I:C no seu perfil.</string> <string name="ic_multiple">Você pode definir mais do que um valor para o rácio I:C no seu perfil.</string>
<string name="ic_isf">Se você mudar o ISF no seu perfil, também deveria mudar o I:C.</string> <string name="ic_isf">Se você mudar o ISF no seu perfil, também deveria mudar o I:C.</string>
<string name="ic_label_exam">Tópico: Rácio Insulina:Carboidrato (racio I:C)</string>
<string name="ic_increasingvalue">Rácios IC mais altos levam a menos insulina administrada por uma dada quantidade de carboidratos.</string> <string name="ic_increasingvalue">Rácios IC mais altos levam a menos insulina administrada por uma dada quantidade de carboidratos.</string>
<string name="ic_decreasingvalue">Rácios IC mais baixos levam a menos insulina administrada por uma dada quantidade de carboidratos.</string> <string name="ic_decreasingvalue">Rácios IC mais baixos levam a menos insulina administrada por uma dada quantidade de carboidratos.</string>
<string name="ic_noeffect">Se tiver 0 COB, alterar a proporção IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da glicemia.</string> <string name="ic_noeffect">Se tiver 0 COB, alterar a proporção IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da glicemia.</string>
@ -70,8 +70,7 @@
<string name="profileswitch_pctwillchange"> Ao especificar uma mudança de perfil de 90%, quais respostas são corretas?</string> <string name="profileswitch_pctwillchange"> Ao especificar uma mudança de perfil de 90%, quais respostas são corretas?</string>
<string name="profileswitch_basallower">Taxas de basal serão 10% menores.</string> <string name="profileswitch_basallower">Taxas de basal serão 10% menores.</string>
<string name="profileswitch_isfhigher">O valor do ISF será 10% maior.</string> <string name="profileswitch_isfhigher">O valor do ISF será 10% maior.</string>
<string name="profileswitch_iclower">O valor da proporção I:C será 10% menor.</string> <string name="profileswitch_unchanged">O ISF e a I:C não sofrem alterações.</string>
<string name="profileswitch_unchanged">O ISF e a I:C continuem iguas.</string>
<string name="profileswitch_hint1" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch</string> <string name="profileswitch_hint1" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch</string>
<string name="profileswitch2_label">Tópico: Troca de Perfil</string> <string name="profileswitch2_label">Tópico: Troca de Perfil</string>
<string name="profileswitchtime_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift</string> <string name="profileswitchtime_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift</string>

View file

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="objectives_maxbasal_objective">Entendendo o seu loop aberto, incluindo as suas recomendações de basais temporárias</string>
<string name="objectives_maxbasal_gate">Com base nessa experiência, decidir qual deve ser a basal máximo e configurá-lo na bomba e nas preferências</string>
<string name="objectives_auto_gate">Leia os documentos de como a automação funciona. Configure suas primeiras regras simples. Em vez de efetuar uma ação deixe AAPS apresentar apenas uma notificação. Quando você tiver certeza de que a automação é acionada no momento certo substitua a notificação por uma ação real. (https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)</string> <string name="objectives_auto_gate">Leia os documentos de como a automação funciona. Configure suas primeiras regras simples. Em vez de efetuar uma ação deixe AAPS apresentar apenas uma notificação. Quando você tiver certeza de que a automação é acionada no momento certo substitua a notificação por uma ação real. (https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)</string>
<string name="objectives_bgavailableinns">Glicose disponível no NS</string> <string name="objectives_bgavailableinns">Glicose disponível no NS</string>
<string name="objectives_pumpstatusavailableinns">Status da Bomba disponível no NS</string> <string name="objectives_pumpstatusavailableinns">Status da Bomba disponível no NS</string>

View file

@ -217,7 +217,6 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Reenviar Todos os Dados</string> <string name="resend_all_data">Reenviar Todos os Dados</string>
<string name="open_settings_on_wear">Abrir Definições em Wear</string> <string name="open_settings_on_wear">Abrir Definições em Wear</string>
<string name="basal_rate">Valor da Basal:</string>
<string name="basalvaluebelowminimum">Valor da basal abaixo do mínimo. Perfil não definido!</string> <string name="basalvaluebelowminimum">Valor da basal abaixo do mínimo. Perfil não definido!</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Último BG:</string> <string name="sms_lastbg">Último BG:</string>
@ -656,7 +655,6 @@
<string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não foi enviado para o NS.</string> <string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não foi enviado para o NS.</string>
<string name="low_mark_comment">Valor mais baixo da área de intervalo (apenas exibição)</string> <string name="low_mark_comment">Valor mais baixo da área de intervalo (apenas exibição)</string>
<string name="high_mark_comment">Valor mais alto da área de intervalo (apenas exibição)</string> <string name="high_mark_comment">Valor mais alto da área de intervalo (apenas exibição)</string>
<string name="age">Idade:</string>
<string name="submit">Enviar</string> <string name="submit">Enviar</string>
<string name="mostcommonprofile">Perfil mais comum:</string> <string name="mostcommonprofile">Perfil mais comum:</string>
<string name="survey_comment">Nota: Apenas os dados visíveis neste ecrã serão enviados anonimamente. O ID é atribuído a esta instalação do AndroidAPS. Você pode enviar dados novamente se o perfil principal for alterado, mas deixá-lo rodar pelo menos uma semana para tornar o resultado visível no intervalo de tempo. Sua ajuda é apreciada.</string> <string name="survey_comment">Nota: Apenas os dados visíveis neste ecrã serão enviados anonimamente. O ID é atribuído a esta instalação do AndroidAPS. Você pode enviar dados novamente se o perfil principal for alterado, mas deixá-lo rodar pelo menos uma semana para tornar o resultado visível no intervalo de tempo. Sua ajuda é apreciada.</string>
@ -705,4 +703,5 @@
<string name="buttonson_description">Botões são sempre exibidos na parte inferior da tela</string> <string name="buttonson_description">Botões são sempre exibidos na parte inferior da tela</string>
<string name="largedisplay_description">Mostrador Grande</string> <string name="largedisplay_description">Mostrador Grande</string>
<string name="skin">Tema</string> <string name="skin">Tema</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Reenviar Todos os Dados</string> <string name="resend_all_data">Reenviar Todos os Dados</string>
<string name="open_settings_on_wear">Abrir Definições no Relógio</string> <string name="open_settings_on_wear">Abrir Definições no Relógio</string>
<string name="basal_rate">Taxa da Basal:</string>
<string name="basalvaluebelowminimum">Valor da basal abaixo do mínimo. Perfil não definido!</string> <string name="basalvaluebelowminimum">Valor da basal abaixo do mínimo. Perfil não definido!</string>
<string name="sms_actualbg">Glicose:</string> <string name="sms_actualbg">Glicose:</string>
<string name="sms_lastbg">Ultima Gli:</string> <string name="sms_lastbg">Ultima Gli:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS.</string> <string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS.</string>
<string name="low_mark_comment">Valor mais baixo da área de intervalo (apenas exibição)</string> <string name="low_mark_comment">Valor mais baixo da área de intervalo (apenas exibição)</string>
<string name="high_mark_comment">Valor mais alto da área de intervalo (apenas exibição)</string> <string name="high_mark_comment">Valor mais alto da área de intervalo (apenas exibição)</string>
<string name="age">Idade:</string>
<string name="weight_label">Peso:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Enviar</string> <string name="submit">Enviar</string>
<string name="mostcommonprofile">Perfil mais comum:</string> <string name="mostcommonprofile">Perfil mais comum:</string>
@ -905,4 +902,5 @@
<string name="identification">Identificação (e-mail, nick FB ou Discord, etc)</string> <string name="identification">Identificação (e-mail, nick FB ou Discord, etc)</string>
<string name="identification_not_set">Identificação não definida no modo desenvolvimento</string> <string name="identification_not_set">Identificação não definida no modo desenvolvimento</string>
<string name="not_available_full">Indisponível</string> <string name="not_available_full">Indisponível</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Ceas</string> <string name="wear">Ceas</string>
<string name="resend_all_data">Retrimite toate datele</string> <string name="resend_all_data">Retrimite toate datele</string>
<string name="open_settings_on_wear">Deschide setările pe Wear</string> <string name="open_settings_on_wear">Deschide setările pe Wear</string>
<string name="basal_rate">Rată bazală:</string>
<string name="basalvaluebelowminimum">Valoarea bazalei este sub minimul permis. Profilul nu este setat!</string> <string name="basalvaluebelowminimum">Valoarea bazalei este sub minimul permis. Profilul nu este setat!</string>
<string name="sms_actualbg">Glicemie:</string> <string name="sms_actualbg">Glicemie:</string>
<string name="sms_lastbg">Ultima glicemie:</string> <string name="sms_lastbg">Ultima glicemie:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Numele profilului conține puncte.\nAcest lucru nu este permis de NS.\nProfilul nu a fost înregistrat în NS.</string> <string name="profilenamecontainsdot">Numele profilului conține puncte.\nAcest lucru nu este permis de NS.\nProfilul nu a fost înregistrat în NS.</string>
<string name="low_mark_comment">Valoarea inferioară a intervalului țintă (doar afișare)</string> <string name="low_mark_comment">Valoarea inferioară a intervalului țintă (doar afișare)</string>
<string name="high_mark_comment">Valoarea superioară a intervalului țintă (doar afișare)</string> <string name="high_mark_comment">Valoarea superioară a intervalului țintă (doar afișare)</string>
<string name="age">Vârstă:</string>
<string name="weight_label">Greutate:</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Trimiteți</string> <string name="submit">Trimiteți</string>
<string name="mostcommonprofile">Cel mai frecvent profil:</string> <string name="mostcommonprofile">Cel mai frecvent profil:</string>
@ -905,4 +902,5 @@
<string name="identification">Identificare (email, FB sau Discord etc)</string> <string name="identification">Identificare (email, FB sau Discord etc)</string>
<string name="identification_not_set">Identificarea nu este setată în modul dezvoltator</string> <string name="identification_not_set">Identificarea nu este setată în modul dezvoltator</string>
<string name="not_available_full">Nu este disponibil</string> <string name="not_available_full">Nu este disponibil</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -246,7 +246,6 @@
<string name="wear">Смарт-часы Wear</string> <string name="wear">Смарт-часы Wear</string>
<string name="resend_all_data">повторить отправку всех данных</string> <string name="resend_all_data">повторить отправку всех данных</string>
<string name="open_settings_on_wear">Открыть настройки на Wear</string> <string name="open_settings_on_wear">Открыть настройки на Wear</string>
<string name="basal_rate">Шаг базала:</string>
<string name="basalvaluebelowminimum">значение базала ниже минимума. профиль не создан!</string> <string name="basalvaluebelowminimum">значение базала ниже минимума. профиль не создан!</string>
<string name="sms_actualbg">гликемия:</string> <string name="sms_actualbg">гликемия:</string>
<string name="sms_lastbg">прошлый СК:</string> <string name="sms_lastbg">прошлый СК:</string>
@ -757,8 +756,6 @@
<string name="profilenamecontainsdot">Имя профиля содержит точки.\nЭто не поддерживается NS.\nПрофиль не выгружен в NS.</string> <string name="profilenamecontainsdot">Имя профиля содержит точки.\nЭто не поддерживается NS.\nПрофиль не выгружен в NS.</string>
<string name="low_mark_comment">Меньшее значение диапазона целевых значений (только для дисплея)</string> <string name="low_mark_comment">Меньшее значение диапазона целевых значений (только для дисплея)</string>
<string name="high_mark_comment">Большее значение диапазона целевых значений (только для дисплея)</string> <string name="high_mark_comment">Большее значение диапазона целевых значений (только для дисплея)</string>
<string name="age">Возраст:</string>
<string name="weight_label">Вес:</string>
<string name="id">Идентификатор:</string> <string name="id">Идентификатор:</string>
<string name="submit">Отправить</string> <string name="submit">Отправить</string>
<string name="mostcommonprofile">Наиболее часто применяемый профиль:</string> <string name="mostcommonprofile">Наиболее часто применяемый профиль:</string>
@ -899,9 +896,36 @@
<string name="errors">Ошибки</string> <string name="errors">Ошибки</string>
<string name="ns_sync_slow">Замедлить выгрузку</string> <string name="ns_sync_slow">Замедлить выгрузку</string>
<string name="data_status">Состояние данных ГК</string> <string name="data_status">Состояние данных ГК</string>
<string name="statuslights_cannula_age">время, отработанное катетером помпы</string>
<string name="statuslights_patch_pump_age">время отработанное разовой помпой</string>
<string name="patch_pump">Разовая помпа</string>
<string name="recalculated_data_used">Используются пересчитанные данные</string> <string name="recalculated_data_used">Используются пересчитанные данные</string>
<string name="bg_too_close">ГК слишком близко к \n%1$s\n%2$s</string> <string name="bg_too_close">ГК слишком близко к \n%1$s\n%2$s</string>
<string name="identification">Идентификация (электронная почта, ник в Facebook или Discord и т. п)</string> <string name="identification">Идентификация (электронная почта, ник в Facebook или Discord и т. п)</string>
<string name="identification_not_set">Идентификация не задана в режиме разработчика</string> <string name="identification_not_set">Идентификация не задана в режиме разработчика</string>
<string name="a11y_dialog">диалог</string>
<string name="a11y_current_bg">текущий уровень гликемии</string>
<string name="a11_correction_percentage">корректный результат в %</string>
<string name="a11_correction_units">корректный результат в ед</string>
<string name="not_available_full">Недоступно</string> <string name="not_available_full">Недоступно</string>
<string name="a11y_high">высокий</string>
<string name="a11y_inrange">в диапазоне</string>
<string name="a11y_low">низкий</string>
<string name="a11y_arrow_double_down">быстро падает</string>
<string name="a11y_arrow_single_down">падает</string>
<string name="a11y_arrow_forty_five_down">медленно падает</string>
<string name="a11y_arrow_flat">стабильный</string>
<string name="a11y_arrow_forty_five_up">медленно поднимается</string>
<string name="a11y_arrow_single_up">растет</string>
<string name="a11y_arrow_double_up">стремительно растет</string>
<string name="a11y_arrow_none">отсутствует</string>
<string name="a11y_arrow_unknown">неизвестно</string>
<string name="a11y_graph">график</string>
<string name="a11y_bg_quality">качество глюкозы в крови</string>
<string name="a11y_bg_quality_recalculated">пересчитано</string>
<string name="a11y_bg_quality_doubles">двойные записи</string>
<string name="a11y_insulin_label">инсулин</string>
<string name="a11y_blood_glucose">уровень глюкозы в крови (ГК)</string>
<string name="a11y_bg_outdated">устаревшие данные</string>
<!-- WEAR OS-->
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Synchronizuje vaše dáta s NS</string> <string name="description_ns_client">Synchronizuje vaše dáta s NS</string>
<string name="description_ama">Stav algoritmu v roku 2017</string> <string name="description_ama">Stav algoritmu v roku 2017</string>
<string name="description_smb">Najnovší algoritmus pre pokročilých užívateľov</string> <string name="description_smb">Najnovší algoritmus pre pokročilých užívateľov</string>
<string name="description_smb_dynamic_isf">Najnovší algoritmus pre pokročilých užívateľov s dynamickým/automatickým ISF</string>
<string name="description_overview">Zobrazenie aktuálneho stavu vašeho uzavretého okruhu a tlačidlá k najpoužívanejším ovládacím prvkom</string> <string name="description_overview">Zobrazenie aktuálneho stavu vašeho uzavretého okruhu a tlačidlá k najpoužívanejším ovládacím prvkom</string>
<string name="description_persistent_notification">Zobrazuje priebežné oznámenia v Androide s krátkym prehľadom, čo práve uzavretý okruh robí</string> <string name="description_persistent_notification">Zobrazuje priebežné oznámenia v Androide s krátkym prehľadom, čo práve uzavretý okruh robí</string>
<string name="description_profile_local">Definujte profil, ktorý je dostupný offline.</string> <string name="description_profile_local">Definujte profil, ktorý je dostupný offline.</string>
@ -246,7 +247,7 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Všetky dáta poslať znova</string> <string name="resend_all_data">Všetky dáta poslať znova</string>
<string name="open_settings_on_wear">Otvoriť nastavenia na hodinkách</string> <string name="open_settings_on_wear">Otvoriť nastavenia na hodinkách</string>
<string name="basal_rate">Bazál:</string> <string name="basal_rate">Bazál</string>
<string name="basalvaluebelowminimum">Hodnota bazálu pod povoleným minimom. Profil nenastavený!</string> <string name="basalvaluebelowminimum">Hodnota bazálu pod povoleným minimom. Profil nenastavený!</string>
<string name="sms_actualbg">Glykémia:</string> <string name="sms_actualbg">Glykémia:</string>
<string name="sms_lastbg">Posledná glykémia:</string> <string name="sms_lastbg">Posledná glykémia:</string>
@ -280,10 +281,10 @@
<string name="profile">Profil</string> <string name="profile">Profil</string>
<string name="openapsama_max_daily_safety_multiplier_summary">Štandardná hodnota: 3 Toto je kľúčová hodnota zabezpečenia. Hovorí, že maximálny nastaviteľný bazál je trojnásobkom maximálneho denného bazálu. Spravidla to zrejme nebudete musieť meniť, prípadne si prečítate o téme \"3x max denný; 4x aktuálny\".</string> <string name="openapsama_max_daily_safety_multiplier_summary">Štandardná hodnota: 3 Toto je kľúčová hodnota zabezpečenia. Hovorí, že maximálny nastaviteľný bazál je trojnásobkom maximálneho denného bazálu. Spravidla to zrejme nebudete musieť meniť, prípadne si prečítate o téme \"3x max denný; 4x aktuálny\".</string>
<string name="openapsama_current_basal_safety_multiplier_summary">Štandardná hodnota: 4 Toto je druhá kľúčová hodnota. Hovorí, že maximálna hodnota dočasného bazálu nikdy nebude väčšia, ako štvornásobok aktuálneho bazálu. Je to preto, aby se ľudia nedostali do nebezpečných hodnôt skôr, ako pochopia ako OpenAPS pracuje. Znovu, štandardná hodnota je 4 a väčšina ľudí ju nikdy nebude musieť meniť. Pokiaľ nestačí, obvykle je problém niekde inde.</string> <string name="openapsama_current_basal_safety_multiplier_summary">Štandardná hodnota: 4 Toto je druhá kľúčová hodnota. Hovorí, že maximálna hodnota dočasného bazálu nikdy nebude väčšia, ako štvornásobok aktuálneho bazálu. Je to preto, aby se ľudia nedostali do nebezpečných hodnôt skôr, ako pochopia ako OpenAPS pracuje. Znovu, štandardná hodnota je 4 a väčšina ľudí ju nikdy nebude musieť meniť. Pokiaľ nestačí, obvykle je problém niekde inde.</string>
<string name="openapsama_autosens_max_summary">Štandardná hodnota: 1.2\nToto je bezpečnostné nastavenie pre detekciu citlivosti (a čoskoro autotune). Hovorí, že autosens môže zvýšiť bazály, znížiť ISF a znížiť cieľovú hodnotu glykémie o 20%%.</string> <string name="openapsama_autosens_max_summary">Štandardná hodnota: 1.2\nToto je bezpečnostné nastavenie pre detekciu citlivosti (a čoskoro autotune). Hovorí, že autosens môže zvýšiť bazály, znížiť ISF (citlivosť na inzulín) a znížiť cieľovú hodnotu glykémie o 20%%.</string>
<string name="openapsama_autosens_min_summary">Štandardná hodnota: 0.7\nToto je bezpečnostné nastavenie pre automatickú detekciu citlivosti. Hovorí, že automatická detekcia citlivosti môže znížiť bazály, zvýšiť ISF a zvýšiť cieľovú hodnotu glykémie na 70%.</string> <string name="openapsama_autosens_min_summary">Štandardná hodnota: 0.7\nToto je bezpečnostné nastavenie pre automatickú detekciu citlivosti. Hovorí, že automatická detekcia citlivosti môže znížiť bazály, zvýšiť ISF (citlivosť na inzulín) a zvýšiť cieľovú hodnotu glykémie na 70%.</string>
<string name="openapsama_autosens_adjusttargets">Autosense takisto upravuje cieľovú glykémiu</string> <string name="openapsama_autosens_adjusttargets">Autosense takisto upravuje cieľovú glykémiu</string>
<string name="openapsama_autosens_adjusttargets_summary">Štandardná hodnota: zapnuté\nToto nastavenie hovorí, že automatická detekcia citlivosti môže meniť tiež cieľové hodnoty glykémií.</string> <string name="openapsama_autosens_adjusttargets_summary">Štandardná hodnota: zapnuté\nToto je používané, aby automatická detekcia citlivosti mohla okrem cieľovej hodnoty glekémie, upravovať aj citlivosť, prevody a bazály.</string>
<string name="openapsama_bolussnooze_dia_divisor_summary">Štandardná hodnota: 2\nToto nastavenie hovorí, po akú časť z hodnoty DIA uzavretý okruh po boluse čaká a nereaguje na zmeny glykémií (tu 3DIA/2 = 1,5h).</string> <string name="openapsama_bolussnooze_dia_divisor_summary">Štandardná hodnota: 2\nToto nastavenie hovorí, po akú časť z hodnoty DIA uzavretý okruh po boluse čaká a nereaguje na zmeny glykémií (tu 3DIA/2 = 1,5h).</string>
<string name="openapsama_min_5m_carbimpact_summary">Štandardná hodnota: 3.0 (AMA), alebo 8.0 (SMB) mg/dl/5min. Táto hodnota definuje minimálnu časť vstrebaných sacharidov za každých 5min. Táto hodnota ovplyvňuje výpočet COB.</string> <string name="openapsama_min_5m_carbimpact_summary">Štandardná hodnota: 3.0 (AMA), alebo 8.0 (SMB) mg/dl/5min. Táto hodnota definuje minimálnu časť vstrebaných sacharidov za každých 5min. Táto hodnota ovplyvňuje výpočet COB.</string>
<string name="openapsama_link_to_preferncejson_doc_txt">Pozor!\nZa normálnych okolností tieto hodnoty nemusíte meniť. Kliknete TU, PREČÍTAJTE si informácie a UISTITE sa, že im rozumiete skôr, ako ich začnete meniť.</string> <string name="openapsama_link_to_preferncejson_doc_txt">Pozor!\nZa normálnych okolností tieto hodnoty nemusíte meniť. Kliknete TU, PREČÍTAJTE si informácie a UISTITE sa, že im rozumiete skôr, ako ich začnete meniť.</string>
@ -434,6 +435,7 @@
<string name="ns_localbroadcasts">Povoliť vysielanie do iných aplikácií (napr. xDrip+). Nepovoľujte, pokiaľ máte nainštalovanú viac ako jednu AAPS, alebo NSClient inštanciu!</string> <string name="ns_localbroadcasts">Povoliť vysielanie do iných aplikácií (napr. xDrip+). Nepovoľujte, pokiaľ máte nainštalovanú viac ako jednu AAPS, alebo NSClient inštanciu!</string>
<string name="ns_localbroadcasts_title">Povoliť lokálne vysielanie.</string> <string name="ns_localbroadcasts_title">Povoliť lokálne vysielanie.</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB s dynamickým ISF</string>
<string name="enableuam">Povoliť UAM</string> <string name="enableuam">Povoliť UAM</string>
<string name="enablesmb">Povoliť SMB</string> <string name="enablesmb">Povoliť SMB</string>
<string name="enablesmb_summary">Použiť Super Mikro Bolusy namiesto dočasných bazálov, pre zrýchleniu účinku</string> <string name="enablesmb_summary">Použiť Super Mikro Bolusy namiesto dočasných bazálov, pre zrýchleniu účinku</string>
@ -502,6 +504,7 @@
<string name="negativeonly">Iba záporné</string> <string name="negativeonly">Iba záporné</string>
<string name="overview_editquickwizard_usecob">Výpočet COB</string> <string name="overview_editquickwizard_usecob">Výpočet COB</string>
<string name="overview_editquickwizard_usetemptarget">Výpočet dočasného cieľa</string> <string name="overview_editquickwizard_usetemptarget">Výpočet dočasného cieľa</string>
<string name="overview_editquickwizard_usepercentage">Percentuálny výpočet</string>
<string name="loopenabled">Uzavretý okruh povolený</string> <string name="loopenabled">Uzavretý okruh povolený</string>
<string name="apsselected">APS vybrané</string> <string name="apsselected">APS vybrané</string>
<string name="nsclienthaswritepermission">NSClient má povolenie k zápisu</string> <string name="nsclienthaswritepermission">NSClient má povolenie k zápisu</string>
@ -757,8 +760,8 @@
<string name="profilenamecontainsdot">Názov profilu obsahuje bodky.\nToto nie je podporované v NS.\nProfil nebude prenesený do NS.</string> <string name="profilenamecontainsdot">Názov profilu obsahuje bodky.\nToto nie je podporované v NS.\nProfil nebude prenesený do NS.</string>
<string name="low_mark_comment">Spodná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)</string> <string name="low_mark_comment">Spodná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)</string>
<string name="high_mark_comment">Horná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)</string> <string name="high_mark_comment">Horná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)</string>
<string name="age">Vek:</string> <string name="age">Vek</string>
<string name="weight_label">Váha:</string> <string name="weight_label">Váha</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Odoslať</string> <string name="submit">Odoslať</string>
<string name="mostcommonprofile">Najčastejšie používaný profil:</string> <string name="mostcommonprofile">Najčastejšie používaný profil:</string>
@ -900,9 +903,74 @@
<string name="errors">Chyby</string> <string name="errors">Chyby</string>
<string name="ns_sync_slow">Spomaliť nahrávanie</string> <string name="ns_sync_slow">Spomaliť nahrávanie</string>
<string name="data_status">Stav dát glykémie</string> <string name="data_status">Stav dát glykémie</string>
<string name="statuslights_cannula_age">vek kanyly</string>
<string name="statuslights_patch_pump_age">vek náplasťovej pumpy</string>
<string name="patch_pump">Náplasťová pumpa</string>
<string name="recalculated_data_used">Použité prepočítané dáta</string> <string name="recalculated_data_used">Použité prepočítané dáta</string>
<string name="bg_too_close">Glykémia je príliš blízko:\n%1$s\n%2$s</string> <string name="bg_too_close">Glykémia je príliš blízko:\n%1$s\n%2$s</string>
<string name="identification">Identifikácia (E-mail, prezývka FB, alebo Discord atď.)</string> <string name="identification">Identifikácia (E-mail, prezývka FB, alebo Discord atď.)</string>
<string name="identification_not_set">Identifikácia nie je nastavená vo vývojárskom móde</string> <string name="identification_not_set">Identifikácia nie je nastavená vo vývojárskom móde</string>
<string name="a11y_dialog">dialog</string>
<string name="a11y_current_bg">aktuálna glykémia</string>
<string name="a11_correction_percentage">správny výsledok v %</string>
<string name="a11_correction_units">správny výsledok s jednotkami</string>
<string name="not_available_full">Nedostupný</string> <string name="not_available_full">Nedostupný</string>
<string name="a11y_high">vysoká</string>
<string name="a11y_inrange">v rozsahu</string>
<string name="a11y_low">nízka</string>
<string name="a11y_arrow_double_down">rýchly pokles</string>
<string name="a11y_arrow_single_down">klesajúca</string>
<string name="a11y_arrow_forty_five_down">pomaly klesajúca</string>
<string name="a11y_arrow_flat">stabilná</string>
<string name="a11y_arrow_forty_five_up">pomaly stúpajúca</string>
<string name="a11y_arrow_single_up">stúpajúca</string>
<string name="a11y_arrow_double_up">rýchlo stúpajúca</string>
<string name="a11y_arrow_none">žiadny</string>
<string name="a11y_arrow_unknown">neznámy</string>
<string name="a11y_graph">graf</string>
<string name="a11y_bg_quality">kvalita glykémií</string>
<string name="a11y_bg_quality_recalculated">prepočítané</string>
<string name="a11y_bg_quality_doubles">dvojité zápisy</string>
<string name="a11y_insulin_label">inzulín</string>
<string name="a11y_blood_glucose">glykémia</string>
<string name="a11y_bg_outdated">zastaralé</string>
<string name="a11y_carb_reminder">nastaviť pripomienku</string>
<string name="a11y_add_new_profile">pridať nový profil</string>
<string name="a11y_clone_profile">klonovať aktuálny profil</string>
<string name="a11y_delete_current_profile">zmazať aktuálny profil</string>
<string name="a11y_add_new_to_list">pridať nový do zoznamu</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Dočasný cieľ neznáma predvoľba: %1$s</string>
<string name="wear_action_tempt_cancel_message">Zrušenie bežiaceho dočasného cieľa?</string>
<string name="wear_action_tempt_unit_error">Použité rozdielne jednotky v hodinkách a v telefóne!</string>
<string name="wear_action_tempt_zero_message">Nulový dočasný cieľ - zrušenie bežiaceho dočasného cieľa?</string>
<string name="wear_action_tempt_min_bg_error">Minimálna glykémia mimo rozsah!</string>
<string name="wear_action_tempt_max_bg_error">Maximálna glykémia mimo rozsah!</string>
<string name="wear_action_tempt_manual_range_message">Doč. cieľ:\nMin: %1$s\nMax: %2$s\nTrvanie: %3$s</string>
<string name="wear_action_tempt_manual_message">Doč. cieľ:\nCieľ: %1$s\nTrvanie: %2$s</string>
<string name="wear_action_tempt_preset_message">Doč. cieľ:\nDôvod: %1$s\nCieľ: %2$s\nTrvanie: %3$s</string>
<string name="quick_wizard_message">Rýchly bolus: %1$s\nInzulín: %2$.2fJI\nSacharidy: %3$dg</string>
<string name="wizard_result">Kalkulačka: \nInzulín: %1$.2fJI\nSacharidy: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Zobraziť záznam na zariadení:</string>
<string name="quick_wizard_not_available">Vybraný rýchly bolus už nie je k dispozícii, obnovte prosím dlaždicu</string>
<string name="wizard_no_actual_bg">Žiadna aktuálna glykémia k základnému výpočtu!</string>
<string name="wizard_no_active_profile">Nie je nastavený žiadny aktívny profil!</string>
<string name="wizard_no_cob">Neznáme COB! Chýbajú glykémie, alebo bola práve reštartovaná aplikácia?</string>
<string name="wizard_carbs_constraint">Sacharidy mimo povolený rozsah!</string>
<string name="wizard_explain_calc">Kalk (IC: %2$.1f, ISF: %2$.1f) z:\"</string>
<string name="wizard_explain_carbs">Sacharidy: %1$.2fJI</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fJI</string>
<string name="wizard_explain_bg">Gly: %1$.2fJI</string>
<string name="wizard_explain_basal_iob">Bazál IOB: %1$.2fJI</string>
<string name="wizard_explain_bolus_iob">Bolus IOB: %1$.2fJI</string>
<string name="wizard_explain_superbolus">Superbolus: %1$.2fJI</string>
<string name="wizard_explain_trend">15min trend: %1$.2fJI</string>
<string name="wizard_explain_percent">Percentá: %1$.2fJI x %2$d%% ≈ %3$.2fJI</string>
<string name="wizard_constraint_bolus_size">Inzulín mimo povolený rozsah!\nNie je možné podať %1$.2fJI</string>
<string name="wizard_explain_tt">DC: %1$s</string>
<string name="wizard_explain_tt_to">%1$s do %2$s</string>
<string name="wizard_pump_not_available">Pumpa nedostupná!</string>
<string name="wear_unknown_action_string">Neznámy príkaz k akcii:</string>
<string name="overview_editquickwizard_percentage">Percentuálny podiel</string>
<string name="app_default">Predvolené aplikáciou</string>
</resources> </resources>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Synkroniserar dina data med Nightscout</string> <string name="description_ns_client">Synkroniserar dina data med Nightscout</string>
<string name="description_ama">Så som algoritmen var definierad år 2017</string> <string name="description_ama">Så som algoritmen var definierad år 2017</string>
<string name="description_smb">Den senaste algoritmen för avancerade användare</string> <string name="description_smb">Den senaste algoritmen för avancerade användare</string>
<string name="description_smb_dynamic_isf">Senaste algoritm för avancerade användare med dynamisk / automatisk ISF</string>
<string name="description_overview">Visar loopens nuvarande tillstånd och knappar för de vanligaste funktionerna</string> <string name="description_overview">Visar loopens nuvarande tillstånd och knappar för de vanligaste funktionerna</string>
<string name="description_persistent_notification">Visar en konstant avisering med en kort sammanfattning av vad din loop gör</string> <string name="description_persistent_notification">Visar en konstant avisering med en kort sammanfattning av vad din loop gör</string>
<string name="description_profile_local">Definiera en profil som är tillgänglig offline.</string> <string name="description_profile_local">Definiera en profil som är tillgänglig offline.</string>
@ -247,7 +248,7 @@ Eversense-appen.</string>
<string name="wear">Klocka (Wear)</string> <string name="wear">Klocka (Wear)</string>
<string name="resend_all_data">Uppdatera klockans data</string> <string name="resend_all_data">Uppdatera klockans data</string>
<string name="open_settings_on_wear">Öppna inställningar på klockan</string> <string name="open_settings_on_wear">Öppna inställningar på klockan</string>
<string name="basal_rate">Basal:</string> <string name="basal_rate">Basaldos</string>
<string name="basalvaluebelowminimum">Basal understiger miniminivå. Profilen sattes inte.</string> <string name="basalvaluebelowminimum">Basal understiger miniminivå. Profilen sattes inte.</string>
<string name="sms_actualbg">BG:</string> <string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Senaste BG:</string> <string name="sms_lastbg">Senaste BG:</string>
@ -268,6 +269,7 @@ Eversense-appen.</string>
<string name="configbuilder_shortname">Konf</string> <string name="configbuilder_shortname">Konf</string>
<string name="loop_shortname">Loop</string> <string name="loop_shortname">Loop</string>
<string name="oaps_shortname">OAPS</string> <string name="oaps_shortname">OAPS</string>
<string name="dynisf_shortname">DynISF</string>
<string name="localprofile_shortname">LP</string> <string name="localprofile_shortname">LP</string>
<string name="overview_shortname">Hem</string> <string name="overview_shortname">Hem</string>
<string name="virtualpump_shortname">vPump</string> <string name="virtualpump_shortname">vPump</string>
@ -435,6 +437,7 @@ Eversense-appen.</string>
<string name="ns_localbroadcasts">Aktivera sändning till andra appar (som xDrip+) på denna telefon. Aktivera inte detta om du har fler än en förekomst av AAPS eller NSClient installerad!</string> <string name="ns_localbroadcasts">Aktivera sändning till andra appar (som xDrip+) på denna telefon. Aktivera inte detta om du har fler än en förekomst av AAPS eller NSClient installerad!</string>
<string name="ns_localbroadcasts_title">Aktivera lokala broadcasts</string> <string name="ns_localbroadcasts_title">Aktivera lokala broadcasts</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB Dynamisk ISF</string>
<string name="enableuam">Aktivera UAM</string> <string name="enableuam">Aktivera UAM</string>
<string name="enablesmb">Aktivera SMB</string> <string name="enablesmb">Aktivera SMB</string>
<string name="enablesmb_summary">Använd Super Micro Bolusar istället för temp basal för snabbare resultat</string> <string name="enablesmb_summary">Använd Super Micro Bolusar istället för temp basal för snabbare resultat</string>
@ -503,6 +506,7 @@ Eversense-appen.</string>
<string name="negativeonly">Endast negativa</string> <string name="negativeonly">Endast negativa</string>
<string name="overview_editquickwizard_usecob">Använd COB</string> <string name="overview_editquickwizard_usecob">Använd COB</string>
<string name="overview_editquickwizard_usetemptarget">Använd temp målvärde</string> <string name="overview_editquickwizard_usetemptarget">Använd temp målvärde</string>
<string name="overview_editquickwizard_usepercentage">Procentuell beräkning</string>
<string name="loopenabled">Loop aktiverad</string> <string name="loopenabled">Loop aktiverad</string>
<string name="apsselected">APS vald</string> <string name="apsselected">APS vald</string>
<string name="nsclienthaswritepermission">NSClient kan uppdatera Nightscout</string> <string name="nsclienthaswritepermission">NSClient kan uppdatera Nightscout</string>
@ -758,8 +762,8 @@ Eversense-appen.</string>
<string name="profilenamecontainsdot">Profilnamnet innehåller punkter.\nDetta stöds inte av NS.\nProfil överförs inte till NS.</string> <string name="profilenamecontainsdot">Profilnamnet innehåller punkter.\nDetta stöds inte av NS.\nProfil överförs inte till NS.</string>
<string name="low_mark_comment">Nedre värdet för målområde (endast visning)</string> <string name="low_mark_comment">Nedre värdet för målområde (endast visning)</string>
<string name="high_mark_comment">Övre värdet för målområde (endast visning)</string> <string name="high_mark_comment">Övre värdet för målområde (endast visning)</string>
<string name="age">Ålder:</string> <string name="age">Ålder</string>
<string name="weight_label">Vikt:</string> <string name="weight_label">Vikt</string>
<string name="id">ID:</string> <string name="id">ID:</string>
<string name="submit">Spara</string> <string name="submit">Spara</string>
<string name="mostcommonprofile">Den vanligaste profilen:</string> <string name="mostcommonprofile">Den vanligaste profilen:</string>
@ -901,9 +905,74 @@ Eversense-appen.</string>
<string name="errors">Fel</string> <string name="errors">Fel</string>
<string name="ns_sync_slow">Långsamma uppladdningar</string> <string name="ns_sync_slow">Långsamma uppladdningar</string>
<string name="data_status">BG datastatus</string> <string name="data_status">BG datastatus</string>
<string name="statuslights_cannula_age">kanylålder</string>
<string name="statuslights_patch_pump_age">slanglös pump ålder</string>
<string name="patch_pump">Slanglös pump</string>
<string name="recalculated_data_used">Omräknad data används</string> <string name="recalculated_data_used">Omräknad data används</string>
<string name="bg_too_close">BG för nära:\n%1$s\n%2$s</string> <string name="bg_too_close">BG för nära:\n%1$s\n%2$s</string>
<string name="identification">Identifiering (e-post, FB, Discord-namn etc)</string> <string name="identification">Identifiering (e-post, FB, Discord-namn etc)</string>
<string name="identification_not_set">Identifiering inte angiven i dev-läge</string> <string name="identification_not_set">Identifiering inte angiven i dev-läge</string>
<string name="a11y_dialog">dialog</string>
<string name="a11y_current_bg">nuvarande BG</string>
<string name="a11_correction_percentage">korrigera med %</string>
<string name="a11_correction_units">korrigera med enheter</string>
<string name="not_available_full">Ej tillgängligt</string> <string name="not_available_full">Ej tillgängligt</string>
<string name="a11y_high">hög</string>
<string name="a11y_inrange">inom målområdet</string>
<string name="a11y_low">låg</string>
<string name="a11y_arrow_double_down">sjunker snabbt</string>
<string name="a11y_arrow_single_down">sjunker</string>
<string name="a11y_arrow_forty_five_down">sjunker långsamt</string>
<string name="a11y_arrow_flat">stabilt</string>
<string name="a11y_arrow_forty_five_up">stiger långsamt</string>
<string name="a11y_arrow_single_up">stiger</string>
<string name="a11y_arrow_double_up">stiger snabbt</string>
<string name="a11y_arrow_none">ingen</string>
<string name="a11y_arrow_unknown">okänd</string>
<string name="a11y_graph">graf</string>
<string name="a11y_bg_quality">Kvalitet på BG-data</string>
<string name="a11y_bg_quality_recalculated">omräknad</string>
<string name="a11y_bg_quality_doubles">dubbla poster</string>
<string name="a11y_insulin_label">insulin</string>
<string name="a11y_blood_glucose">blodglukos</string>
<string name="a11y_bg_outdated">föråldrad</string>
<string name="a11y_carb_reminder">ställ in påminnelse</string>
<string name="a11y_add_new_profile">lägg till ny profil</string>
<string name="a11y_clone_profile">klona nuvarande profil</string>
<string name="a11y_delete_current_profile">ta bort aktuell profil</string>
<string name="a11y_add_new_to_list">lägg till ny i listan</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Tempmål okänd förinställning: %1$s</string>
<string name="wear_action_tempt_cancel_message">Avbryt temp-mål?</string>
<string name="wear_action_tempt_unit_error">Olika enheter på klocka och telefon!</string>
<string name="wear_action_tempt_zero_message">Noll-temp - avbyta nuvarande temp-mål?</string>
<string name="wear_action_tempt_min_bg_error">Ogiltigt minimum BG!</string>
<string name="wear_action_tempt_max_bg_error">Ogiltigt maximum BG!</string>
<string name="wear_action_tempt_manual_range_message">Temp-mål:\nMin: %1$s\nMax: %2$s\nVaraktighet: %3$s</string>
<string name="wear_action_tempt_manual_message">Temp-mål:\nMål: %1$s\nDuration: %2$s</string>
<string name="wear_action_tempt_preset_message">Temp-mål:\Orsak: %1$s\nMål: %2$s\nVaraktighet: %3$s</string>
<string name="quick_wizard_message">Snabbsteg: %1$s\nInsulin: %2$.2fU\nKolhydrater: %3$dg</string>
<string name="wizard_result">Kalkylator:\nInsulin: %1$.2fU\nKolhydrater: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Visa post på enhet:</string>
<string name="quick_wizard_not_available">Vald kalkylator inte längre tillgänglig. Vänligen uppdatera din bricka</string>
<string name="wizard_no_actual_bg">Inget nytt BG-värde att basera beräkning på!</string>
<string name="wizard_no_active_profile">Ingen aktiv profil vald!</string>
<string name="wizard_no_cob">Okänt COB! Saknas BG eller är appen nyss omstartad?</string>
<string name="wizard_carbs_constraint">Max KH uppnått!</string>
<string name="wizard_explain_calc">Kalkyl (IC: %2$.1f, ISF: %2$.1f) från:\"</string>
<string name="wizard_explain_carbs">Kolhydrater: %1$.2fU</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fU</string>
<string name="wizard_explain_bg">BG: %1$.2fU</string>
<string name="wizard_explain_basal_iob">IOB från basal: %1$.2fU</string>
<string name="wizard_explain_bolus_iob">IOB från bolus: %1$.2fU</string>
<string name="wizard_explain_superbolus">Superbolus: %1$.2fU</string>
<string name="wizard_explain_trend">15\' trend: %1$.2fU</string>
<string name="wizard_explain_percent">Procent: %1$.2fU x %2$d%% ≈ %3$.2fU</string>
<string name="wizard_constraint_bolus_size">Max bolus uppnått!\nKan inte leverera %1$.2fU</string>
<string name="wizard_explain_tt">TempM: %1$s</string>
<string name="wizard_explain_tt_to">%1$s till %2$s</string>
<string name="wizard_pump_not_available">Ingen pump tillgänglig!</string>
<string name="wear_unknown_action_string">Okänt kommando:</string>
<string name="overview_editquickwizard_percentage">Procent</string>
<string name="app_default">Appens standardinställning</string>
</resources> </resources>

View file

@ -171,7 +171,7 @@
<string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string> <string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string>
<string name="ic_multiple">Profilinizde I:C oranı için birden fazla değer kullanabilirsiniz.</string> <string name="ic_multiple">Profilinizde I:C oranı için birden fazla değer kullanabilirsiniz.</string>
<string name="ic_isf">Profilinizde ISF\'nizi değiştirirseniz, her zaman I:C oranınızı da değiştirmelisiniz.</string> <string name="ic_isf">Profilinizde ISF\'nizi değiştirirseniz, her zaman I:C oranınızı da değiştirmelisiniz.</string>
<string name="ic_label_exam">İnsülin/Karbonhidrat Oranı (I:C oranı)</string> <string name="ic_label_exam">Karbonhidrat insülin Oranı (I:C oranı)</string>
<string name="ic_increasingvalue">Daha yüksek I:C oranları, belirli bir miktarda karbonhidrat için daha az insülin verilmesine yol açar.</string> <string name="ic_increasingvalue">Daha yüksek I:C oranları, belirli bir miktarda karbonhidrat için daha az insülin verilmesine yol açar.</string>
<string name="ic_decreasingvalue">Daha düşük I:C oranları, belirli bir miktarda karbonhidrat için daha az insülin verilmesine yol açar.</string> <string name="ic_decreasingvalue">Daha düşük I:C oranları, belirli bir miktarda karbonhidrat için daha az insülin verilmesine yol açar.</string>
<string name="ic_noeffect">0 COB\'niz varsa, IC oranını değiştirmek, belirli bir KŞ değerini düzeltmek için farklı insülin miktarına sebep olur.</string> <string name="ic_noeffect">0 COB\'niz varsa, IC oranını değiştirmek, belirli bir KŞ değerini düzeltmek için farklı insülin miktarına sebep olur.</string>

View file

@ -25,6 +25,7 @@
<string name="description_ns_client">Nightscout ile verilerinizi senkronize eder</string> <string name="description_ns_client">Nightscout ile verilerinizi senkronize eder</string>
<string name="description_ama">2017\'da algoritmanın durumu</string> <string name="description_ama">2017\'da algoritmanın durumu</string>
<string name="description_smb">İleri düzey kullanıcılar için en yeni algoritma</string> <string name="description_smb">İleri düzey kullanıcılar için en yeni algoritma</string>
<string name="description_smb_dynamic_isf">Dinamik/otomatik İDF ile ileri düzey kullanıcılar için en yeni algoritma</string>
<string name="description_overview">Döngünüzün mevcut durumunu ve en yaygın eylemler için düğmeleri görüntüler</string> <string name="description_overview">Döngünüzün mevcut durumunu ve en yaygın eylemler için düğmeleri görüntüler</string>
<string name="description_persistent_notification">Döngü\'ün ne yaptığını kısa bir genel bakışla devam eden bir bildirimi gösterir</string> <string name="description_persistent_notification">Döngü\'ün ne yaptığını kısa bir genel bakışla devam eden bir bildirimi gösterir</string>
<string name="description_profile_local">Çevrimdışı kullanılabilen bir profil tanımlayın.</string> <string name="description_profile_local">Çevrimdışı kullanılabilen bir profil tanımlayın.</string>
@ -246,7 +247,7 @@
<string name="wear">Wear</string> <string name="wear">Wear</string>
<string name="resend_all_data">Tüm verileri yeniden gönderin</string> <string name="resend_all_data">Tüm verileri yeniden gönderin</string>
<string name="open_settings_on_wear">Ayarları Wear\'da açın</string> <string name="open_settings_on_wear">Ayarları Wear\'da açın</string>
<string name="basal_rate">Bazal oranı:</string> <string name="basal_rate">Bazal oranı</string>
<string name="basalvaluebelowminimum">Bazal değer minimumun altında. Profil ayarlanmadı!</string> <string name="basalvaluebelowminimum">Bazal değer minimumun altında. Profil ayarlanmadı!</string>
<string name="sms_actualbg">KŞ:</string> <string name="sms_actualbg">KŞ:</string>
<string name="sms_lastbg">Son KŞ:</string> <string name="sms_lastbg">Son KŞ:</string>
@ -267,6 +268,7 @@
<string name="configbuilder_shortname">KONF</string> <string name="configbuilder_shortname">KONF</string>
<string name="loop_shortname">DÖNGÜ</string> <string name="loop_shortname">DÖNGÜ</string>
<string name="oaps_shortname">OAPS</string> <string name="oaps_shortname">OAPS</string>
<string name="dynisf_shortname">DYNISF</string>
<string name="localprofile_shortname">YP</string> <string name="localprofile_shortname">YP</string>
<string name="overview_shortname">GİRİŞ</string> <string name="overview_shortname">GİRİŞ</string>
<string name="virtualpump_shortname">VPOMP</string> <string name="virtualpump_shortname">VPOMP</string>
@ -435,6 +437,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="ns_localbroadcasts">Diğer uygulamalara (xDrip+ gibi) yayınları etkinleştirin. Yüklü birden fazla APPS veya NSClient örneğiniz varsa etkinleştirmeyin!</string> <string name="ns_localbroadcasts">Diğer uygulamalara (xDrip+ gibi) yayınları etkinleştirin. Yüklü birden fazla APPS veya NSClient örneğiniz varsa etkinleştirmeyin!</string>
<string name="ns_localbroadcasts_title">Yerel yayınları etkinleştirin.</string> <string name="ns_localbroadcasts_title">Yerel yayınları etkinleştirin.</string>
<string name="openapssmb">OpenAPS SMB</string> <string name="openapssmb">OpenAPS SMB</string>
<string name="openaps_smb_dynamic_isf">OpenAPS SMB Dinamik İDF</string>
<string name="enableuam">UAM etkinleştir</string> <string name="enableuam">UAM etkinleştir</string>
<string name="enablesmb">SMB (Super Micro Bolus) etkinleştir</string> <string name="enablesmb">SMB (Super Micro Bolus) etkinleştir</string>
<string name="enablesmb_summary">Daha hızlı bir etki için geçici bazal yerine Super Micro Bolus kullanın</string> <string name="enablesmb_summary">Daha hızlı bir etki için geçici bazal yerine Super Micro Bolus kullanın</string>
@ -472,7 +475,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="missed_bg_readings">Kaçırılan KŞ Okumaları</string> <string name="missed_bg_readings">Kaçırılan KŞ Okumaları</string>
<string name="raise_notifications_as_android_notifications">Uyarılar ve bildirimler için sistem bildirimlerini kullan</string> <string name="raise_notifications_as_android_notifications">Uyarılar ve bildirimler için sistem bildirimlerini kullan</string>
<string name="gradually_increase_notification_volume">Uyarılar ve bildirimler için ses seviyesini kademeli olarak artırın</string> <string name="gradually_increase_notification_volume">Uyarılar ve bildirimler için ses seviyesini kademeli olarak artırın</string>
<string name="localalertsettings_title">Yerel uyarıları</string> <string name="localalertsettings_title">Yerel uyarılar</string>
<string name="enable_missed_bg_readings_alert">KŞ bilgisi alınmadığında uyar</string> <string name="enable_missed_bg_readings_alert">KŞ bilgisi alınmadığında uyar</string>
<string name="enable_pump_unreachable_alert">Pompa ulaşılamıyorsa uyar</string> <string name="enable_pump_unreachable_alert">Pompa ulaşılamıyorsa uyar</string>
<string name="pump_unreachable_threshold">Pompa ulaşılamaz eşiği [min]</string> <string name="pump_unreachable_threshold">Pompa ulaşılamaz eşiği [min]</string>
@ -503,6 +506,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="negativeonly">Sadece negatif</string> <string name="negativeonly">Sadece negatif</string>
<string name="overview_editquickwizard_usecob">COB (Aktif Karbonhidrat) hesaplaması</string> <string name="overview_editquickwizard_usecob">COB (Aktif Karbonhidrat) hesaplaması</string>
<string name="overview_editquickwizard_usetemptarget">Geçici hedef hesaplaması</string> <string name="overview_editquickwizard_usetemptarget">Geçici hedef hesaplaması</string>
<string name="overview_editquickwizard_usepercentage">Yüzde Hesaplaması</string>
<string name="loopenabled">Döngü etkin</string> <string name="loopenabled">Döngü etkin</string>
<string name="apsselected">APS Seçildi</string> <string name="apsselected">APS Seçildi</string>
<string name="nsclienthaswritepermission">NSClient\'in yazma izni var</string> <string name="nsclienthaswritepermission">NSClient\'in yazma izni var</string>
@ -758,8 +762,8 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="profilenamecontainsdot">Profil adı noktalar içeriyor.\nBu NS tarafından desteklenmiyor.\n Profil NS\'a yüklenmez.</string> <string name="profilenamecontainsdot">Profil adı noktalar içeriyor.\nBu NS tarafından desteklenmiyor.\n Profil NS\'a yüklenmez.</string>
<string name="low_mark_comment">Aralıktan daha düşük değer (sadece görüntüle)</string> <string name="low_mark_comment">Aralıktan daha düşük değer (sadece görüntüle)</string>
<string name="high_mark_comment">Aralıktan daha yüksek değer (Sadece görüntüle)</string> <string name="high_mark_comment">Aralıktan daha yüksek değer (Sadece görüntüle)</string>
<string name="age">Yaş:</string> <string name="age">Yaş</string>
<string name="weight_label">Kilo:</string> <string name="weight_label">ırlık</string>
<string name="id">Kimlik:</string> <string name="id">Kimlik:</string>
<string name="submit">Sunum</string> <string name="submit">Sunum</string>
<string name="mostcommonprofile">En yaygın profil:</string> <string name="mostcommonprofile">En yaygın profil:</string>
@ -901,9 +905,74 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="errors">Hatalar</string> <string name="errors">Hatalar</string>
<string name="ns_sync_slow">Yüklemeleri yavaşlat</string> <string name="ns_sync_slow">Yüklemeleri yavaşlat</string>
<string name="data_status">KŞ veri durumu</string> <string name="data_status">KŞ veri durumu</string>
<string name="statuslights_cannula_age">kanül yaşı</string>
<string name="statuslights_patch_pump_age">yama pompa yaşı</string>
<string name="patch_pump">Yama pompa</string>
<string name="recalculated_data_used">Kullanılan veriler yeniden hesaplandı</string> <string name="recalculated_data_used">Kullanılan veriler yeniden hesaplandı</string>
<string name="bg_too_close">KŞ çok yakın:\n%1$s\n%2$s</string> <string name="bg_too_close">KŞ çok yakın:\n%1$s\n%2$s</string>
<string name="identification">Tanımlama (E-posta, FB veya Discord rumuz vs.)</string> <string name="identification">Tanımlama (E-posta, FB veya Discord rumuz vs.)</string>
<string name="identification_not_set">Tanımlama geliştirme modunda ayarlanmadı</string> <string name="identification_not_set">Tanımlama geliştirme modunda ayarlanmadı</string>
<string name="a11y_dialog">diyalog</string>
<string name="a11y_current_bg">geçerli kan şekeri</string>
<string name="a11_correction_percentage">% ile doğru sonuç</string>
<string name="a11_correction_units">ünite ile doğru sonuç</string>
<string name="not_available_full">Mevcut değil</string> <string name="not_available_full">Mevcut değil</string>
<string name="a11y_high">yüksek</string>
<string name="a11y_inrange">aralık içinde</string>
<string name="a11y_low">düşük</string>
<string name="a11y_arrow_double_down">hızla düşüyor</string>
<string name="a11y_arrow_single_down">düşüyor</string>
<string name="a11y_arrow_forty_five_down">yavaşça düşüyor</string>
<string name="a11y_arrow_flat">sabit</string>
<string name="a11y_arrow_forty_five_up">yavaşça yükseliyor</string>
<string name="a11y_arrow_single_up">yükseliyor</string>
<string name="a11y_arrow_double_up">hızla yükseliyor</string>
<string name="a11y_arrow_none">yok</string>
<string name="a11y_arrow_unknown">bilinmiyor</string>
<string name="a11y_graph">grafik</string>
<string name="a11y_bg_quality">kan şekeri kalitesi</string>
<string name="a11y_bg_quality_recalculated">tekrar hesaplandı</string>
<string name="a11y_bg_quality_doubles">çift giriş</string>
<string name="a11y_insulin_label">insülin</string>
<string name="a11y_blood_glucose">kan şekeri</string>
<string name="a11y_bg_outdated">güncel değil</string>
<string name="a11y_carb_reminder">hatırlatıcıyı kur</string>
<string name="a11y_add_new_profile">yeni profil ekle</string>
<string name="a11y_clone_profile">mevcut profili klonla</string>
<string name="a11y_delete_current_profile">mevcut profil sil</string>
<string name="a11y_add_new_to_list">listeye yeni ekle</string>
<!-- WEAR OS-->
<string name="wear_action_tempt_preset_error">Geiçici hedef bilinmeyen ön ayarı: %1$s</string>
<string name="wear_action_tempt_cancel_message">Çalışan Geçici-Hedefler iptal edilsin mi?</string>
<string name="wear_action_tempt_unit_error">Saatte ve telefonda farklı birimler kullanılıyor!</string>
<string name="wear_action_tempt_zero_message">Sıfır-Geçici-Hedef - Çalışan Geçici-Hedefler iptal edilsin mi?</string>
<string name="wear_action_tempt_min_bg_error">Min-KŞ aralık dışında!</string>
<string name="wear_action_tempt_max_bg_error">Maks-KŞ aralık dışında!</string>
<string name="wear_action_tempt_manual_range_message">Geçici Hedef:\nMin: %1$s\nMaks: %2$s\nSüre: %3$s</string>
<string name="wear_action_tempt_manual_message">Geçici Hedef:\nHedef: %1$s\nSüre: %2$s</string>
<string name="wear_action_tempt_preset_message">Geçici Hedef:\Neden: %1$s\nHedef: %2$s\nSüre: %3$s</string>
<string name="quick_wizard_message">Hızlı Asistan: %1$s\nİnsülin: %2$.2fU\nKarb: %3$dg</string>
<string name="wizard_result">Hesap Mak.:\nİnsulin: %1$.2fÜ\nKarb: %2$dg</string>
<string name="overview_editquickwizard_show_on_device">Girişi cihazda göster:</string>
<string name="quick_wizard_not_available">Seçili hızlı asistan artık mevcut değil, lütfen kutucuğu yenileyin</string>
<string name="wizard_no_actual_bg">Hesaplamayı temel alacak yeni bir KŞ yok!</string>
<string name="wizard_no_active_profile">Etkin profil ayarlanmadı!</string>
<string name="wizard_no_cob">Aktif karbonhidrat bilinmiyor! KŞ okuması eksik veya son uygulama yeniden başlatılsın mı?</string>
<string name="wizard_carbs_constraint">Karbonhidrat kısıtlaması ihlali!</string>
<string name="wizard_explain_calc">Tarafından hesaplanan (IC: %2$.1f, İDF: %2$.1f):\"</string>
<string name="wizard_explain_carbs">Karb: %1$.2fÜ</string>
<string name="wizard_explain_cob">COB: %1$.0fg %2$.2fÜ</string>
<string name="wizard_explain_bg">KŞ: %1$.2fÜ</string>
<string name="wizard_explain_basal_iob">Bazal IOB: %1$.2fÜ</string>
<string name="wizard_explain_bolus_iob">Bolus IOB: %1$.2fÜ</string>
<string name="wizard_explain_superbolus">Süperbolus: %1$.2fÜ</string>
<string name="wizard_explain_trend">15\' trend: %1$.2fÜ</string>
<string name="wizard_explain_percent">Yüzde: %1$.2fÜ x %2$d%% ≈ %3$.2fÜ</string>
<string name="wizard_constraint_bolus_size">İnsülin kısıtlaması ihlali!\n%1$.2fÜ iletilemez</string>
<string name="wizard_explain_tt">GeçiciH: %1$s</string>
<string name="wizard_explain_tt_to">%1$s - %2$s</string>
<string name="wizard_pump_not_available">Pompa mevcut değil!</string>
<string name="wear_unknown_action_string">Bilinmeyen eylem komutu:</string>
<string name="overview_editquickwizard_percentage">Yüzde</string>
<string name="app_default">Uygulama varsayılanı</string>
</resources> </resources>

View file

@ -180,7 +180,6 @@
<string name="wear">手表</string> <string name="wear">手表</string>
<string name="resend_all_data">重新发送所有数据</string> <string name="resend_all_data">重新发送所有数据</string>
<string name="open_settings_on_wear">在手表上打开设置</string> <string name="open_settings_on_wear">在手表上打开设置</string>
<string name="basal_rate">基础率比值:</string>
<string name="basalvaluebelowminimum">基础率值低于泵支持的最小值。配置文件没有设定</string> <string name="basalvaluebelowminimum">基础率值低于泵支持的最小值。配置文件没有设定</string>
<string name="sms_actualbg">血糖:</string> <string name="sms_actualbg">血糖:</string>
<string name="sms_lastbg">上次血糖:</string> <string name="sms_lastbg">上次血糖:</string>
@ -562,4 +561,5 @@
<string name="very_old_version">非常旧版本</string> <string name="very_old_version">非常旧版本</string>
<string name="twohours">2小时</string> <string name="twohours">2小时</string>
<!-- SMS Communicator & OTP Authenticator --> <!-- SMS Communicator & OTP Authenticator -->
<!-- WEAR OS-->
</resources> </resources>

View file

@ -825,6 +825,9 @@
<string name="sensitivity_raises_target_summary">When sensitivity is detected, raise the target glucose</string> <string name="sensitivity_raises_target_summary">When sensitivity is detected, raise the target glucose</string>
<string name="key_keep_screen_on" translatable="false">keep_screen_on</string> <string name="key_keep_screen_on" translatable="false">keep_screen_on</string>
<string name="careportal_removestartedevents">Clean AndroidAPS started</string> <string name="careportal_removestartedevents">Clean AndroidAPS started</string>
<string name="show_invalidated">Show invalidated</string>
<string name="hide_invalidated">Hide invalidated</string>
<string name="remove_items">Remove items</string>
<string name="storedsettingsfound">Stored settings found</string> <string name="storedsettingsfound">Stored settings found</string>
<string name="allow_hardware_pump_text">Attention: If you activate and connect to a hardware pump, AndroidAPS will copy the basal settings from the profile to the pump, overwriting the existing basal rate stored on the pump. Make sure you have the correct basal setting in AndroidAPS. If you are not sure or don\'t want to overwrite the basal settings on your pump, press cancel and repeat switching to the pump at a later time.</string> <string name="allow_hardware_pump_text">Attention: If you activate and connect to a hardware pump, AndroidAPS will copy the basal settings from the profile to the pump, overwriting the existing basal rate stored on the pump. Make sure you have the correct basal setting in AndroidAPS. If you are not sure or don\'t want to overwrite the basal settings on your pump, press cancel and repeat switching to the pump at a later time.</string>
<string name="error_adding_treatment_title">Treatment data incomplete</string> <string name="error_adding_treatment_title">Treatment data incomplete</string>
@ -1207,4 +1210,14 @@
<string name="overview_editquickwizard_percentage">Percentage</string> <string name="overview_editquickwizard_percentage">Percentage</string>
<string name="app_default">Application default</string> <string name="app_default">Application default</string>
<string name="select_profile">Select profile to edit</string> <string name="select_profile">Select profile to edit</string>
<string name="refresh_from_nightscout">Refresh from Nightscout</string>
<string name="remove_selected_items">Remove selected items</string>
<string name="select_for_removal">Select for removal</string>
<string name="profile_changes">Profile changes</string>
<string name="tempt_targets">Temp Targets</string>
<string name="carbs_and_bolus">Carbs and bolus</string>
<string name="confirm_remove_multiple_items">Are you sure you want to remove %1$d items</string>
<string name="hide_loop">Hide loop</string>
<string name="show_loop">Show loop</string>
<string name="count_selected">%1$d selected</string>
</resources> </resources>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Automatická detekce senzitivity</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">Rozdíl glykémie</string> <string name="deltalabel">Rozdíl glykémie</string>
<string name="deltalabel_u">Rozdíl glykémie [%1$s]</string> <string name="deltalabel_u">Rozdíl glykémie [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Auto sens</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">BZ-Unterschied</string> <string name="deltalabel">BZ-Unterschied</string>
<string name="deltalabel_u">BZ-Unterschied [%1$s]</string> <string name="deltalabel_u">BZ-Unterschied [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">SSID WiFi %1$s %2$s</string> <string name="wifissidcompared">SSID WiFi %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Auto sens</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">Diferencia de glucosa</string> <string name="deltalabel">Diferencia de glucosa</string>
<string name="deltalabel_u">Diferencia de glucosa %1$s</string> <string name="deltalabel_u">Diferencia de glucosa %1$s</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">SSID WiFi %1$s %2$s</string> <string name="wifissidcompared">SSID WiFi %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Auto sens</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">Delta de glycémies</string> <string name="deltalabel">Delta de glycémies</string>
<string name="deltalabel_u">Delta Glyc. [%1$s]</string> <string name="deltalabel_u">Delta Glyc. [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">חישוב רגישות אוטומטי (Autosens)</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">הפרש רמת סוכר</string> <string name="deltalabel">הפרש רמת סוכר</string>
<string name="deltalabel_u">הפרש רמת סוכר [%1$s]</string> <string name="deltalabel_u">הפרש רמת סוכר [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Gevoeligheid %1$s %2$s %%</string> <string name="autosenscompared">Gevoeligheid %1$s %2$s %%</string>
<string name="autosenslabel">Gevoeligheid %</string> <string name="autosenslabel">Gevoeligheid %</string>
<string name="a11y_autosenslabel">Autosens</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">BG verschil</string> <string name="deltalabel">BG verschil</string>
<string name="deltalabel_u">BG verschil [%1$s]</string> <string name="deltalabel_u">BG verschil [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Autosens</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">BS forskjell</string> <string name="deltalabel">BS forskjell</string>
<string name="deltalabel_u">BS forskjell [%1$s]</string> <string name="deltalabel_u">BS forskjell [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Автосенс %1$s %2$s %%</string> <string name="autosenscompared">Автосенс %1$s %2$s %%</string>
<string name="autosenslabel">Автосенс %</string> <string name="autosenslabel">Автосенс %</string>
<string name="a11y_autosenslabel">Auto sens</string>
<string name="deltacompared">%3$s%1$s%2$s</string> <string name="deltacompared">%3$s%1$s%2$s</string>
<string name="deltalabel">Разница Гк</string> <string name="deltalabel">Разница Гк</string>
<string name="deltalabel_u">Разница ГК [%1$s]</string> <string name="deltalabel_u">Разница ГК [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Automatická detekcia citlivosti</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">Rozdiel glykémie</string> <string name="deltalabel">Rozdiel glykémie</string>
<string name="deltalabel_u">Rozdiel glykémie [%1$s]</string> <string name="deltalabel_u">Rozdiel glykémie [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Autosens %1$s %2$s %%</string> <string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string> <string name="autosenslabel">Autosens %</string>
<string name="a11y_autosenslabel">Auto sens</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">BG-förändring</string> <string name="deltalabel">BG-förändring</string>
<string name="deltalabel_u">BG-förändring [%1$s]</string> <string name="deltalabel_u">BG-förändring [%1$s]</string>

View file

@ -81,6 +81,7 @@
<string name="wifissidcompared">WiFi SSID %1$s %2$s</string> <string name="wifissidcompared">WiFi SSID %1$s %2$s</string>
<string name="autosenscompared">Otoduyarlılık %1$s %2$s %%</string> <string name="autosenscompared">Otoduyarlılık %1$s %2$s %%</string>
<string name="autosenslabel">Otoduyarlılık %</string> <string name="autosenslabel">Otoduyarlılık %</string>
<string name="a11y_autosenslabel">Oto duyarlılık</string>
<string name="deltacompared">%3$s %1$s %2$s</string> <string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">KŞ farkı</string> <string name="deltalabel">KŞ farkı</string>
<string name="deltalabel_u">KŞ farkı [%1$s]</string> <string name="deltalabel_u">KŞ farkı [%1$s]</string>

View file

@ -51,4 +51,10 @@
<string name="combo_tbr_count">Počet dočasných bazálů</string> <string name="combo_tbr_count">Počet dočasných bazálů</string>
<string name="bolusstopped">Bolus zastaven</string> <string name="bolusstopped">Bolus zastaven</string>
<string name="bolusstopping">Zastavování bolusu</string> <string name="bolusstopping">Zastavování bolusu</string>
<string name="pump_commerror_label">Počet chyb komun.</string>
<string name="show_comm_error_count_title">Zobr. počet chyb komun.</string>
<string name="show_comm_error_count_summary">Zobrazí počet chyb při komunikaci s Ruffy. Číslo vyšší než 0 obvykle značí problémy s Ruffy (může být nutné restartovat).</string>
<string name="combo_error_display_never">Nikdy</string>
<string name="combo_error_display_error">Když dojde k chybě</string>
<string name="combo_error_display_always">Vždy</string>
</resources> </resources>

View file

@ -51,4 +51,10 @@
<string name="combo_tbr_count">Contador TBR</string> <string name="combo_tbr_count">Contador TBR</string>
<string name="bolusstopped">Bolo interrumpido</string> <string name="bolusstopped">Bolo interrumpido</string>
<string name="bolusstopping">Deteniendo bolo</string> <string name="bolusstopping">Deteniendo bolo</string>
<string name="pump_commerror_label">Comm. Error contador</string>
<string name="show_comm_error_count_title">Mostrar contador de errores comm</string>
<string name="show_comm_error_count_summary">Muestra el recuento de errores, cuando se comunica con Ruffy. En la mayoría de los casos un número mayor que 0 indica problemas de comunicación con Ruffy (puede que sea necesario reiniciar).</string>
<string name="combo_error_display_never">Nunca</string>
<string name="combo_error_display_error">Cuando Error</string>
<string name="combo_error_display_always">Siempre</string>
</resources> </resources>

View file

@ -51,4 +51,10 @@
<string name="combo_tbr_count">Antall temp basaler</string> <string name="combo_tbr_count">Antall temp basaler</string>
<string name="bolusstopped">Bolus stoppet</string> <string name="bolusstopped">Bolus stoppet</string>
<string name="bolusstopping">Stopper bolus</string> <string name="bolusstopping">Stopper bolus</string>
<string name="pump_commerror_label">Komm. Feiltelling</string>
<string name="show_comm_error_count_title">Vis komm. feiltelling</string>
<string name="show_comm_error_count_summary">Viser antall feil i kommunikasjonen med Ruffy. Hvis høyere tall enn 0 vises innebærer det problemer med Ruffy kommunikasjonen og en omstart kan være nødvendig.</string>
<string name="combo_error_display_never">Aldri</string>
<string name="combo_error_display_error">Ved feil</string>
<string name="combo_error_display_always">Alltid</string>
</resources> </resources>

View file

@ -51,4 +51,10 @@
<string name="combo_tbr_count">Отсчет временного базала TBR</string> <string name="combo_tbr_count">Отсчет временного базала TBR</string>
<string name="bolusstopped">Болюс остановлен</string> <string name="bolusstopped">Болюс остановлен</string>
<string name="bolusstopping">Остановка болюса</string> <string name="bolusstopping">Остановка болюса</string>
<string name="pump_commerror_label">Ошибок связи</string>
<string name="show_comm_error_count_title">Показать количество ошибок связи</string>
<string name="show_comm_error_count_summary">Показывает количество ошибок связи с Ruffy. В большинстве случаев число выше 0 означает проблемы коммуникации с Ruffy (может потребоваться перезапуск).</string>
<string name="combo_error_display_never">Никогда</string>
<string name="combo_error_display_error">При ошибке</string>
<string name="combo_error_display_always">Всегда</string>
</resources> </resources>

View file

@ -51,4 +51,10 @@
<string name="combo_tbr_count">Antal temp basaler</string> <string name="combo_tbr_count">Antal temp basaler</string>
<string name="bolusstopped">Bolus avbruten</string> <string name="bolusstopped">Bolus avbruten</string>
<string name="bolusstopping">Avbryter bolus</string> <string name="bolusstopping">Avbryter bolus</string>
<string name="pump_commerror_label">Antal komm-fel</string>
<string name="show_comm_error_count_title">Visa antal komm-fel</string>
<string name="show_comm_error_count_summary">Visar antal fel när du kommunicerar med Ruffy. I de flesta fall indikerar en siffra högre än 0 att Ruffy har kommunikationsproblem (omstart kan behövas).</string>
<string name="combo_error_display_never">Aldrig</string>
<string name="combo_error_display_error">Vid fel</string>
<string name="combo_error_display_always">Alltid</string>
</resources> </resources>

View file

@ -51,4 +51,10 @@
<string name="combo_tbr_count">TBR (GBO) Geçici Bazal Oranı sayısı</string> <string name="combo_tbr_count">TBR (GBO) Geçici Bazal Oranı sayısı</string>
<string name="bolusstopped">Bolus durdu</string> <string name="bolusstopped">Bolus durdu</string>
<string name="bolusstopping">Bolus durdurma</string> <string name="bolusstopping">Bolus durdurma</string>
<string name="pump_commerror_label">İletişim Hata sayısı</string>
<string name="show_comm_error_count_title">İletişim hata sayısını göster</string>
<string name="show_comm_error_count_summary">Ruffy ile iletişim kurarken hata sayısını gösterir. Genelde 0\'dan büyük sayılar, Ruffy iletişim sorunlarını belirtir (yeniden başlatma gerekebilir).</string>
<string name="combo_error_display_never">Asla</string>
<string name="combo_error_display_error">Hata Olduğunda</string>
<string name="combo_error_display_always">Her zaman</string>
</resources> </resources>

View file

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z" />
</vector>

View file

@ -48,6 +48,11 @@
<string name="isf_label">Citlivost</string> <string name="isf_label">Citlivost</string>
<string name="basal_label">Bazál</string> <string name="basal_label">Bazál</string>
<string name="target_label">Cíl</string> <string name="target_label">Cíl</string>
<string name="dia_long_label">Doba působnosti inzulínu</string>
<string name="ic_long_label">Inzulíno-sacharidový poměr</string>
<string name="isf_long_label">Citlivost na inzulín</string>
<string name="basal_long_label">Bazál</string>
<string name="target_long_label">Cílová glykémie</string>
<string name="initializing">Inicializuji ...</string> <string name="initializing">Inicializuji ...</string>
<string name="serialnumber">Sériové číslo</string> <string name="serialnumber">Sériové číslo</string>
<string name="battery_label">Baterie</string> <string name="battery_label">Baterie</string>
@ -105,6 +110,7 @@
<string name="notes_label">Poznámky</string> <string name="notes_label">Poznámky</string>
<string name="remove_button">Odstranit</string> <string name="remove_button">Odstranit</string>
<string name="addnew">Přidat nový</string> <string name="addnew">Přidat nový</string>
<string name="addnew_above">Přidat novou nad</string>
<string name="wrong_pump_data">Data přicházejí z jiné pumpy. Změňte ovladač pro obnovení stavu pumpy.</string> <string name="wrong_pump_data">Data přicházejí z jiné pumpy. Změňte ovladač pro obnovení stavu pumpy.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Max bazál omezen na %1$.2f U/h: %2$s</string> <string name="limitingbasalratio">Max bazál omezen na %1$.2f U/h: %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Pro vyhledání Bluetooth zařízení na novějších telefonech musí být povoleno zjišťování polohy. AAPS vás nesleduje a po provedení párování můžete tuto volbu opět zakázat.</string> <string name="location_not_found_message">Pro vyhledání Bluetooth zařízení na novějších telefonech musí být povoleno zjišťování polohy. AAPS vás nesleduje a po provedení párování můžete tuto volbu opět zakázat.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">před %1$d min</string> <string name="minago">před %1$d min</string>
<string name="minago_long">před %1$d minutamí</string>
<string name="hoursago">před %1$.1f h</string> <string name="hoursago">před %1$.1f h</string>
<string name="shorthour">h</string> <string name="shorthour">h</string>
<string name="days">dnů</string> <string name="days">dnů</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pumpa spárována</string> <string name="pump_paired" comment="26 characters max for translation">Pumpa spárována</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Insight Tlačítko Obnovit</string> <string name="insight_refresh_button" comment="26 characters max for translation">Insight Tlačítko Obnovit</string>
<string name="a11y_min_button_description">snížení %1$s o %2$s</string>
<string name="a11y_plus_button_description">zvýšení %1$s o %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d den</item> <item quantity="one">%1$d den</item>
<item quantity="few">%1$d dnů</item> <item quantity="few">%1$d dnů</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF</string> <string name="isf_label">ISF</string>
<string name="basal_label">Basal</string> <string name="basal_label">Basal</string>
<string name="target_label">Målværdi</string> <string name="target_label">Målværdi</string>
<string name="dia_long_label">Varighed af insulin aktivitet</string>
<string name="ic_long_label">Insulin til kulhydrat forhold</string>
<string name="isf_long_label">Insulinfølsomhedsfaktor</string>
<string name="basal_long_label">Basal rate</string>
<string name="target_long_label">Blodsukker mål</string>
<string name="initializing">Initialiserer ...</string> <string name="initializing">Initialiserer ...</string>
<string name="serialnumber">Serienummer</string> <string name="serialnumber">Serienummer</string>
<string name="battery_label">Batteri</string> <string name="battery_label">Batteri</string>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF</string> <string name="isf_label">ISF</string>
<string name="basal_label">Basal</string> <string name="basal_label">Basal</string>
<string name="target_label">Ziel</string> <string name="target_label">Ziel</string>
<string name="dia_long_label">Insulinwirkdauer (duration of insulin action)</string>
<string name="ic_long_label">Insulin-zu-KH-Faktor</string>
<string name="isf_long_label">ISF: Insulin Sensitivitäts-Faktor (\"Korrektur-Faktor\")</string>
<string name="basal_long_label">Basalrate</string>
<string name="target_long_label">BZ Ziel</string>
<string name="initializing">Initialisierung...</string> <string name="initializing">Initialisierung...</string>
<string name="serialnumber">Seriennummer</string> <string name="serialnumber">Seriennummer</string>
<string name="battery_label">Batterie</string> <string name="battery_label">Batterie</string>
@ -105,6 +110,7 @@
<string name="notes_label">Notizen</string> <string name="notes_label">Notizen</string>
<string name="remove_button">Löschen</string> <string name="remove_button">Löschen</string>
<string name="addnew">Weiteren hinzufügen</string> <string name="addnew">Weiteren hinzufügen</string>
<string name="addnew_above">Neu oben hinzufügen</string>
<string name="wrong_pump_data">Daten kommen von einer anderen Pumpe. Wechsle den Pumpentreiber.</string> <string name="wrong_pump_data">Daten kommen von einer anderen Pumpe. Wechsle den Pumpentreiber.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Begrenzung der max. Basalrate auf %1$.2f IE/h wegen %2$s</string> <string name="limitingbasalratio">Begrenzung der max. Basalrate auf %1$.2f IE/h wegen %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Auf neueren Geräten muss für die Bluetooth-Erkennung der Standortdienst aktiviert sein. AAPS speichert keine Standortdaten und der Dienst kann nach erfolgreichem Pairing wieder deaktiviert werden.</string> <string name="location_not_found_message">Auf neueren Geräten muss für die Bluetooth-Erkennung der Standortdienst aktiviert sein. AAPS speichert keine Standortdaten und der Dienst kann nach erfolgreichem Pairing wieder deaktiviert werden.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">vor %1$d Min.</string> <string name="minago">vor %1$d Min.</string>
<string name="minago_long">vor %1$d Minuten</string>
<string name="hoursago">vor %1$.1f Stunde</string> <string name="hoursago">vor %1$.1f Stunde</string>
<string name="shorthour">h</string> <string name="shorthour">h</string>
<string name="days">Tage</string> <string name="days">Tage</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pumpe gekoppelt</string> <string name="pump_paired" comment="26 characters max for translation">Pumpe gekoppelt</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Insight Refresh Button</string> <string name="insight_refresh_button" comment="26 characters max for translation">Insight Refresh Button</string>
<string name="a11y_min_button_description">abnehmend %1$s mit %2$s</string>
<string name="a11y_plus_button_description">zunehmend %1$s mit %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d Tag</item> <item quantity="one">%1$d Tag</item>
<item quantity="other">%1$d Tage</item> <item quantity="other">%1$d Tage</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF (Factor Sensibilidad Insulina)</string> <string name="isf_label">ISF (Factor Sensibilidad Insulina)</string>
<string name="basal_label">Dosis Basal</string> <string name="basal_label">Dosis Basal</string>
<string name="target_label">Objetivo</string> <string name="target_label">Objetivo</string>
<string name="dia_long_label">Duración de la acción de la insulina</string>
<string name="ic_long_label">Ratio de insulina/carbohidratos</string>
<string name="isf_long_label">Factor de sensibilidad a la insulina</string>
<string name="basal_long_label">Tasa Basal</string>
<string name="target_long_label">Objetivo de glucosa en sangre</string>
<string name="initializing">Iniciando...</string> <string name="initializing">Iniciando...</string>
<string name="serialnumber">Número de serie</string> <string name="serialnumber">Número de serie</string>
<string name="battery_label">Batería</string> <string name="battery_label">Batería</string>
@ -105,6 +110,7 @@
<string name="notes_label">Notas</string> <string name="notes_label">Notas</string>
<string name="remove_button">Eliminar</string> <string name="remove_button">Eliminar</string>
<string name="addnew">Añadir nuevo</string> <string name="addnew">Añadir nuevo</string>
<string name="addnew_above">Añadir nuevo arriba</string>
<string name="wrong_pump_data">Los datos proceden de una bomba diferente. Cambia el controlador de la bomba para resetear su estado.</string> <string name="wrong_pump_data">Los datos proceden de una bomba diferente. Cambia el controlador de la bomba para resetear su estado.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Limitando max basal rate a %1$.2f U/h debido a %2$s</string> <string name="limitingbasalratio">Limitando max basal rate a %1$.2f U/h debido a %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Para activar la visibilidad Bluetooth en nuevos dispositivos, la ubicación debe estar habilitada. AAPS no hace un seguimiento de su ubicación y se puede desactivar después de realizar la vinculación.</string> <string name="location_not_found_message">Para activar la visibilidad Bluetooth en nuevos dispositivos, la ubicación debe estar habilitada. AAPS no hace un seguimiento de su ubicación y se puede desactivar después de realizar la vinculación.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">hace %1$d m</string> <string name="minago">hace %1$d m</string>
<string name="minago_long">Hace %1$d minutos</string>
<string name="hoursago">hace %1$.1f h</string> <string name="hoursago">hace %1$.1f h</string>
<string name="shorthour">h</string> <string name="shorthour">h</string>
<string name="days">días</string> <string name="days">días</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolo OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolo OK</string>
<string name="pump_paired" comment="26 characters max for translation">Bomba emparejada</string> <string name="pump_paired" comment="26 characters max for translation">Bomba emparejada</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Botón de refresco de Insight</string> <string name="insight_refresh_button" comment="26 characters max for translation">Botón de refresco de Insight</string>
<string name="a11y_min_button_description">decrecimiento %1$s por %2$s</string>
<string name="a11y_plus_button_description">incremento %1$s por %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d día</item> <item quantity="one">%1$d día</item>
<item quantity="other">%1$d días</item> <item quantity="other">%1$d días</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">SI</string> <string name="isf_label">SI</string>
<string name="basal_label">Basal</string> <string name="basal_label">Basal</string>
<string name="target_label">Cible</string> <string name="target_label">Cible</string>
<string name="dia_long_label">Durée d\'Action de l\'Insuline</string>
<string name="ic_long_label">Rapport Glucides / Insuline</string>
<string name="isf_long_label">Facteur de sensibilité à l\'insuline (SI)</string>
<string name="basal_long_label">Débit de Basal</string>
<string name="target_long_label">Glycémie cible</string>
<string name="initializing">En cours d\'initialisation...</string> <string name="initializing">En cours d\'initialisation...</string>
<string name="serialnumber">Numéro de série</string> <string name="serialnumber">Numéro de série</string>
<string name="battery_label">Niveau batterie</string> <string name="battery_label">Niveau batterie</string>
@ -105,6 +110,7 @@
<string name="notes_label">Notes</string> <string name="notes_label">Notes</string>
<string name="remove_button">Supprimer</string> <string name="remove_button">Supprimer</string>
<string name="addnew">Ajouter</string> <string name="addnew">Ajouter</string>
<string name="addnew_above">Ajouter le nouveau au-dessus</string>
<string name="wrong_pump_data">Les données proviennent de différentes pompes. Changer le pilote de la pompe pour réinitialiser l\'état de la pompe.</string> <string name="wrong_pump_data">Les données proviennent de différentes pompes. Changer le pilote de la pompe pour réinitialiser l\'état de la pompe.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Limiter le débit de basal max à %1$.2f U/h à cause de %2$s</string> <string name="limitingbasalratio">Limiter le débit de basal max à %1$.2f U/h à cause de %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">La localisation doit être activée sur les nouveaux appareils pour que la recherche Bluetooth fonctionne. AAPS n\'enregistre pas votre localisation et la localisation peut être désactivée après l\'appairage.</string> <string name="location_not_found_message">La localisation doit être activée sur les nouveaux appareils pour que la recherche Bluetooth fonctionne. AAPS n\'enregistre pas votre localisation et la localisation peut être désactivée après l\'appairage.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">il y a %1$d m</string> <string name="minago">il y a %1$d m</string>
<string name="minago_long">Il y a %1$d minutes</string>
<string name="hoursago">il y a %1$.1f h</string> <string name="hoursago">il y a %1$.1f h</string>
<string name="shorthour">h</string> <string name="shorthour">h</string>
<string name="days">jours</string> <string name="days">jours</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pompe appairée</string> <string name="pump_paired" comment="26 characters max for translation">Pompe appairée</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Actualisation état Insight</string> <string name="insight_refresh_button" comment="26 characters max for translation">Actualisation état Insight</string>
<string name="a11y_min_button_description">réduire %1$s par %2$s</string>
<string name="a11y_plus_button_description">incrémenter %1$s par %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d jour</item> <item quantity="one">%1$d jour</item>
<item quantity="other">%1$d jours</item> <item quantity="other">%1$d jours</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF</string> <string name="isf_label">ISF</string>
<string name="basal_label">אינסולין בזאלי</string> <string name="basal_label">אינסולין בזאלי</string>
<string name="target_label">ערך מטרה</string> <string name="target_label">ערך מטרה</string>
<string name="dia_long_label">משך פעילות האינסולין</string>
<string name="ic_long_label">יחס אינסולין-פחמימות </string>
<string name="isf_long_label">יחס התיקון (ISF)</string>
<string name="basal_long_label">מינון בזאלי</string>
<string name="target_long_label">ערך מטרה</string>
<string name="initializing">מאתחל...</string> <string name="initializing">מאתחל...</string>
<string name="serialnumber">מספר סידורי</string> <string name="serialnumber">מספר סידורי</string>
<string name="battery_label">סוללה</string> <string name="battery_label">סוללה</string>
@ -105,6 +110,7 @@
<string name="notes_label">הערות</string> <string name="notes_label">הערות</string>
<string name="remove_button">הסרה</string> <string name="remove_button">הסרה</string>
<string name="addnew">הוסף חדש</string> <string name="addnew">הוסף חדש</string>
<string name="addnew_above">הוסף חדש למעלה</string>
<string name="wrong_pump_data">הנתונים מגיעים ממשאבה אחרת. בחרו מחדש את סוג המשאבה כדי לאפס את מצב המשאבה.</string> <string name="wrong_pump_data">הנתונים מגיעים ממשאבה אחרת. בחרו מחדש את סוג המשאבה כדי לאפס את מצב המשאבה.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">מגביל את הקצב הבזאלי המרבי ל-%1$.2f יח\' לשעה בגלל %2$s</string> <string name="limitingbasalratio">מגביל את הקצב הבזאלי המרבי ל-%1$.2f יח\' לשעה בגלל %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">בכדי שסריקת בלוטות\' תעבוד יש לאפשר את שירות המיקום. AAPS לא עוקב אחר המיקום שלכם וניתן להפסיק את השירות לאחר סיום הצימוד.</string> <string name="location_not_found_message">בכדי שסריקת בלוטות\' תעבוד יש לאפשר את שירות המיקום. AAPS לא עוקב אחר המיקום שלכם וניתן להפסיק את השירות לאחר סיום הצימוד.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">לפני %1$d דקות</string> <string name="minago">לפני %1$d דקות</string>
<string name="minago_long">לפני %1$d דקות</string>
<string name="hoursago">לפני %1$.1f שעות</string> <string name="hoursago">לפני %1$.1f שעות</string>
<string name="shorthour">ש\'</string> <string name="shorthour">ש\'</string>
<string name="days">ימים</string> <string name="days">ימים</string>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF</string> <string name="isf_label">ISF</string>
<string name="basal_label">Basaal</string> <string name="basal_label">Basaal</string>
<string name="target_label">Streefdoel</string> <string name="target_label">Streefdoel</string>
<string name="dia_long_label">Duur van insuline activiteit</string>
<string name="ic_long_label">Insuline - Koolhydraat ratio</string>
<string name="isf_long_label">Insuline gevoeligheidsfactor</string>
<string name="basal_long_label">Basaalstand</string>
<string name="target_long_label">Bloedglucose doelwaarde</string>
<string name="initializing">Initialiseren...</string> <string name="initializing">Initialiseren...</string>
<string name="serialnumber">Serie nummer</string> <string name="serialnumber">Serie nummer</string>
<string name="battery_label">Batterij</string> <string name="battery_label">Batterij</string>
@ -105,6 +110,7 @@
<string name="notes_label">Notities</string> <string name="notes_label">Notities</string>
<string name="remove_button">Verwijder</string> <string name="remove_button">Verwijder</string>
<string name="addnew">Voeg nieuw toe</string> <string name="addnew">Voeg nieuw toe</string>
<string name="addnew_above">Voeg nieuw hierboven toe</string>
<string name="wrong_pump_data">Data komt van een andere pomp. Wijzig de pomp driver om de pomp status te resetten.</string> <string name="wrong_pump_data">Data komt van een andere pomp. Wijzig de pomp driver om de pomp status te resetten.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Beperken van basaal tot max %1$.2f E/uur wegens de %2$s</string> <string name="limitingbasalratio">Beperken van basaal tot max %1$.2f E/uur wegens de %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Om Bluetooth discovery met nieuwere apparaten te laten werken moet locatie worden ingeschakeld. AAPS volgt je locatie niet en locatie kan ook weer worden uitgeschakeld nadat het koppelen is gelukt.</string> <string name="location_not_found_message">Om Bluetooth discovery met nieuwere apparaten te laten werken moet locatie worden ingeschakeld. AAPS volgt je locatie niet en locatie kan ook weer worden uitgeschakeld nadat het koppelen is gelukt.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">%1$d m geleden</string> <string name="minago">%1$d m geleden</string>
<string name="minago_long">%1$d minuten geleden</string>
<string name="hoursago">%1$.1f u geleden</string> <string name="hoursago">%1$.1f u geleden</string>
<string name="shorthour">u</string> <string name="shorthour">u</string>
<string name="days">dagen</string> <string name="days">dagen</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pomp gekoppeld</string> <string name="pump_paired" comment="26 characters max for translation">Pomp gekoppeld</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Insight actualiseren knop</string> <string name="insight_refresh_button" comment="26 characters max for translation">Insight actualiseren knop</string>
<string name="a11y_min_button_description">verlaag %1$s met %2$s</string>
<string name="a11y_plus_button_description">verhoog %1$s met %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d dag</item> <item quantity="one">%1$d dag</item>
<item quantity="other">%1$d dagen</item> <item quantity="other">%1$d dagen</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF</string> <string name="isf_label">ISF</string>
<string name="basal_label">Basal</string> <string name="basal_label">Basal</string>
<string name="target_label">Målverdi</string> <string name="target_label">Målverdi</string>
<string name="dia_long_label">Insulinets virkningstid (DIA)</string>
<string name="ic_long_label">Insulin- til karbohydratfaktor</string>
<string name="isf_long_label">Insulin sensitivitetsfaktor (ISF)</string>
<string name="basal_long_label">Basal rate</string>
<string name="target_long_label">Blodsukkermål</string>
<string name="initializing">Starter opp...</string> <string name="initializing">Starter opp...</string>
<string name="serialnumber">Serienummer</string> <string name="serialnumber">Serienummer</string>
<string name="battery_label">Batteri</string> <string name="battery_label">Batteri</string>
@ -105,6 +110,7 @@
<string name="notes_label">Merknader</string> <string name="notes_label">Merknader</string>
<string name="remove_button">Fjern</string> <string name="remove_button">Fjern</string>
<string name="addnew">Legg til ny</string> <string name="addnew">Legg til ny</string>
<string name="addnew_above">Legg til ny over</string>
<string name="wrong_pump_data">Data kommer fra forskjellige pumper. Bytt pumpevalg for å nullstille pumpens tilstand.</string> <string name="wrong_pump_data">Data kommer fra forskjellige pumper. Bytt pumpevalg for å nullstille pumpens tilstand.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Begrenser maks basal dose til %1$.2f E/t på grunn av %2$s</string> <string name="limitingbasalratio">Begrenser maks basal dose til %1$.2f E/t på grunn av %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Bluetooth søk på nye mobiler virker bare når posisjonstjeneste er aktivert. AAPS lagrer ikke dine posisjonsdata og den kan derfor slås av etter vellykket sammenkobling.</string> <string name="location_not_found_message">Bluetooth søk på nye mobiler virker bare når posisjonstjeneste er aktivert. AAPS lagrer ikke dine posisjonsdata og den kan derfor slås av etter vellykket sammenkobling.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">%1$d min siden</string> <string name="minago">%1$d min siden</string>
<string name="minago_long">%1$d minutter siden</string>
<string name="hoursago">%1$.1f timer siden</string> <string name="hoursago">%1$.1f timer siden</string>
<string name="shorthour">t</string> <string name="shorthour">t</string>
<string name="days">dager</string> <string name="days">dager</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pumpe sammenkoblet</string> <string name="pump_paired" comment="26 characters max for translation">Pumpe sammenkoblet</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Insight oppdateringsknapp</string> <string name="insight_refresh_button" comment="26 characters max for translation">Insight oppdateringsknapp</string>
<string name="a11y_min_button_description">reduser %1$s med %2$s</string>
<string name="a11y_plus_button_description">øk %1$s med %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d dag</item> <item quantity="one">%1$d dag</item>
<item quantity="other">%1$d dager</item> <item quantity="other">%1$d dager</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF (чувствительность к инсулину)</string> <string name="isf_label">ISF (чувствительность к инсулину)</string>
<string name="basal_label">базал</string> <string name="basal_label">базал</string>
<string name="target_label">Целевое значение СК:</string> <string name="target_label">Целевое значение СК:</string>
<string name="dia_long_label">Продолжительность действия инсулина</string>
<string name="ic_long_label">Соотношение инсулин/углеводы I: C</string>
<string name="isf_long_label">Фактор Чувствительности к Инсулину (ISF)</string>
<string name="basal_long_label">Скорость базала</string>
<string name="target_long_label">Целевая ГК</string>
<string name="initializing">инициализация...</string> <string name="initializing">инициализация...</string>
<string name="serialnumber">Серийный номер</string> <string name="serialnumber">Серийный номер</string>
<string name="battery_label">батарея</string> <string name="battery_label">батарея</string>
@ -105,6 +110,7 @@
<string name="notes_label">Заметки</string> <string name="notes_label">Заметки</string>
<string name="remove_button">Удалить</string> <string name="remove_button">Удалить</string>
<string name="addnew">Добавить новый</string> <string name="addnew">Добавить новый</string>
<string name="addnew_above">Добавить строку сверху</string>
<string name="wrong_pump_data">Данные поступают с другой помпы. Измените драйвер помпы, чтобы сбросить ее состояние.</string> <string name="wrong_pump_data">Данные поступают с другой помпы. Измените драйвер помпы, чтобы сбросить ее состояние.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Макс базальный уровень ограничен до %1$.2f ед/ч вследствие %2$s</string> <string name="limitingbasalratio">Макс базальный уровень ограничен до %1$.2f ед/ч вследствие %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Для обнаружения Bluetooth на новых устройствах необходимо включить геолокацию. AAPS не отслеживает ваше местоположение и может быть отключен после успешного сопряжения.</string> <string name="location_not_found_message">Для обнаружения Bluetooth на новых устройствах необходимо включить геолокацию. AAPS не отслеживает ваше местоположение и может быть отключен после успешного сопряжения.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">%1$d мин. назад</string> <string name="minago">%1$d мин. назад</string>
<string name="minago_long">%1$d минут назад</string>
<string name="hoursago">%1$.1fч. назад</string> <string name="hoursago">%1$.1fч. назад</string>
<string name="shorthour">ч</string> <string name="shorthour">ч</string>
<string name="days">дн</string> <string name="days">дн</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">болюс ОК</string> <string name="bolus_ok" comment="26 characters max for translation">болюс ОК</string>
<string name="pump_paired" comment="26 characters max for translation">Помпа сопряжена</string> <string name="pump_paired" comment="26 characters max for translation">Помпа сопряжена</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Кнопка \"Обновить Insight\"</string> <string name="insight_refresh_button" comment="26 characters max for translation">Кнопка \"Обновить Insight\"</string>
<string name="a11y_min_button_description">снижение %1$s на %2$s</string>
<string name="a11y_plus_button_description">увеличение %1$s на %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d день</item> <item quantity="one">%1$d день</item>
<item quantity="few">%1$d дня</item> <item quantity="few">%1$d дня</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">Citlivosť</string> <string name="isf_label">Citlivosť</string>
<string name="basal_label">Bazál</string> <string name="basal_label">Bazál</string>
<string name="target_label">Cieľ</string> <string name="target_label">Cieľ</string>
<string name="dia_long_label">Doba pôsobenia inzulínu</string>
<string name="ic_long_label">Inzulíno-sacharidový pomer</string>
<string name="isf_long_label">Citlivosť na inzulín</string>
<string name="basal_long_label">Bazál</string>
<string name="target_long_label">Cieľová glykémia</string>
<string name="initializing">Inicializácia ...</string> <string name="initializing">Inicializácia ...</string>
<string name="serialnumber">Sériové číslo</string> <string name="serialnumber">Sériové číslo</string>
<string name="battery_label">Batéria</string> <string name="battery_label">Batéria</string>
@ -105,6 +110,7 @@
<string name="notes_label">Poznámky</string> <string name="notes_label">Poznámky</string>
<string name="remove_button">Vymazať</string> <string name="remove_button">Vymazať</string>
<string name="addnew">Pridať nový</string> <string name="addnew">Pridať nový</string>
<string name="addnew_above">Pridať novú nad</string>
<string name="wrong_pump_data">Dáta prichádzajú z inej pumpy. Zmeňte ovládač pre obnovenie stavu pumpy.</string> <string name="wrong_pump_data">Dáta prichádzajú z inej pumpy. Zmeňte ovládač pre obnovenie stavu pumpy.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Max bazál obmedzený na %1$.2f JI/h: %2$s</string> <string name="limitingbasalratio">Max bazál obmedzený na %1$.2f JI/h: %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Pre vyhľadanie Bluetooth zariadení na novších telefónoch musí byť povolené zisťovanie polohy. AAPS vás nesleduje a po úspešnom spárovaní môžete túto voľbu opäť zakázať.</string> <string name="location_not_found_message">Pre vyhľadanie Bluetooth zariadení na novších telefónoch musí byť povolené zisťovanie polohy. AAPS vás nesleduje a po úspešnom spárovaní môžete túto voľbu opäť zakázať.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">pred %1$d min</string> <string name="minago">pred %1$d min</string>
<string name="minago_long">pred %1$d minútami</string>
<string name="hoursago">pred %1$.1f h</string> <string name="hoursago">pred %1$.1f h</string>
<string name="shorthour">h</string> <string name="shorthour">h</string>
<string name="days">dní</string> <string name="days">dní</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pumpa spárovaná</string> <string name="pump_paired" comment="26 characters max for translation">Pumpa spárovaná</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Insight Tlačítko Obnoviť</string> <string name="insight_refresh_button" comment="26 characters max for translation">Insight Tlačítko Obnoviť</string>
<string name="a11y_min_button_description">zníženie %1$s o %2$s</string>
<string name="a11y_plus_button_description">zvýšenie %1$s o %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d deň</item> <item quantity="one">%1$d deň</item>
<item quantity="few">%1$d dní</item> <item quantity="few">%1$d dní</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">ISF</string> <string name="isf_label">ISF</string>
<string name="basal_label">Basal</string> <string name="basal_label">Basal</string>
<string name="target_label">Målvärde</string> <string name="target_label">Målvärde</string>
<string name="dia_long_label">Insulinets verkningstid</string>
<string name="ic_long_label">Insulin till kolhydratförhållande</string>
<string name="isf_long_label">Insulinkänslighetsfaktor</string>
<string name="basal_long_label">Basaldos</string>
<string name="target_long_label">Mål-BG</string>
<string name="initializing">Startar...</string> <string name="initializing">Startar...</string>
<string name="serialnumber">Serienummer</string> <string name="serialnumber">Serienummer</string>
<string name="battery_label">Batterinivå</string> <string name="battery_label">Batterinivå</string>
@ -105,6 +110,7 @@
<string name="notes_label">Anteckning</string> <string name="notes_label">Anteckning</string>
<string name="remove_button">Ta bort</string> <string name="remove_button">Ta bort</string>
<string name="addnew">Lägg till</string> <string name="addnew">Lägg till</string>
<string name="addnew_above">Lägg till nytt ovan</string>
<string name="wrong_pump_data">Data kommer från en annan pump. Byt pumpdrivrutin för att återställa.</string> <string name="wrong_pump_data">Data kommer från en annan pump. Byt pumpdrivrutin för att återställa.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">Max basal: %1$.2f E/h pga %2$s</string> <string name="limitingbasalratio">Max basal: %1$.2f E/h pga %2$s</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">För att Bluetooth ska fungera med nyare enheter, måste platsdata vara aktiverat. AAPS sparar inte din plats och det kan stängas av efter att enheten har parkopplats.</string> <string name="location_not_found_message">För att Bluetooth ska fungera med nyare enheter, måste platsdata vara aktiverat. AAPS sparar inte din plats och det kan stängas av efter att enheten har parkopplats.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">%1$dm sedan</string> <string name="minago">%1$dm sedan</string>
<string name="minago_long">%1$d minuter sedan</string>
<string name="hoursago">%1$.1f tim sedan</string> <string name="hoursago">%1$.1f tim sedan</string>
<string name="shorthour">h</string> <string name="shorthour">h</string>
<string name="days">dagar</string> <string name="days">dagar</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pump parkopplad</string> <string name="pump_paired" comment="26 characters max for translation">Pump parkopplad</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Uppdat. knapp för Insight</string> <string name="insight_refresh_button" comment="26 characters max for translation">Uppdat. knapp för Insight</string>
<string name="a11y_min_button_description">minska %1$s med %2$s</string>
<string name="a11y_plus_button_description">öka %1$s med %2$s</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d dag</item> <item quantity="one">%1$d dag</item>
<item quantity="other">%1$d dagar</item> <item quantity="other">%1$d dagar</item>

View file

@ -48,6 +48,11 @@
<string name="isf_label">İDF</string> <string name="isf_label">İDF</string>
<string name="basal_label">Bazal</string> <string name="basal_label">Bazal</string>
<string name="target_label">Hedef</string> <string name="target_label">Hedef</string>
<string name="dia_long_label">İnsülin Etki Süresi</string>
<string name="ic_long_label">Karbonhidrat insülin Oranı (I:C oranı)</string>
<string name="isf_long_label">İnsülin Duyarlılık Faktörü</string>
<string name="basal_long_label">Bazal oranı</string>
<string name="target_long_label">Kan Şekeri Hedefi</string>
<string name="initializing">Başlatılıyor ...</string> <string name="initializing">Başlatılıyor ...</string>
<string name="serialnumber">Seri numarası</string> <string name="serialnumber">Seri numarası</string>
<string name="battery_label">Pil</string> <string name="battery_label">Pil</string>
@ -105,6 +110,7 @@
<string name="notes_label">Notlar</string> <string name="notes_label">Notlar</string>
<string name="remove_button">Kaldır</string> <string name="remove_button">Kaldır</string>
<string name="addnew">Yeni ekle</string> <string name="addnew">Yeni ekle</string>
<string name="addnew_above">Yukarı yeni ekle</string>
<string name="wrong_pump_data">Veriler farklı pompadan geliyor. Pompa durumunu sıfırlamak için pompa sürücüsünü değiştirin.</string> <string name="wrong_pump_data">Veriler farklı pompadan geliyor. Pompa durumunu sıfırlamak için pompa sürücüsünü değiştirin.</string>
<!-- Constraints--> <!-- Constraints-->
<string name="limitingbasalratio">%2$s nedeniyle max bazal oranı %1$.2f Ü/s ile sınırlı</string> <string name="limitingbasalratio">%2$s nedeniyle max bazal oranı %1$.2f Ü/s ile sınırlı</string>
@ -127,6 +133,7 @@
<string name="location_not_found_message">Bluetooth cihaz bulmanın daha yeni cihazlarda çalışması için konum etkinleştirilmelidir. AAPS konumunuzu izlemez ve eşleştirme başarılı olduktan sonra devre dışı bırakılabilir.</string> <string name="location_not_found_message">Bluetooth cihaz bulmanın daha yeni cihazlarda çalışması için konum etkinleştirilmelidir. AAPS konumunuzu izlemez ve eşleştirme başarılı olduktan sonra devre dışı bırakılabilir.</string>
<!-- DateUtil--> <!-- DateUtil-->
<string name="minago">%1$d dak önce</string> <string name="minago">%1$d dak önce</string>
<string name="minago_long">%1$d dakika önce</string>
<string name="hoursago">%1$.1f s önce</string> <string name="hoursago">%1$.1f s önce</string>
<string name="shorthour">s</string> <string name="shorthour">s</string>
<string name="days">gün</string> <string name="days">gün</string>
@ -440,6 +447,8 @@
<string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string> <string name="bolus_ok" comment="26 characters max for translation">Bolus OK</string>
<string name="pump_paired" comment="26 characters max for translation">Pompa eşleştirildi</string> <string name="pump_paired" comment="26 characters max for translation">Pompa eşleştirildi</string>
<string name="insight_refresh_button" comment="26 characters max for translation">Insight Yenileme Düğmesi</string> <string name="insight_refresh_button" comment="26 characters max for translation">Insight Yenileme Düğmesi</string>
<string name="a11y_min_button_description">%2$s\'dan %1$s\'a azalma</string>
<string name="a11y_plus_button_description">%2$s\'dan %1$s\'a artış</string>
<plurals name="days"> <plurals name="days">
<item quantity="one">%1$d gün</item> <item quantity="one">%1$d gün</item>
<item quantity="other">%1$d gün</item> <item quantity="other">%1$d gün</item>

View file

@ -469,6 +469,7 @@
<string name="uel_stat_reset">STAT RESET</string> <string name="uel_stat_reset">STAT RESET</string>
<string name="uel_delete_logs">DELETE LOGS</string> <string name="uel_delete_logs">DELETE LOGS</string>
<string name="uel_delete_future_treatments">DELETE FUTURE TREATMENTS</string> <string name="uel_delete_future_treatments">DELETE FUTURE TREATMENTS</string>
<string name="delete_future_treatments">Delete future treatments</string>
<string name="uel_export_settings">EXPORT SETTINGS</string> <string name="uel_export_settings">EXPORT SETTINGS</string>
<string name="uel_import_settings">IMPORT SETTINGS</string> <string name="uel_import_settings">IMPORT SETTINGS</string>
<string name="uel_reset_databases">RESET DATABASES</string> <string name="uel_reset_databases">RESET DATABASES</string>

View file

@ -28,6 +28,8 @@
<item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeCloseDrawable">@drawable/ic_close</item>
</style> </style>
<!-- BolusProgress, Error --> <!-- BolusProgress, Error -->

View file

@ -7,7 +7,6 @@
<string name="medtronic_pump_type">Pompa Tipi</string> <string name="medtronic_pump_type">Pompa Tipi</string>
<string name="medtronic_pump_frequency">Pompa Frekansı</string> <string name="medtronic_pump_frequency">Pompa Frekansı</string>
<string name="medtronic_pump_bolus_delay">Bolus göndermeden önceki bekleme süresi (sn)</string> <string name="medtronic_pump_bolus_delay">Bolus göndermeden önceki bekleme süresi (sn)</string>
<string name="medtronic_pump_max_bolus">Pompadaki Maks Bolus (U)</string>
<string name="medtronic_pump_max_basal">Pompadaki Maks Bazal (Ü/s)</string> <string name="medtronic_pump_max_basal">Pompadaki Maks Bazal (Ü/s)</string>
<string name="medtronic_pump_encoding">Medtronic Kodlama</string> <string name="medtronic_pump_encoding">Medtronic Kodlama</string>
<string name="medtronic_pump_frequency_us_ca">ABD &amp; Kanada (916 MHz)</string> <string name="medtronic_pump_frequency_us_ca">ABD &amp; Kanada (916 MHz)</string>

View file

@ -62,7 +62,7 @@
<string name="omnipod_common_overview_pod_active_alerts">Aktive pod alarmer</string> <string name="omnipod_common_overview_pod_active_alerts">Aktive pod alarmer</string>
<string name="omnipod_common_overview_firmware_version">Firmwareversion</string> <string name="omnipod_common_overview_firmware_version">Firmwareversion</string>
<string name="omnipod_common_overview_time_on_pod">Tid på Pod</string> <string name="omnipod_common_overview_time_on_pod">Tid på Pod</string>
<string name="omnipod_common_overview_temp_basal_value">%1$.2fIE/t @%2$s (%3$d/%4$d minutter)</string> <string name="omnipod_common_overview_temp_basal_value">%1$.2fE/t @%2$s (%3$d/%4$d minutter)</string>
<string name="omnipod_common_overview_reservoir_value">%1$.2f IE tilbage</string> <string name="omnipod_common_overview_reservoir_value">%1$.2f IE tilbage</string>
<string name="omnipod_common_overview_reservoir_value_over50">Over 50 IE tilbage</string> <string name="omnipod_common_overview_reservoir_value_over50">Over 50 IE tilbage</string>
<string name="omnipod_common_overview_errors">Fejl</string> <string name="omnipod_common_overview_errors">Fejl</string>

View file

@ -36,4 +36,6 @@
<string name="dash_bolusdelivering">%1$.2f eh worden toegediend</string> <string name="dash_bolusdelivering">%1$.2f eh worden toegediend</string>
<string name="omnipod_common_alert_delivery_suspended">Insuline levering is opgeschort</string> <string name="omnipod_common_alert_delivery_suspended">Insuline levering is opgeschort</string>
<string name="omnipod_dash_connection_lost">Verbinding met pod verbroken</string> <string name="omnipod_dash_connection_lost">Verbinding met pod verbroken</string>
<string name="omnipod_dash_bolus_already_in_progress">Een andere bolus wordt op dit moment toegediend</string>
<string name="omnipod_dash_not_enough_insulin">Niet voldoende insuline in het reservoir</string>
</resources> </resources>

View file

@ -67,7 +67,7 @@
<string name="omnipod_eros_pod_management_pulse_log_value">יומן פעימות (מועתק ללוח ההעתקה)</string> <string name="omnipod_eros_pod_management_pulse_log_value">יומן פעימות (מועתק ללוח ההעתקה)</string>
<!-- Omnipod Eros - Pod Activation Wizard --> <!-- Omnipod Eros - Pod Activation Wizard -->
<string name="omnipod_eros_pod_activation_wizard_start_pod_activation_text">מלאו פוד חדש עם מספיק אינסולין לשלושה ימים.\n\nהקשיבו לשני צפצופים מהפוד במהלך המילוי. הם מציינים שהכמות המינימלית של 80 יחידות הוכנסה. הקפידו לרוקן לחלוטין את מזרק המילוי, גם לאחר שמיעת שני הצפצופים.\n\nלאחר מילוי הפוד, יש ללחוץ <b>הבא</b>.\n\n<b>הערה:</b> נא לא להסיר עדיין את מכסה המחט.\n<b> הערה:</b> נא להניח את הריילילינק במצב עומד ובמרחק סנטימטרים בודדים מהפוד.</string> <string name="omnipod_eros_pod_activation_wizard_start_pod_activation_text">מלאו פוד חדש עם מספיק אינסולין לשלושה ימים.\n\nהקשיבו לשני צפצופים מהפוד במהלך המילוי. הם מציינים שהכמות המינימלית של 80 יחידות הוכנסה. הקפידו לרוקן לחלוטין את מזרק המילוי, גם לאחר שמיעת שני הצפצופים.\n\nלאחר מילוי הפוד, יש ללחוץ <b>הבא</b>.\n\n<b>הערה:</b> נא לא להסיר עדיין את מכסה המחט.\n<b> הערה:</b> נא להניח את הריילילינק במצב עומד ובמרחק סנטימטרים בודדים מהפוד.</string>
<string name="omnipod_eros_pod_activation_wizard_initialize_pod_text">מנסה לצמד את הפוד החדש ולאתחלו.\n\nכאשר תהליך האתחול יושלם, ניתן ללחוץ על <b>הבא</b>.\n\n<b>שימו לב:</b> נא למקם את הריילילנק במצב אנכי ולמקם את הפוד כמה סנטימטרים ממנו.</string> <string name="omnipod_eros_pod_activation_wizard_initialize_pod_text">מנסה לצמד את הפוד החדש ולאתחלו.\n\nכאשר תהליך האתחול יושלם, ניתן ללחוץ על <b>הבא</b>.\n\n<b>שימו לב:</b> נא למקם את הריילילינק במצב אנכי ולמקם את הפוד מספר סנטימטרים ממנו.</string>
<!-- Omnipod Eros - Other --> <!-- Omnipod Eros - Other -->
<string name="omnipod_eros_uncertain">לא בטוח</string> <string name="omnipod_eros_uncertain">לא בטוח</string>
</resources> </resources>

View file

@ -54,19 +54,15 @@
<string name="pref_ring_history">История</string> <string name="pref_ring_history">История</string>
<string name="pref_light_ring_history">Олекотена история</string> <string name="pref_light_ring_history">Олекотена история</string>
<string name="pref_animations">Анимации</string> <string name="pref_animations">Анимации</string>
<string name="pref_wizard_in_menu">Калкулатор в менюто</string>
<string name="pref_prime_in_menu">Пълнене в менюто</string> <string name="pref_prime_in_menu">Пълнене в менюто</string>
<string name="pref_single_target">Единична цел</string> <string name="pref_single_target">Единична цел</string>
<string name="pref_wizard_percentage">Калкулатор с %</string>
<string name="pref_complication_tap_action">Допълнителни действия при почукване</string> <string name="pref_complication_tap_action">Допълнителни действия при почукване</string>
<string name="pref_unicode_in_complications">Unicode кодиране</string> <string name="pref_unicode_in_complications">Unicode кодиране</string>
<string name="pref_version">Версия:</string> <string name="pref_version">Версия:</string>
<string name="pref_moreWatchfaceSettings">Настройки на Watchface</string> <string name="pref_moreWatchfaceSettings">Настройки на Watchface</string>
<string name="pref_lookInYourWatchfaceConfiguration">Погледнете в конфигурацията, моля.</string> <string name="pref_lookInYourWatchfaceConfiguration">Погледнете в конфигурацията, моля.</string>
<string name="menu_tempt">Врем цел</string> <string name="menu_tempt">Врем цел</string>
<string name="menu_wizard">Калкулатор</string>
<string name="menu_bolus">Болус</string> <string name="menu_bolus">Болус</string>
<string name="menu_ecarb">уд. въгл.</string>
<string name="menu_settings">Настройки</string> <string name="menu_settings">Настройки</string>
<string name="menu_status">Статус</string> <string name="menu_status">Статус</string>
<string name="menu_resync">Ре-синхр.</string> <string name="menu_resync">Ре-синхр.</string>
@ -74,22 +70,12 @@
<string name="menu_none">Без</string> <string name="menu_none">Без</string>
<string name="menu_default">Стандартен</string> <string name="menu_default">Стандартен</string>
<string name="menu_menu">Меню</string> <string name="menu_menu">Меню</string>
<string name="action_duration">продължителност</string>
<string name="action_target" comment="In temp target menu, single target value">цел</string>
<string name="action_low" comment="In temp target menu, lower value from range">ниско</string>
<string name="action_high" comment="In temp target menu, higher value from range">висока</string>
<string name="action_carbs">вълехидрати</string>
<string name="action_percentage">% от профила</string>
<string name="action_start_min">старт [min]</string>
<string name="action_duration_h">прод [h]</string>
<string name="action_insulin">инсулин</string>
<string name="action_preset_1">Шаблон 1</string> <string name="action_preset_1">Шаблон 1</string>
<string name="action_preset_2">Шаблон 2</string> <string name="action_preset_2">Шаблон 2</string>
<string name="action_preset_3">Шаблон 3</string> <string name="action_preset_3">Шаблон 3</string>
<string name="action_free_amount" comment="In prime/fill menu, allows to enter any amount to be used for priming/filling">Неограничено кол</string> <string name="action_free_amount" comment="In prime/fill menu, allows to enter any amount to be used for priming/filling">Неограничено кол</string>
<string name="action_confirm">ПОТВЪРДИ</string> <string name="action_confirm">ПОТВЪРДИ</string>
<string name="action_timeshift">отместване</string> <string name="action_timeshift">отместване</string>
<string name="action_bolus">болус</string>
<string name="bolus_progress">Болус прогрес</string> <string name="bolus_progress">Болус прогрес</string>
<string name="press_to_cancel">натиснете за отмяна</string> <string name="press_to_cancel">натиснете за отмяна</string>
<string name="cancel_bolus">СПРИ БОЛУС</string> <string name="cancel_bolus">СПРИ БОЛУС</string>

View file

@ -11,6 +11,9 @@
<string name="label_xdrip_cockpit">AAPS (Cockpit)</string> <string name="label_xdrip_cockpit">AAPS (Cockpit)</string>
<string name="label_xdrip_steampunk">AAPS (Steampunk)</string> <string name="label_xdrip_steampunk">AAPS (Steampunk)</string>
<string name="label_digitalstyle">AAPS (DigitalStyle)</string> <string name="label_digitalstyle">AAPS (DigitalStyle)</string>
<string name="label_actions_tile">AAPS(Akce)</string>
<string name="label_temp_target_tile">AAPS(Doč. cíl)</string>
<string name="label_quick_wizard_tile">AAPS(Rychlý bolus)</string>
<string name="label_warning_sync">Žádná data!</string> <string name="label_warning_sync">Žádná data!</string>
<string name="label_warning_old">Stará data!</string> <string name="label_warning_old">Stará data!</string>
<string name="label_warning_since">Od %1$s</string> <string name="label_warning_since">Od %1$s</string>
@ -54,10 +57,10 @@
<string name="pref_ring_history">Kroužek Historie</string> <string name="pref_ring_history">Kroužek Historie</string>
<string name="pref_light_ring_history">Světlý kroužek Historie</string> <string name="pref_light_ring_history">Světlý kroužek Historie</string>
<string name="pref_animations">Animace</string> <string name="pref_animations">Animace</string>
<string name="pref_wizard_in_menu">Kalkulačka v nabídce</string> <string name="pref_wizard_in_menu">Kalkulačka v menu</string>
<string name="pref_prime_in_menu">Plnění v nabídce</string> <string name="pref_prime_in_menu">Plnění v nabídce</string>
<string name="pref_single_target">Jeden cíl</string> <string name="pref_single_target">Jeden cíl</string>
<string name="pref_wizard_percentage">Procenta z kalkulátoru</string> <string name="pref_wizard_percentage">Procento kalkulačky</string>
<string name="pref_complication_tap_action">Akce po klepnutí na komplikaci</string> <string name="pref_complication_tap_action">Akce po klepnutí na komplikaci</string>
<string name="pref_unicode_in_complications">Znaky Unicode v komplikacích</string> <string name="pref_unicode_in_complications">Znaky Unicode v komplikacích</string>
<string name="pref_version">Verze:</string> <string name="pref_version">Verze:</string>
@ -65,8 +68,11 @@
<string name="pref_lookInYourWatchfaceConfiguration">Podívejte se na konfiguraci hodinek prosím.</string> <string name="pref_lookInYourWatchfaceConfiguration">Podívejte se na konfiguraci hodinek prosím.</string>
<string name="menu_tempt">TempT</string> <string name="menu_tempt">TempT</string>
<string name="menu_wizard">Kalkulačka</string> <string name="menu_wizard">Kalkulačka</string>
<string name="menu_wizard_short">Kalk</string>
<string name="menu_treatment">Ošetření</string>
<string name="menu_treatment_short">Ošetř</string>
<string name="menu_bolus">Bolus</string> <string name="menu_bolus">Bolus</string>
<string name="menu_ecarb">eCarbs</string> <string name="menu_ecarb">Sach</string>
<string name="menu_settings">Nastavení</string> <string name="menu_settings">Nastavení</string>
<string name="menu_status">Stav</string> <string name="menu_status">Stav</string>
<string name="menu_resync">Re-Sync</string> <string name="menu_resync">Re-Sync</string>
@ -74,22 +80,31 @@
<string name="menu_none">Nic</string> <string name="menu_none">Nic</string>
<string name="menu_default">Výchozí</string> <string name="menu_default">Výchozí</string>
<string name="menu_menu">Menu</string> <string name="menu_menu">Menu</string>
<string name="action_duration">trvání</string> <string name="quick_wizard_short">XL</string>
<string name="action_target" comment="In temp target menu, single target value">cíl</string> <string name="action_duration">Trvání</string>
<string name="action_low" comment="In temp target menu, lower value from range">nízká</string> <string name="action_tempt_confirmation">Požadován dočasný cíl</string>
<string name="action_high" comment="In temp target menu, higher value from range">vysoká</string> <string name="action_quick_wizard_confirmation">Požadován rychlý bolus</string>
<string name="action_carbs">sacharidy</string> <string name="action_treatment_confirmation">Požadováno ošetření</string>
<string name="action_percentage">procento</string> <string name="action_bolus_confirmation">Požadován bolus</string>
<string name="action_start_min">začátek [min]</string> <string name="action_wizard_confirmation">Požadován kalkulátor</string>
<string name="action_duration_h">trvání [h]</string> <string name="action_fill_confirmation">Požadováno plnění</string>
<string name="action_insulin">inzulín</string> <string name="action_ecarb_confirmation">Požadovány sacharidy</string>
<string name="action_cpp_confirmation">Požadován profil</string>
<string name="action_target" comment="In temp target menu, single target value">Cíl</string>
<string name="action_low" comment="In temp target menu, lower value from range">Nízký</string>
<string name="action_high" comment="In temp target menu, higher value from range">Vysoký</string>
<string name="action_carbs">Sacharidy</string>
<string name="action_percentage">Procento</string>
<string name="action_start_min">Začátek [min]</string>
<string name="action_duration_h">Trvání [h]</string>
<string name="action_insulin">Inzulín</string>
<string name="action_preset_1">Předvolba 1</string> <string name="action_preset_1">Předvolba 1</string>
<string name="action_preset_2">Předvolba 2</string> <string name="action_preset_2">Předvolba 2</string>
<string name="action_preset_3">Předvolba 3</string> <string name="action_preset_3">Předvolba 3</string>
<string name="action_free_amount" comment="In prime/fill menu, allows to enter any amount to be used for priming/filling">Libovolné množství</string> <string name="action_free_amount" comment="In prime/fill menu, allows to enter any amount to be used for priming/filling">Libovolné množství</string>
<string name="action_confirm">POTVRDIT</string> <string name="action_confirm">POTVRDIT</string>
<string name="action_timeshift">posun času</string> <string name="action_timeshift">posun času</string>
<string name="action_bolus">bolus</string> <string name="action_bolus">Bolus</string>
<string name="bolus_progress">Průběh vydávání bolusu</string> <string name="bolus_progress">Průběh vydávání bolusu</string>
<string name="press_to_cancel">stisknutím tlačítka akci zrušíte</string> <string name="press_to_cancel">stisknutím tlačítka akci zrušíte</string>
<string name="cancel_bolus">ZRUŠIT BOLUS</string> <string name="cancel_bolus">ZRUŠIT BOLUS</string>
@ -142,4 +157,13 @@
<string name="simple_ui_charging">Při nabíjení</string> <string name="simple_ui_charging">Při nabíjení</string>
<string name="simple_ui_always_on">Vždy zapnuto</string> <string name="simple_ui_always_on">Vždy zapnuto</string>
<string name="simple_ui_always_on_charging">Vždy zapnuto a nabíjení</string> <string name="simple_ui_always_on_charging">Vždy zapnuto a nabíjení</string>
<string name="temp_target_eating_soon">Jídlo</string>
<string name="temp_target_hypo">Hypo</string>
<string name="temp_target_activity">Aktivita</string>
<string name="temp_target_manual">Ručně</string>
<string name="temp_target_cancel">Zrušit</string>
<string name="tile_none">Žádný</string>
<string name="tile_no_config">Není dostupná žádná konfigurace</string>
<string name="wear_control_not_enabled">Ovládání hodinkami vypnuto</string>
<string name="wear_control_no_data">Žádná data k dispozici</string>
</resources> </resources>

Some files were not shown because too many files have changed in this diff Show more