This commit is contained in:
Milos Kozak 2020-07-09 18:58:58 +02:00
commit 1d8120d051
56 changed files with 811 additions and 77 deletions

View file

@ -68,6 +68,7 @@
<activity android:name=".plugins.general.maintenance.activities.PrefImportListActivity" />
<activity android:name=".historyBrowser.HistoryBrowseActivity" />
<activity android:name=".activities.SurveyActivity" />
<activity android:name=".activities.ProfileHelperActivity" />
<activity android:name=".activities.StatsActivity" />
<!-- Receive new BG readings from other local apps -->

View file

@ -27,6 +27,7 @@ import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayoutMediator
import com.joanzapata.iconify.Iconify
import com.joanzapata.iconify.fonts.FontAwesomeModule
import info.nightscout.androidaps.activities.ProfileHelperActivity
import info.nightscout.androidaps.activities.NoSplashAppCompatActivity
import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.androidaps.activities.SingleFragmentActivity
@ -49,10 +50,10 @@ import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicato
import info.nightscout.androidaps.setupwizard.SetupWizardActivity
import info.nightscout.androidaps.utils.AndroidPermission
import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.locale.LocaleHelper
import info.nightscout.androidaps.utils.alertDialogs.OKDialog
import info.nightscout.androidaps.utils.buildHelper.BuildHelper
import info.nightscout.androidaps.utils.extensions.isRunningRealPumpTest
import info.nightscout.androidaps.utils.locale.LocaleHelper
import info.nightscout.androidaps.utils.protection.ProtectionCheck
import info.nightscout.androidaps.utils.resources.IconsProvider
import info.nightscout.androidaps.utils.resources.ResourceHelper
@ -324,6 +325,11 @@ class MainActivity : NoSplashAppCompatActivity() {
return true
}
*/
R.id.nav_defaultprofile -> {
startActivity(Intent(this, ProfileHelperActivity::class.java))
return true
}
R.id.nav_stats -> {
startActivity(Intent(this, StatsActivity::class.java))
return true

View file

@ -0,0 +1,66 @@
package info.nightscout.androidaps.activities
import android.os.Bundle
import info.nightscout.androidaps.R
import info.nightscout.androidaps.data.defaultProfile.DefaultProfile
import info.nightscout.androidaps.dialogs.ProfileViewerDialog
import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.ToastUtils
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.stats.TddCalculator
import kotlinx.android.synthetic.main.activity_profilehelper.*
import java.text.DecimalFormat
import javax.inject.Inject
class ProfileHelperActivity : NoSplashAppCompatActivity() {
@Inject lateinit var aapsLogger: AAPSLogger
@Inject lateinit var resourceHelper: ResourceHelper
@Inject lateinit var tddCalculator: TddCalculator
@Inject lateinit var profileFunction: ProfileFunction
@Inject lateinit var defaultProfile: DefaultProfile
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_profilehelper)
profilehelper_age.setParams(15.0, 1.0, 80.0, 1.0, DecimalFormat("0"), false, null)
profilehelper_weight.setParams(50.0, 5.0, 150.0, 1.0, DecimalFormat("0"), false, null)
profilehelper_tdd.setParams(50.0, 3.0, 200.0, 1.0, DecimalFormat("0"), false, null)
profilehelper_tdds.text = tddCalculator.stats()
profilehelper_profile.setOnClickListener {
val age = profilehelper_age.value
val weight = profilehelper_weight.value
val tdd = profilehelper_tdd.value
if (age < 1 || age > 120) {
ToastUtils.showToastInUiThread(this, R.string.invalidage)
return@setOnClickListener
}
if ((weight < 5 || weight > 150) && tdd == 0.0) {
ToastUtils.showToastInUiThread(this, R.string.invalidweight)
return@setOnClickListener
}
if ((tdd < 5 || tdd > 150) && weight == 0.0) {
ToastUtils.showToastInUiThread(this, R.string.invalidweight)
return@setOnClickListener
}
profileFunction.getProfile()?.let { runningProfile ->
val profile = defaultProfile.profile(age, tdd, weight, profileFunction.getUnits())
ProfileViewerDialog().also { pvd ->
pvd.arguments = Bundle().also {
it.putLong("time", DateUtil.now())
it.putInt("mode", ProfileViewerDialog.Mode.PROFILE_COMPARE.ordinal)
it.putString("customProfile", runningProfile.data.toString())
it.putString("customProfile2", profile.data.toString())
it.putString("customProfileUnits", profile.units)
it.putString("customProfileName", "Age: $age TDD: $tdd Weight: $weight")
}
}.show(supportFragmentManager, "ProfileViewDialog")
}
}
}
}

View file

@ -8,9 +8,9 @@ import info.nightscout.androidaps.R
import info.nightscout.androidaps.data.defaultProfile.DefaultProfile
import info.nightscout.androidaps.dialogs.ProfileViewerDialog
import info.nightscout.androidaps.interfaces.ActivePluginProvider
import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.utils.ActivityMonitor
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.InstanceId
@ -19,7 +19,7 @@ import info.nightscout.androidaps.utils.ToastUtils
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.stats.TddCalculator
import info.nightscout.androidaps.utils.stats.TirCalculator
import kotlinx.android.synthetic.main.survey_activity.*
import kotlinx.android.synthetic.main.activity_survey.*
import javax.inject.Inject
class SurveyActivity : NoSplashAppCompatActivity() {
@ -34,7 +34,7 @@ class SurveyActivity : NoSplashAppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.survey_activity)
setContentView(R.layout.activity_survey)
survey_id.text = InstanceId.instanceId()
@ -62,16 +62,19 @@ class SurveyActivity : NoSplashAppCompatActivity() {
ToastUtils.showToastInUiThread(this, R.string.invalidweight)
return@setOnClickListener
}
val profile = defaultProfile.profile(age, tdd, weight, profileFunction.getUnits())
val args = Bundle()
args.putLong("time", DateUtil.now())
args.putInt("mode", ProfileViewerDialog.Mode.CUSTOM_PROFILE.ordinal)
args.putString("customProfile", profile.data.toString())
args.putString("customProfileUnits", profile.units)
args.putString("customProfileName", "Age: $age TDD: $tdd Weight: $weight")
val pvd = ProfileViewerDialog()
pvd.arguments = args
pvd.show(supportFragmentManager, "ProfileViewDialog")
profileFunction.getProfile()?.let { runningProfile ->
val profile = defaultProfile.profile(age, tdd, weight, profileFunction.getUnits())
ProfileViewerDialog().also { pvd ->
pvd.arguments = Bundle().also {
it.putLong("time", DateUtil.now())
it.putInt("mode", ProfileViewerDialog.Mode.PROFILE_COMPARE.ordinal)
it.putString("customProfile", runningProfile.data.toString())
it.putString("customProfile2", profile.data.toString())
it.putString("customProfileUnits", profile.units)
it.putString("customProfileName", "Age: $age TDD: $tdd Weight: $weight")
}
}.show(supportFragmentManager, "ProfileViewDialog")
}
}
survey_submit.setOnClickListener {

View file

@ -38,5 +38,6 @@ abstract class ActivitiesModule {
@ContributesAndroidInjector abstract fun contributesSmsCommunicatorOtpActivity(): SmsCommunicatorOtpActivity
@ContributesAndroidInjector abstract fun contributesStatsActivity(): StatsActivity
@ContributesAndroidInjector abstract fun contributesSurveyActivity(): SurveyActivity
@ContributesAndroidInjector abstract fun contributesDefaultProfileActivity(): ProfileHelperActivity
@ContributesAndroidInjector abstract fun contributesPrefImportListActivity(): PrefImportListActivity
}

View file

@ -76,7 +76,7 @@ class TempTargetDialog : DialogFragmentWithDate() {
val adapterReason = ArrayAdapter(context, R.layout.spinner_centered, reasonList)
overview_temptarget_reason.adapter = adapterReason
overview_temptarget_reason.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
val defaultDuration: Double
val defaultTarget: Double
when (reasonList[position]) {

View file

@ -74,7 +74,7 @@ class Comparator(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Compare.values()[position]
}

View file

@ -48,7 +48,7 @@ class ComparatorConnect(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Compare.values()[position]
}

View file

@ -48,7 +48,7 @@ class ComparatorExists(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Compare.values()[position]
}

View file

@ -76,7 +76,7 @@ class InputDelta(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
deltaType = DeltaType.values()[position]
}

View file

@ -38,7 +38,7 @@ class InputDropdownMenu(injector: HasAndroidInjector) : Element(injector) {
).also { it.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4)) }
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
setValue(itemList[position].toString())
}

View file

@ -62,7 +62,7 @@ class InputLocationMode(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Mode.values()[position]
}

View file

@ -36,7 +36,7 @@ class InputProfileName(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = profileList[position].toString()
}

View file

@ -160,7 +160,7 @@ class TriggerConnector(injector: HasAndroidInjector) : Trigger(injector) {
params.weight = 1.0f
spinner.layoutParams = params
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
setType(Type.values()[position])
}

View file

@ -656,7 +656,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
// If the target is not the same as set in the profile then oref has overridden it
val targetUsed = lastRun?.constraintsProcessed?.targetBG ?: 0.0
if (targetUsed != 0.0 && profile.targetMgdl != targetUsed) {
if (targetUsed != 0.0 && abs(profile.targetMgdl-targetUsed) > 0.01) {
aapsLogger.debug("Adjusted target. Profile: ${profile.targetMgdl} APS: $targetUsed")
overview_temptarget?.text = Profile.toTargetRangeString(targetUsed, targetUsed, Constants.MGDL, units)
overview_temptarget?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning))

View file

@ -104,7 +104,7 @@ class EditQuickWizardDialog : DaggerDialogFragment() {
overview_editquickwizard_usetemptarget_spinner.setSelection(entry.useTempTarget())
overview_editquickwizard_usecob_spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) = processCob()
override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) = processCob()
override fun onNothingSelected(parent: AdapterView<*>) {}
}
processCob()

View file

@ -54,6 +54,7 @@ class TddCalculator @Inject constructor(
val midnight = MidnightTime.calc(t.date)
val tdd = result[midnight] ?: TDD(midnight, 0.0, 0.0, 0.0)
tdd.bolus += t.insulin
tdd.carbs += t.carbs
result.put(midnight, tdd)
}
@ -81,10 +82,12 @@ class TddCalculator @Inject constructor(
totalTdd.basal += tdd.basal
totalTdd.bolus += tdd.bolus
totalTdd.total += tdd.total
totalTdd.carbs += tdd.carbs
}
totalTdd.basal /= tdds.size().toDouble()
totalTdd.bolus /= tdds.size().toDouble()
totalTdd.total /= tdds.size().toDouble()
totalTdd.carbs /= tdds.size().toDouble()
return totalTdd
}
@ -93,16 +96,16 @@ class TddCalculator @Inject constructor(
val averageTdd = averageTDD(tdds)
return HtmlHelper.fromHtml(
"<b>" + resourceHelper.gs(R.string.tdd) + ":</b><br>" +
toText(tdds) +
toText(tdds, true) +
"<b>" + resourceHelper.gs(R.string.average) + ":</b><br>" +
averageTdd.toText(resourceHelper, tdds.size())
averageTdd.toText(resourceHelper, tdds.size(), true)
)
}
private fun toText(tdds: LongSparseArray<TDD>): String {
private fun toText(tdds: LongSparseArray<TDD>, includeCarbs: Boolean): String {
var t = ""
for (i in 0 until tdds.size()) {
t += "${tdds.valueAt(i).toText(resourceHelper, dateUtil)}<br>"
t += "${tdds.valueAt(i).toText(resourceHelper, dateUtil, includeCarbs)}<br>"
}
return t
}

View file

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activities.SurveyActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/profilehelper_age_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:labelFor="@+id/profilehelper_age"
android:text="@string/age"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
<info.nightscout.androidaps.utils.NumberPicker
android:id="@+id/profilehelper_age"
android:layout_width="130dp"
android:layout_height="40dp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/profilehelper_weigth_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:labelFor="@+id/profilehelper_weight"
android:text="@string/weight_label"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
<info.nightscout.androidaps.utils.NumberPicker
android:id="@+id/profilehelper_weight"
android:layout_width="130dp"
android:layout_height="40dp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/profilehelper_tdd_label"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:labelFor="@+id/profilehelper_weight"
android:text="@string/tdd_total"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
<info.nightscout.androidaps.utils.NumberPicker
android:id="@+id/profilehelper_tdd"
android:layout_width="130dp"
android:layout_height="40dp" />
</TableRow>
</TableLayout>
<TextView
android:id="@+id/profilehelper_tdds"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
<Button
android:id="@+id/profilehelper_profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/comapareprofile" />
</LinearLayout>
</ScrollView>

View file

@ -27,6 +27,10 @@
app:showAsAction="never"
android:title="@string/nav_survey" />
-->
<item
android:id="@+id/nav_defaultprofile"
app:showAsAction="never"
android:title="@string/nav_profilehelper" />
<item
android:id="@+id/nav_about"
app:showAsAction="never"

View file

@ -196,7 +196,7 @@
<string name="metadata_label_encryption">Криптиране</string>
<string name="metadata_format_old">Стар формат</string>
<string name="metadata_format_new">Нов формат</string>
<string name="metadata_format_debug">Нов формат (некриптирани)</string>
<string name="metadata_format_debug">Нов формат (незащитен)</string>
<string name="metadata_format_other">Непознат формат</string>
<string name="prefdecrypt_settings_tampered">Файлът с настройки е преправян</string>
<string name="prefdecrypt_settings_secure">Файлът с настройки е сигурен</string>
@ -230,8 +230,8 @@
<string name="smscommunicator_stoppedsms">Отдалечен SMS контрол е изключен. Можете да го включите от AndroidAPS телефона.</string>
<string name="smscommunicator_calibrationreplywithcode">За да изпратите калибрация %1$.2f отговорете с код %2$s</string>
<string name="smscommunicator_bolusfailed">Болус отказан</string>
<string name="smscommunicator_remotebolusmindistance_summary">Минимален брой минути, в които трябва да мине между един отдалечен болус и следващия</string>
<string name="smscommunicator_remotebolusmindistance">Колко най-малко минути трябва да минат два болуса</string>
<string name="smscommunicator_remotebolusmindistance_summary">Минимално време в минути, което трябва да е изминало след отдалечен болус, преди да може да бъде доставен следващият</string>
<string name="smscommunicator_remotebolusmindistance">Колко най-малко минути трябва да минат между доставката на два болуса</string>
<string name="smscommunicator_remotebolusmindistance_caveat">За вашата сигурност, променете тази настройка, трябва да добавите най-малко 2 телефонни номера.</string>
<string name="bolusdelivered">Болус от %1$.2fЕ доставен успешно</string>
<string name="bolusrequested">Ще стартира %1$.2fЕ болус</string>
@ -451,7 +451,7 @@
<string name="statuslights_bage_warning">Аларма при възраст на батерия над [часа]</string>
<string name="statuslights_bage_critical">Праг за критична възраст на батерията над [часа]</string>
<string name="statuslights_res_warning">Ниво за аларма за останал инсулин в резервоара [Е]</string>
<string name="statuslights_res_critical">Критично ниво на останал инсулин в резервоар [Е]</string>
<string name="statuslights_res_critical">Предупреждение за критично ниво на останал инсулин в резервоар [Е]</string>
<string name="statuslights_bat_warning">Аларма при заряд на батерия под [%]</string>
<string name="statuslights_bat_critical">Критично ниво на батерията под [%]</string>
<string name="prediction_shortname">Предв</string>
@ -513,7 +513,7 @@
<string name="mdtp_cancel">Откажи</string>
<string name="notloadedplugins">Не всички профили са заредени!</string>
<string name="valuesnotstored">Стойностите не са запазени!</string>
<string name="ns_localbroadcasts">Включете излъчване към други приложения (като xDrip). Не включвайте, ако имате повече от един AAPS или имате инсталиран NSClient!</string>
<string name="ns_localbroadcasts">Активирайте предаване на данни към други приложения (като xDrip). Не активирайте, ако имате повече от един AAPS или имате инсталиран NSClient!</string>
<string name="ns_localbroadcasts_title">Разреши локално предаване на данни</string>
<string name="careportal_activity_label">АКТИВНОСТ И ОБРАТНА ВРЪЗКА</string>
<string name="careportal_carbsandbolus_label">ХРАНА И БОЛУС</string>
@ -570,7 +570,7 @@
<string name="wear_detailed_delta_title">Показвай подробна делта</string>
<string name="wear_detailed_delta_summary">Показвай делта с още един десетичен знак</string>
<string name="smbinterval_summary">Интервал между SMB в минути</string>
<string name="smbmaxminutes">Максимум минути СМБ</string>
<string name="smbmaxminutes">Максимум минути SMB</string>
<string name="smbmaxminutes_summary">Максимални минути за ограничаване на базала от SMB</string>
<string name="uamsmbmaxminutes">Максимум минути за отчитане на необявени хранения UAM</string>
<string name="uamsmbmaxminutes_summary">Максимални минути за ограничаване на базала при SMB за UAM</string>
@ -663,9 +663,9 @@
<string name="wear_notifysmb_title">Уведомяване при SMB</string>
<string name="wear_notifysmb_summary">Покажи SMB на часовника като стандартен болус.</string>
<string name="ns_create_announcements_from_errors_title">Създаване на известие при грешки</string>
<string name="ns_create_announcements_from_carbs_req_title">Създаване на съобщения при предупреждения за нужни въглехидрати</string>
<string name="ns_create_announcements_from_carbs_req_title">Създаване на известия при предупреждения за необходими въглехидрати</string>
<string name="ns_create_announcements_from_errors_summary">Създаване на Nightscout известие при грешки и локални аларми (също видими в Careportal - Treatments)</string>
<string name="ns_create_announcements_from_carbs_req_summary">Създаване на Nightscout съобщения при аларма за нужни въглехидрати</string>
<string name="ns_create_announcements_from_carbs_req_summary">Създаване на Nightscout известия при предупреждения за необходими въглехидрати</string>
<string name="wear_predictions_summary">Показвай прогнозините КЗ на часовника.</string>
<string name="wear_predictions_title">Прогнозни КЗ</string>
<string name="data_choices">Избор на данни</string>
@ -1405,4 +1405,6 @@
<string name="omnipod_bolus_failed_uncertain">Не може да се провери статус на болус. Моля, уверете се, че вашият под е стартирал болус или го отменете.</string>
<string name="omnipod_rl_stats">Статистика на RL</string>
<string name="omnipod_read_pulse_log_short">Pulse лог</string>
<string name="comapareprofile">Сравни с текущия профил</string>
<string name="nav_profilehelper">Профил съветник</string>
</resources>

View file

@ -1407,4 +1407,5 @@ Mache das nur, wenn AAPS nicht mehr mit dem Pod kommunizieren kann. Wenn dies no
<string name="omnipod_bolus_failed_uncertain">Erfolgreiche Bolusabgabe konnte nicht sicher ermittelt werden. Stelle sicher, dass der Pod Insulin abgibt oder brich den Bolus ab.</string>
<string name="omnipod_rl_stats">RL Stats</string>
<string name="omnipod_read_pulse_log_short">Pulse Log</string>
<string name="nav_profilehelper">Profil-Helfer</string>
</resources>

View file

@ -1339,7 +1339,10 @@
<string name="omnipod_driver_error_invalid_message_address">La comunicación ha fallado: se ha recibido un mensaje con una dirección no válida desde el Pod.</string>
<string name="omnipod_driver_error_message_decoding_failed">La comunicación ha fallado: no se ha podido descodificar el mensaje del Pod.</string>
<string name="omnipod_driver_error_nonce_resync_failed">La comunicación ha fallado: nonce resync ha fallado.</string>
<string name="omnipod_driver_error_nonce_out_of_sync">Comunicación fallida: nonce no sincronizada.</string>
<string name="omnipod_driver_error_not_enough_data">La comunicación ha fallado: no se han recibido suficientes datos del Pod.</string>
<string name="omnipod_driver_error_pod_fault">Un error de Pod (%1$03d %2$s) se ha detectado. Por favor, desactive su Pod e inicie uno nuevo.</string>
<string name="omnipod_driver_error_pod_returned_error_response">La comunicación ha fallado: el Pod ha devuelto una respuesta de error.</string>
<!-- Omnipod - Pod Mgmt -->
<string name="omnipod_pod_mgmt_title">Administración de Pod</string>
<string name="omnipod_cmd_init_pod">Iniciar Pod</string>
@ -1356,22 +1359,29 @@
<string name="omnipod_cmd_get_pod_info">Obtener información de Pod</string>
<string name="omnipod_cmd_set_time">Establecer hora</string>
<string name="omnipod_cmd_configure_alerts">Configurar alertas</string>
<string name="omnipod_cmd_acknowledge_alerts">Confirmar Alertas</string>
<string name="omnipod_cmd_suspend_delivery">Suspender la entrega</string>
<string name="omnipod_cmd_resume_delivery">Reanudar la entrega</string>
<string name="omnipod_cmd_unknown_entry">Entrada desconocida</string>
<string name="omnipod_cmd_bolus_value">%1$.1fU</string>
<string name="omnipod_cmd_bolus_value_with_carbs">%1$.1f U, CH=%2$.1f g</string>
<string name="omnipod_cmd_tbr_value">Tasa: %1$.1f U, Duración: %2$d min</string>
<string name="omnipod_cmd_reset_pod_desc">Si pulsa <b>OK</b>, el estado de Pod se restablecerá por la fuerza y ya no podrá comunicarse con el Pod. Hágalo sólo si ya no puede comunicarse con el Pod. Si todavía puede comunicarse con el Pod, utilice la opción <b>Desactivar Pod</b>.</string>
<string name="omnipod_cmd_pod_history_na">Historial del Pod no disponible en el momento.</string>
<string name="omnipod_init_pod_wizard_step1_title">Llenar el Pod</string>
<string name="omnipod_init_pod_wizard_step1_desc">\nLlenar el nuevo Pod con suficiente insulina durante 3 días.\n\nEscucha dos pitidos del Pod durante el proceso de llenado. Esto indica que se ha insertado la cantidad mínima de 85U. Asegúrese de vaciar completamente la jeringa, incluso después de escuchar los dos pitidos.\n\nDespués de llenar el Pod, por favor pulse <b>Next</b>.\n\n<b>Nota:</b> no retire el capuchón de la aguja del Pod en este momento.</string>
<string name="omnipod_init_pod_wizard_step2_title">Cebado</string>
<string name="omnipod_init_pod_wizard_step2_action_header">Intentando emparejar con el nuevo Pod y primarlo.\n\nCuando todos los elementos están marcados, puedes pulsar <b>Siguiente</b>.\n\n<b>Nota:</b> por favor mantenga el Pod muy cerca del RileyLink en este momento.</string>
<string name="omnipod_init_pod_wizard_step3_title">Adherir el Pod</string>
<string name="omnipod_init_pod_wizard_step3_desc">\nPreparar el sitio de infusión. Retire el capuchón de la aguja del Pod y el adhesivo y aplique el Pod al sitio de perfusión.\n\nSi la cánula se queda fuera, por favor presione <b>Cancel</b> y descarte su Pod.\n\nPress <b>Next</b> para insertar la cánula y comenzar la entrega basal.</string>
<string name="omnipod_init_pod_wizard_step4_title">Insertar cánula</string>
<string name="omnipod_init_pod_wizard_step4_action_header">Intentando establecer la programación basal inicial e insertar la cánula.\n\nCuando todos los elementos están marcados, puede pulsar <b>Siguiente</b>.</string>
<string name="omnipod_init_pod_wizard_pod_info_title">Pod Info</string>
<string name="omnipod_init_pod_wizard_pod_info_init_pod_description">\nEl Pod ahora está activo.\n\nSu horario basal ha sido programado y la cánula ha sido insertada.\n\nPor favor, verifique que la cánula ha sido insertada correctamente y reemplace su Pod si usted siente que no lo ha hecho.</string>
<string name="omnipod_remove_pod_wizard_step1_title">Desactivar Pod</string>
<string name="omnipod_remove_pod_wizard_step1_desc">\nPulsa <b>Siguiente</b> para desactivar el Pod.\n\n<b>Nota:</b> Esto suspenderá toda la entrega insulina y desactivará el Pod.</string>
<string name="omnipod_remove_pod_wizard_step2_title">Desactivando el Pod</string>
<string name="omnipod_remove_pod_wizard_step2_action_header">Desactivando el Pod.\n\nCuando se comprueban todos los elementos, puede pulsar <b>Next</b>.\n\n<b>Nota:</b> Si la desactivación falla, por favor pulse <b>Cancelar</b> y utilice la opción <b>Restablecer Pod</b> para restablecer por la fuerza el estado de Pod.</string>
<string name="omnipod_init_pod_wizard_pod_info_remove_pod_description">Pod desactivado.\n\nPor favor, retire el Pod de su cuerpo y desecharlo.</string>
<string name="omnipod_init_pod_pair_pod">Emparejar Pod</string>
<string name="omnipod_init_pod_prime_pod">Llenado de cánula del Pod</string>
@ -1389,5 +1399,10 @@
<string name="omnipod_alert_shutdown_imminent">El apagado es inminente</string>
<string name="omnipod_alert_low_reservoir">Reservorio bajo</string>
<string name="omnipod_alert_unknown_alert">Alerta desconocida</string>
<string name="omnipod_error_set_basal_failed_uncertain">La configuración del perfil basal podría haber fallado. ¡La entrega podría ser suspendida! Por favor, actualiza el estado de Pod.</string>
<string name="omnipod_error_set_temp_basal_failed_uncertain">La configuración de basal temporal podría haber fallado. Si ya se está ejecutando una basal temporal, ¡puede que haya sido cancelada! Por favor, actualice el estado del pod.</string>
<string name="omnipod_error_set_time_failed_uncertain">Ajuste de la hora puede ser que haya fallado. La entrega puede ser suspendido! Por favor, actualizar estado de Pod.</string>
<string name="omnipod_bolus_failed_uncertain">No se puede verificar si el bolo ha sido exitoso. Por favor verifique que su Pod está poniendo bolo o cancele el bolo.</string>
<string name="omnipod_rl_stats">Estadísticas del RL</string>
<string name="omnipod_read_pulse_log_short">Registro de pulso</string>
</resources>

View file

@ -1369,6 +1369,40 @@
<string name="omnipod_cmd_reset_pod_desc">Als je op <b>OK</b> klikt, zal de Pod gedwongen worden gereset en kun je niet meer communiceren met de Pod. Doe dit alleen als je al niet meer met de Pod kunt communiceren. Als je nog wel kunt communiceren met de Pod, gebruik dan de optie <b>Deactiveer Pod</b>.</string>
<string name="omnipod_cmd_pod_history_na">Pod Historie momenteel niet beschikbaar.</string>
<string name="omnipod_init_pod_wizard_step1_title">Vul de Pod</string>
<string name="omnipod_init_pod_wizard_step1_desc">\nVul de nieuwe Pod met voldoende insuline voor 3 dagen.\n\nLuister of je twee piepjes hoort tijdens het vullen. Deze geven aan dat de minimum hoeveelheid van 85E is bereikt. Ook als je de twee piepjes hebt gehoord ga je verder met vullen totdat de vulspuit volledig leeg is.\n\nNa het vullen van de Pod druk je op <b>Volgende</b>.\n\n<b>Opmerking:</b> verwijder de beschermkap van de Pod naald nog niet!</string>
<string name="omnipod_init_pod_wizard_step2_title">Uitvullen</string>
<string name="omnipod_init_pod_wizard_step2_action_header">Probeer te koppelen met de nieuwe Pod en laat de Pod de naald uitvullen.\n\nWanneer alle onderdelen zijn afgerond, druk je op <b>Volgende</b>.\n\n<b>Opmerking:</b> Houd de Pod goed dicht bij de RileyLink terwijl je dit doet.</string>
<string name="omnipod_init_pod_wizard_step3_title">Plaats de Pod</string>
<string name="omnipod_init_pod_wizard_step3_desc">\nBereid het plaatsen voor. Verwijder de beschermdop van de naald en haal de papiertjes van de sticker.\n\n(Mocht je zien dat de canule uitsteekt, druk dan op <b>Annuleren</b> en begin overnieuw met een andere Pod.)\n\nBevestig de Pod op de huid. Druk op <b>Volgende</b> om de canule te gaan inschieten en de insulinetoediening te laten starten.</string>
<string name="omnipod_init_pod_wizard_step4_title">Canule inschieten</string>
<string name="omnipod_init_pod_wizard_step4_action_header">De basaalstand wordt ingesteld en de canule wordt ingeschoten.\n\nWanneer alle onderdelen zijn afgerond, druk je op <b>Volgende</b>.</string>
<string name="omnipod_init_pod_wizard_pod_info_title">Pod Info</string>
<string name="omnipod_init_pod_wizard_pod_info_init_pod_description">\nDe Pod is nu actief.\n\nJouw basaalprofiel is ingeladen in de Pod en de canule is ingebracht.\n\nControleer of de canule correct is geplaatst en vervang de Pod als je denkt dat er iets is misgegaan.</string>
<string name="omnipod_remove_pod_wizard_step1_title">Deactiveer Pod</string>
<string name="omnipod_remove_pod_wizard_step1_desc">\nDruk op <b>Volgende</b> om de Pod te deactiveren.\n\n<b>Opmerking:</b> Hiermee wordt de insuline toediening gestopt en wordt de Pod gedeactiveerd.</string>
<string name="omnipod_remove_pod_wizard_step2_title">Deactiveren van de Pod</string>
<string name="omnipod_remove_pod_wizard_step2_action_header">Deactiveren van de Pod.\n\nWanneer alle onderdelen zijn afgerond, druk je op <b>Volgende</b>.\n\n<b>Opmerking:</b> Als deactiveren herhaaldelijk niet wil lukken, druk je op <b>Annuleren</b> en gebruik de optie <b>Reset Pod</b> om de Pod-status geforceerd te deactiveren.</string>
<string name="omnipod_init_pod_wizard_pod_info_remove_pod_description">Pod gedeactiveerd.\n\nVerwijder de Pod van je lichaam en gooi hem weg.</string>
<string name="omnipod_init_pod_pair_pod">Pod Koppelen</string>
<string name="omnipod_init_pod_prime_pod">Pod Uitvullen</string>
<string name="omnipod_init_pod_fill_cannula">Canule vullen</string>
<string name="omnipod_init_pod_set_basal_profile">Instellen Basaal Profiel</string>
<string name="omnipod_deactivate_pod_cancel_delivery">Annuleer toediening</string>
<string name="omnipod_deactivate_pod_deactivate_pod">Deactiveer Pod</string>
<!-- Omnipod Dash -->
<!-- Omnipod - Base -->
<string name="description_pump_omnipod_dash">Pomp integratie voor Omnipod Dash.</string>
<string name="omnipod_alert_finish_pairing_reminder">Herinnering koppeling afronden</string>
<string name="omnipod_alert_finish_setup_reminder_reminder">Herinnering setup afronden</string>
<string name="omnipod_alert_expiration">Pod verloopt binnenkort</string>
<string name="omnipod_alert_expiration_advisory">Pod verloopt binnenkort</string>
<string name="omnipod_alert_shutdown_imminent">Schakelt zeer binnenkort uit</string>
<string name="omnipod_alert_low_reservoir">Laag reservoir</string>
<string name="omnipod_alert_unknown_alert">Onbekend alarm</string>
<string name="omnipod_error_set_basal_failed_uncertain">Het instellen van basaal profiel is mogelijk mislukt. De toediening is misschien gestopt! Vernieuw de status van Pod.</string>
<string name="omnipod_error_set_temp_basal_failed_uncertain">Het instellen van tijdelijk basaal is mogelijk mislukt. Als er al een tijdelijk basaal actief was, is dat misschien geannuleerd! Vernieuw de status van de Pod.</string>
<string name="omnipod_error_set_time_failed_uncertain">Het instellen van de tijd is mogelijk mislukt. De toediening is misschien gestopt! Vernieuw de status van Pod.</string>
<string name="omnipod_bolus_failed_uncertain">Kan niet controleren of de bolus is geslaagd. Controleer of de Pod de bolus aan het toedienen is of annuleer de bolus.</string>
<string name="omnipod_rl_stats">RL Statistieken</string>
<string name="omnipod_read_pulse_log_short">Pulsen Log</string>
</resources>

View file

@ -1405,4 +1405,6 @@
<string name="omnipod_bolus_failed_uncertain">Não é possível verificar se o bólus foi bem-sucedido. Por favor, verifique se o Pod está administrar ou cancelar o bólus.</string>
<string name="omnipod_rl_stats">Estatísticas RL</string>
<string name="omnipod_read_pulse_log_short">Registo de Pulse</string>
<string name="comapareprofile">Comparar com o perfil atual</string>
<string name="nav_profilehelper">Assistente de Perfil</string>
</resources>

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="dia_whatmeansdia">Care afirmații despre DIA sunt adevărate?</string>
<string name="dia_label_exam">Subiect: Durata de acțiune a insulinei</string>
<string name="dia_minimumis3h">Valoarea minimă este de 3 ore.</string>
<string name="dia_minimumis5h">Valoarea minimă este de 5 ore.</string>
<string name="dia_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin</string>
@ -19,28 +20,149 @@
<string name="pumpdisconnect_whattodo">Ce trebuie să faceți atunci când deconectați pompa?</string>
<string name="pumpdisconnect_letknow">Apăsați Deconectează pompa astfel încât AAPS să știe că nu se va putea livra insulină.</string>
<string name="pumpdisconnect_suspend">Apăsați Suspendă bucla astfel încât AAPS să dezactiveze bucla atâta timp cât pompa este deconectată.</string>
<string name="pumpdisconnect_dontchnage">Nu modificați nimic în AAPS, doar deconectați pompa.</string>
<string name="pumpdisconnect_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings</string>
<string name="objectives_label">Subiect: Setări AndroidAPS</string>
<string name="objectives_howtosave">Care sunt cele mai bune metode de a păstra o copie de siguranță a setărilor AndroidAPS?</string>
<string name="objectives_exportsettings">Export pe un mediu de stocare local folosind meniul Mentenanță.</string>
<string name="objectives_storeelsewhere">Stocarea fișierului exportat într-un alt loc, precum email, Dropbox, Google drive…</string>
<string name="objectives_doexportonstart">Exportarea imedia după instalarea AAPS.</string>
<string name="objectives_doexportafterchange">Exportați-le după ce modificați setările.</string>
<string name="objectives_doexportafterobjective">Exportaţi-le după finalizarea unui obiectiv.</string>
<string name="objectives_doexportafterfirtssettings">Exportarea atunci când ați terminat setarea inițială.</string>
<string name="objectives_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html</string>
<string name="objectives_hint2">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me</string>
<string name="noisycgm_label">Subiect: Citiri zgomotoase ale glicemiei</string>
<string name="noisycgm_whattodo">Ce ar trebui făcut dacă valorile CGM sunt nesigure?</string>
<string name="nothing">Nimic, AAPS se va descurca.</string>
<string name="noisycgm_pause">Dezactivați bucla închisă pentru a evita supra-dozarea.</string>
<string name="noisycgm_replacesensor">Se va înlocui senzorul CGM.</string>
<string name="noisycgm_turnoffphone">Se va opri telefonul.</string>
<string name="noisycgm_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data</string>
<string name="noisycgm_checksmoothing">Verificați dacă aplicația de senzor normalizează valorile glicemiei.</string>
<string name="exercise_label">Subiect: Exerciții fizice</string>
<string name="exercise_whattodo">Cum puteți ajuta sistemul să facă față exercițiilor fizice?</string>
<string name="exercise_setactivitytt">Folosirea funcționalității de țintă temporară.</string>
<string name="exercise_switchprofilebelow100">Se va face un schimb de profil de sub 100%.</string>
<string name="exercise_switchprofileabove100">Se va face o schimbare de profil de peste 100%.</string>
<string name="exercise_stoploop">Se va opri bucla.</string>
<string name="exercise_doitbeforestart">Setați o valoare-țintă temporară de activitate înainte de a începe exercițiul fizic.</string>
<string name="exercise_afterstart">Setarea unei valori-țintă temporare pentru activitate după ce exercițiul fizic a început generează rezultate mai proaste decât dacă ar fi fost setată înainte.</string>
<string name="exercise_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target</string>
<string name="suspendloop_label">Subiect: Dezactivarea/Suspendarea buclei închise</string>
<string name="suspendloop_doigetinsulin">Primesc insulina atunci când bucla închisă este dezactivata/suspendata?</string>
<string name="suspendloop_yes">Da, insulina bazală este livrată în continuare.</string>
<string name="suspendloop_no">Nu, livrarea de insulină este oprită.</string>
<string name="basaltest_label">Subiect: Bazală, ISF și testare IC</string>
<string name="basaltest_when">Când ar trebui să validez bazalele, ISF și valorile IC?</string>
<string name="basaltest_beforeloop">Înainte de pornirea buclei.</string>
<string name="basaltest_havingregularhypo">Atunci când hipoglicemiile apar frecvent.</string>
<string name="basaltest_havingregularhyper">Atunci când hiperglicemiile apar frecvent.</string>
<string name="basaltest_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings</string>
<string name="prerequisites_label">Subiect: Cerințe preliminare</string>
<string name="prerequisites_what">Ce am nevoie?</string>
<string name="prerequisites_determinedcorrectprofile">Profil validat (ratele bazale, IC, ISF, DIA).</string>
<string name="prerequisites_computer">Un calculator pentru a crea APK-ul.</string>
<string name="prerequisites_phone">Un telefon compatibil.</string>
<string name="prerequisites_car">O mașină.</string>
<string name="prerequisites_nightscout">Nightscout pentru a finaliza obiectivele.</string>
<string name="prerequisites_tidepoolaccount">Un cont Tidepool.</string>
<string name="prerequisites_googleaccount">Un cont de Google.</string>
<string name="prerequisites_githubaccount">Un cont de Github.</string>
<string name="prerequisites_beanandroiddeveloper">Experiență în dezvoltarea Android.</string>
<string name="prerequisites_own670g">O pompă MiniMed 670G.</string>
<string name="prerequisites_hint1">https://androidaps.readthedocs.io/en/latest/EN/Module/module.html</string>
<string name="prerequisites_smartwatch">Un ceas inteligent.</string>
<string name="prerequisites_supportedcgm">Un sistem de senzori CGM compatibil.</string>
<string name="update_label">Subiect: Actualizarea AndroidAPS</string>
<string name="whatistrue">Ce este adevărat?</string>
<string name="update_git">Aveți nevoie de Git instalat.</string>
<string name="update_asap">Actualizați când o versiune noua este lansată și aveți timp să o instalați.</string>
<string name="update_keys">Ar trebui sa folosiți aceleași chei de semnare.</string>
<string name="update_neverupdate">Nu actualizați niciodată dacă sistemul funcționează corect.</string>
<string name="update_askfriend">Cereți unui prieten noul APK.</string>
<string name="update_hint1">https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch</string>
<string name="troubleshooting_label">Subiect: Rezolvarea Problemelor</string>
<string name="troubleshooting_wheretoask">Unde căutați ajutor?</string>
<string name="troubleshooting_fb">Alăturaţi-vă grupului de Facebook AndroidAPS.</string>
<string name="troubleshooting_wiki">Citiți documentația AndroidAPS.</string>
<string name="troubleshooting_gitter">Vizitați canalul AndroidAPS pe Gitter.</string>
<string name="troubleshooting_googlesupport">Vizitați AndroidAPS Google support</string>
<string name="troubleshooting_yourendo">Vă consultați cu diabetologul.</string>
<string name="troubleshooting_hint1">https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting</string>
<string name="troubleshooting_hint2">https://www.facebook.com/groups/AndroidAPSUsers/</string>
<string name="troubleshooting_hint3">https://gitter.im/MilosKozak/AndroidAPS</string>
<string name="insulin_label">Subiect: Plugin-uri pentru Insulină</string>
<string name="insulin_ultrarapid">Ce brand de insulină poate fi folosit cu plugin-ul Ultra-Rapid-Oref?</string>
<string name="insulin_fiasp">Fiasp®</string>
<string name="insulin_novorapid">NovoRapid®</string>
<string name="insulin_humalog">Humalog®</string>
<string name="insulin_actrapid">Actrapid®</string>
<string name="insulin_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin</string>
<string name="sensitivity_label">Subiect: Plugin-uri pentru sensibilitate</string>
<string name="sensitivity_which">Ce algoritm de sensibilitate are un interval de timp configurabil?</string>
<string name="sensitivity_hint1">https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html</string>
<string name="sensitivityuam_which">Ce plugin de sensibilitate trebuie folosit pentru funcționalitatea UAM?</string>
<string name="wrongcarbs_label">Subiect: Erori la introducerea carbohidraților</string>
<string name="wrongcarbs_whattodo">Ce ar trebui sa faceți dacă ați introdus o cantitate de carbohidrați greșită?</string>
<string name="wrongcarbs_treatmentstab">În secțiunea Tratamente, ștergeți intrarea greșită. Introduceți din nou cantitatea de carbohidrați.</string>
<string name="wrongcarbs_addfakeinsulin">Adăugați unități false de insulina folosind funcția de Reîncărcare</string>
<string name="extendedcarbs_label">Subiect: Alimente cu Lipide și Proteine</string>
<string name="extendedcarbs_handling">Cum procedați atunci când mâncarea conține o cantitate mare de lipide și\/sau proteine?</string>
<string name="extendedcarbs_useextendedcarbs">Convertiți lipidele și proteinele în carbohidrați și folosiți funcționalitatea de \"Carbohidrați extinși\".</string>
<string name="extendedcarbs_add">Convertiți lipidele și proteinele în carbohidrați și adăugați-i la calcularea bolusului.</string>
<string name="extendedcarbs_useextendedbolus">Folosiți bolusul extins pentru a acoperi lipidele și proteinele.</string>
<string name="extendedcarbs_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html</string>
<string name="nsclient_label">Subiect: Monitorizarea la distanţă</string>
<string name="nsclient_howcanyou">Cum puteți monitoriza AAPS-ul copilului dumneavoastră de la distanță?</string>
<string name="nsclient_nightscout">Folosind un site Nightscout.</string>
<string name="nsclient_dexcomfollow">Aplicația Dexcom Flollow dacă folosiți aplicația Dexcom originală (doar valorile glicemiei).</string>
<string name="nsclient_dexcomfollowxdrip">Dexcom Follow dacă folosiți aplicația xDrip.</string>
<string name="nsclient_xdripfollower">Aplicația xDrip în modul \"follower\".</string>
<string name="nsclient_looponiphone">Aplicația Loop pe iPhone.</string>
<string name="nsclient_spikeiphone">Aplicația Spike pe iPhone.</string>
<string name="nsclient_hint1">https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html</string>
<string name="isf_label_exam">Subiect: Factorul de Sensibilitate la Insulină (ISF)</string>
<string name="isf_increasingvalue">Valorile ISF mai mari determina livrarea unor cantități mai mici de insulina atunci când AAPS corectează hiperglicemiile.</string>
<string name="isf_decreasingvalue">Valorile ISF mai mici determina livrarea unor cantități mai mici de insulina atunci când AAPS corectează hiperglicemiile.</string>
<string name="isf_noeffect">Modificările ISF nu au nicio influență asupra cantităților de insulina livrate atunci când AAPS corectează hiperglicemiile.</string>
<string name="isf_preferences">Trebuie sa setați ISF in Preferințe.</string>
<string name="isf_profile">Schimbarea valorii ISF în profil este suficientă pentru a produce efecte.</string>
<string name="isf_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u</string>
<string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html</string>
<string name="ic_label_exam">Subiect: Rația insulină-carbohidrați (IC)</string>
<string name="ic_increasingvalue">Valorile IC mai mari determină o cantitate mai mică de insulină livrată pentru o cantitate dată de carbohidrați.</string>
<string name="ic_decreasingvalue">Valorile IC mai mici determină o cantitate mai mică de insulină livrată pentru o cantitate dată de carbohidrați.</string>
<string name="ic_noeffect">Dacă aveți 0 CoB (carbohidrați activi), schimbarea IC va determina modificarea cantității de insulină livrată pentru a corecta glicemia.</string>
<string name="ic_different">Valoarea IC va fi diferita dacă considerați 1BE (unitate de pâine) ca 10g sau 12g glucide.</string>
<string name="ic_meaning">IC înseamnă: Câte unități de pâine sunt acoperite de 1 unitate de insulină.</string>
<string name="ic_hint1">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u</string>
<string name="profileswitch_label">Subiect: Schimbarea de profil</string>
<string name="profileswitch_pctwillchange"> Atunci când se specifică 90% la schimbarea de profil…</string>
<string name="profileswitch_basalhigher">Ratele bazale vor fi cu 10% mai mari.</string>
<string name="profileswitch_basallower">Ratele bazale vor fi cu 10% mai mici.</string>
<string name="profileswitch_ichigher">Valoarea IC va fi cu 10% mai mare.</string>
<string name="profileswitch_iclower">Valoarea IC va fi cu 10% mai mica.</string>
<string name="profileswitch_isfhigher">Valoarea ISF va fi cu 10% mai mare.</string>
<string name="profileswitch_isflower">Valoarea ISF va fi cu 10% mai mică.</string>
<string name="profileswitch_overall">Veți primi în total cam cu 10% mai puțină insulină.</string>
<string name="profileswitch_targethigher">Intervalul-ţintă va fi cu 10% mai mare.</string>
<string name="profileswitch_targetlower">Intervalul-ţintă va fi cu 10% mai mic.</string>
<string name="profileswitch_targetbottom">Doar valoarea-ţintă inferioară va fi cu 10% mai mică.</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="profileswitchtime_iwant">Dacă va treziți cu o ora mai devreme decât de obicei, cum veți anunța AAPS de schimbarea din programul dumneavoastră?</string>
<string name="profileswitchtime_1">Inițiați o schimbare de profil cu decalaj de timp de 1</string>
<string name="profileswitchtime__1">Inițiați o schimbare de profil cu decalaj de timp de -1</string>
<string name="profileswitchtime_hint1">https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift</string>
<string name="profileswitchtime_60">Inițiați o schimbare de profil cu decalaj de timp de 60</string>
<string name="profileswitchtime__60">Inițiați o schimbare de profil cu decalaj de timp de -60</string>
<string name="basalhelp_hint1">https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy</string>
<string name="basalhelp_label">Subiect: Ajutor pentru ratele bazale</string>
<string name="basalhelp_where">Unde căutați ajutor pentru a seta ratele bazale etc.</string>
<string name="basalhelp_diabetesteam">Medicul dumneavoastră diabetolog</string>
<string name="basalhelp_google">Google</string>
<string name="basalhelp_facebook">Facebook</string>
<string name="other_medication_label">Alte tratamente</string>
<string name="other_medication_text">AAPS reduce ratele bazale pentru a crește glicemia. Medicamentele din grupa inhibitorilor SGLT2 (gliflozins) pot împiedica această creștere a glicemiei si, prin urmare, pot mări riscul de cetoacidoza diabetica (DKA).
\nBranduri comune sunt: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nDeclar pe propria răspundere că nu voi lua asemenea medicamente cât folosesc AAPS sau că voi dezactiva bucla închisă înainte de le folosi.</string>
</resources>

View file

@ -20,7 +20,9 @@
<string name="objectives_autosens_gate">O săptămână de buclă închisă încheiată cu succes în condițiile introducerii regulate a carbohidraților</string>
<string name="objectives_ama_objective">Activarea unor facilități adiționale pentru funcționarea în timpul zilei, cum ar fi advanced meal assist</string>
<string name="objectives_smb_objective">Se activează opțiuni pentru uzul în timpul zilei, cum ar fi SMB</string>
<string name="objectives_auto_objective">Activarea automatizării</string>
<string name="objectives_smb_gate">Trebuie sa citiți wiki și să măriți maxIOB pentru a obține SMB corect! Un start bun este maxIOB=media bolusurilor + 3x maxima bazalei din zi</string>
<string name="objectives_auto_gate">Citiți documentația despre cum funcționează automatizarea. Setați primele reguli simple. În loc de a acționa, lăsați AAPS doar să afișeze notificări. Când sunteți siguri ca automatizarea acționează la momentul potrivit, înlocuiți notificările cu acțiuni reale.(https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)</string>
<string name="objectives_bgavailableinns">Glicemie disponibilă în NS</string>
<string name="objectives_pumpstatusavailableinns">Starea pompei disponibilă în NS</string>
<string name="objectives_manualenacts">Acțiuni manuale</string>
@ -35,10 +37,12 @@
<string name="objectives_useloop">Afișați conținutul facilității Buclă</string>
<string name="objectives_usescale">Folosiți funcția scală prin apăsarea prelungă a graficului glicemiei</string>
<string name="objectives_button_enter">Introduceţi</string>
<string name="enter_code_obtained_from_developers_to_bypass_the_rest_of_objectives">Dacă aveți cel puțin 3 luni de experiență cu un sistem în bucla închisă, puteți beneficia de un cod pentru a sări peste obiective. Pentru mai multe detalii vezi: https://androidaps.readthedocs.io/en/latest/EN/Usage/Objectives.html#skip-objectives.</string>
<string name="codeaccepted">Cod acceptat</string>
<string name="codeinvalid">Cod invalid</string>
<string name="objectives_exam_objective">Dovediți-vă cunoștințele</string>
<string name="objectives_exam_gate">Studiați și răspundeți corect la întrebări</string>
<string name="answerdisabledto">Posibilitatea de a răspunde este dezactivată până la: %1$s</string>
<string name="wronganswer">Răspuns greșit!</string>
<string name="unfinshed_button">Următoarea nefinalizată</string>
<string name="requestcode">Solicită codul: %1$s</string>

View file

@ -1,2 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="biometric_title">Autentificarea este obligatorie</string>
<string name="biometric_description">Puneți degetul pe cititorul de amprente pentru a verifica identitatea</string>
<string name="settings_protection">Protecţie setări</string>
<string name="application_protection">Protecție aplicație</string>
<string name="bolus_protection">Protecție bolus</string>
<string name="master_password">Parola principală</string>
<string name="settings_password">Parolă setări</string>
<string name="application_password">Parolă aplicație</string>
<string name="bolus_password">Parolă bolus</string>
<string name="unlock_settings">Deblochează setările</string>
<string name="biometric">Biometric</string>
<string name="custom_password">Parolă personalizată</string>
<string name="noprotection">Fără protecţie</string>
<string name="protection">Protecţie</string>
<string name="master_password_missing">Parola principală nu este setată!\n\nVă rugăm să vă setaţi parola principală în Preferinţe (%1$s &#8594; %2$s)</string>
<string name="unsecure_fallback_biometric">Trecere la modul nesecurizat biometric</string>
<string name="unsecure_fallback_descriotion_biometric">Pentru a fi eficientă, protecţia biometrică are nevoie de o parolă principală pentru regresie.\n\nVă rugăm să setaţi o parolă principală!</string>
<string name="password_set">Parola a fost setată!</string>
<string name="password_not_set">Parola nu a fost setată</string>
<string name="password_not_changed">Parola nu a fost modificată</string>
<string name="password_cleared">Parolă ștearsă!</string>
<string name="password_hint">Introduceți parola aici</string>
</resources>

View file

@ -36,6 +36,7 @@
<string name="description_pump_mdi">Integrare cu pompă virtuală, pentru persoanele ce folosesc terapia cu pen</string>
<string name="description_pump_virtual">Integrare cu pompele ce nu au încă un driver software disponibil (Buclă Deschisă)</string>
<string name="description_sensitivity_aaps">Sensibilitatea este calculată la fel ca în algoritmul Oref0, dar se poate specifica un interval de timp în trecut. Absorbția minimă de carbohidrați este calculată din parametrul echivalent, stabilit în preferințe.</string>
<string name="description_sensitivity_oref1">Sensibilitatea este calculată folosind datele din ultimele 8 sau 24 ore (se alege cea mai mare din ele), iar carbohidrații (când nu sunt absorbiți) sunt ignorați după timpul specificat în preferințe. Plugin-ul calculează și UAM.</string>
<string name="description_sensitivity_weighted_average">Sensibilitatea este calculată ca o medie ponderată a deviațiilor. Deviațiile noi au o importanță mai mare. Absorbția minimă de carbohidrați este calculată în funcție de parametrul absorbție maximă de carbohidrați, stabilit în preferințe. Acest algoritm este cel mai rapid atunci când sensibilitatea la insulină este fluctuantă.</string>
<string name="description_source_eversense">Primește valorile glicemiei din aplicația Eversense modificată.</string>
<string name="description_source_glimp">Primește valorile glicemiei din aplicația Glimp.</string>
@ -73,6 +74,7 @@
<string name="openapsma_profile_label">Profil</string>
<string name="openapsma_mealdata_label">Date despre masă</string>
<string name="result">Rezultat</string>
<string name="result_insulin_carbs">Rezultat: %1$s %2$s</string>
<string name="openapsma_noglucosedata">Nu există date despre glicemie</string>
<string name="openapsma_request_label">Solicită</string>
<string name="glucose">Glicemie</string>
@ -109,6 +111,7 @@
<string name="openapsma_disabled">Modul inactiv</string>
<string name="constraints_violation">Încălcare a unei limite</string>
<string name="treatmentdeliveryerror">Eroare la livrarea bolusului</string>
<string name="overview_newtempbasal_basalpercent">Valoare bazală [%]</string>
<string name="setbasalquestion">Acceptă noua bazală temporară:</string>
<string name="overview_treatment_label">Tratament</string>
<string name="overview_calculator_label">Calculator</string>
@ -123,10 +126,12 @@
<string name="apsmode_title">Mod APS</string>
<string name="closedloop">Buclă închisă</string>
<string name="openloop">Buclă deschisă</string>
<string name="lowglucosesuspend">Suspendare la hipoglicemie</string>
<string name="disabledloop">Buclă inactivă</string>
<string name="disableloop">Dezactivează bucla</string>
<string name="enableloop">Activează bucla</string>
<string name="openloop_newsuggestion">O nouă sugestie este disponibilă</string>
<string name="carbssuggestion">Sugestie carbohidrați</string>
<string name="unsupportednsversion">Versiune incompatibilă de Nightscout</string>
<string name="loopdisabled">BUCLĂ DEZACTIVATĂ DATORITĂ CONSTRÂNGERILOR</string>
<string name="treatments_wizard_basaliob_label">IOB bazală</string>
@ -143,6 +148,7 @@
<string name="careportal_newnstreatment_percent_label">Procent</string>
<string name="careportal_newnstreatment_absolute_label">Absolut</string>
<string name="careportal_newnstreatment_notes_label">Note</string>
<string name="event_time_label">Ora evenimentului</string>
<string name="careportal_newnstreatment_profile_label">Profil</string>
<string name="careportal_newnstreatment_enteredby_title">Introdus de</string>
<string name="careportal_newnstreatment_glucosetype">Tip glicemie</string>
@ -158,9 +164,48 @@
<string name="filenotfound">Nu am găsit fișierul</string>
<string name="nav_export">Exportă setările</string>
<string name="nav_import">Importă setările</string>
<string name="openapsma_maxbasal_title">Valoarea maximă în U/ora a unei rate bazale temporare poate fi setată la</string>
<string name="openapsma_maxbasal_summary">Această valoare este denumită bazală maximă în contextul OpenAPS</string>
<string name="openapsma_maxiob_title">Maximul de bazală IOB pe care o poate livra OpenAPS[U]</string>
<string name="openapsma_maxiob_summary">Această valoare este denumită Max IOB în contextul OpenAPS\nAceastă valoare este implicit nulă (0). După câteva zile sau săptămâni, în funcție de opțiunea dumneavoastră, puteți ajusta acest număr.</string>
<string name="password_preferences_encrypt_prompt">Vi se va solicita parola principală, care va fi utilizată pentru criptare la exportarea setărilor.</string>
<string name="password_preferences_decrypt_prompt">Vi se va solicita parola principală, care este necesară pentru a decripta setările importate.</string>
<string name="preferences_export_canceled">Exportarea a eșuat! Preferințele NU au fost exportate!</string>
<string name="preferences_import_canceled">Importarea a eșuat! Preferințele NU au fost importate!</string>
<string name="preferences_import_list_title">Selectați fișierul pentru import</string>
<string name="check_preferences_before_import">Verificați preferințele înainte de a le importa:</string>
<string name="check_preferences_cannot_import">Preferințele nu pot fi importate!</string>
<string name="check_preferences_dangerous_import">Preferințele nu ar trebui importate!</string>
<string name="check_preferences_details_btn">Explicații problemele de import…</string>
<string name="check_preferences_details_title">Detalii probleme de import</string>
<string name="check_preferences_import_btn">Importă</string>
<string name="check_preferences_import_anyway_btn">Importă oricum (PERICOL!)</string>
<string name="metadata_warning_different_flavour">Preferințele au fost create folosind o alta versiune de AAPS (%1$s) în timp ce versiunea curentă este: %2$s.\n\nCâteva setări pot lipsi sau pot fi invalide - după import verificați și actualizați preferințele.</string>
<string name="metadata_warning_different_device">Preferințele au fost create pe un dispozitiv diferit. Este în regulă să le importați de pe un alt telefon, dar asigurați-vă că sunt corecte!</string>
<string name="metadata_warning_outdated_format">Folosiți un format neactualizat dintr-o versiune veche de AAPS care nu este securizat! Folosiți acest format în ultima instanța, doar dacă nu aveți un export în formatul curent de JSON.</string>
<string name="metadata_warning_old_export">Preferințele importate sunt vechi de %1$s zile deja! Poate aveți preferințe mai recente sau ați ales un fișier greșit? Amintiți-vă să exportați preferințele în mod regulat!</string>
<string name="metadata_warning_date_format">Format dată invalid!</string>
<string name="metadata_warning_different_version">Preferințe dintr-o versiune minoră diferită a aplicației. Este OK dacă importați după upgrade, dar verificați după import că preferințele sunt corecte!</string>
<string name="metadata_label_format">Formatul fișierului</string>
<string name="metadata_label_created_at">Creat la</string>
<string name="metadata_label_aaps_version">Versiune AAPS</string>
<string name="metadata_label_aaps_flavour">Versiune de build</string>
<string name="metadata_label_device_name">Exporta numele dispozitivului pacientului</string>
<string name="metadata_label_device_model">Exportarea modelului dispozitivului</string>
<string name="metadata_label_encryption">Criptarea fișierului</string>
<string name="metadata_format_old">Format vechi de export</string>
<string name="metadata_format_new">Format nou criptat</string>
<string name="metadata_format_debug">Format nou pentru debug (necriptat)</string>
<string name="metadata_format_other">Format de export necunoscut</string>
<string name="prefdecrypt_settings_tampered">Fişier de setări modificat</string>
<string name="prefdecrypt_settings_secure">Fișierul de setări este securizat</string>
<string name="prefdecrypt_settings_unencrypted">Folosirea formatului nesecurizat, necriptat pentru setări</string>
<string name="prefdecrypt_wrong_json">Eroare format JSON, lipsește un câmp necesar (format, conținut, metadate sau securitate)</string>
<string name="prefdecrypt_wrong_password">Eroare la decriptare, parola dată nu poate decripta fişierul</string>
<string name="prefdecrypt_issue_missing_file_hash">Suma de control a fişierului (hash) lipseşte, nu se poate verifica autenticitatea setărilor!</string>
<string name="prefdecrypt_issue_modified">Fişierul a fost modificat după export!</string>
<string name="prefdecrypt_issue_parsing">Eroare la decriptare, parsarea preferinţelor a eşuat!</string>
<string name="prefdecrypt_issue_wrong_pass">Eroare la decriptare, parola furnizată este invalidă sau fişierul de setări a fost modificat! Se poate întâmpla ca fişierul importat să fi fost exportat cu o parolă master diferită.</string>
<string name="end_user_license_agreement">Licență utilizator final</string>
<string name="end_user_license_agreement_text">NU FOLOSIȚI PENTRU LUAREA DE DECIZII MEDICALE. NU EXISTĂ RĂSPUNDERE LEGALĂ SAU GARANȚIE PENTRU ACEST PROGRAM, ÎN LIMITA APLICABILĂ A LEGII. CU EXCEPTIA CAZURILOR SPECIAL MENȚIONATE, AUTORUL ȘI/SAU ALTE PERSOANE IMPLICATE PUN LA DISPOZIȚIE ACEST PROGRAM FĂRĂ NICIO GARANȚIE, IMPLICITĂ SAU EXPLICITĂ, INCLUZÂND, DAR FĂRĂ A SE LIMITA LA, GARANȚIILE LEGATE DE VĂNZAREA SAU POTRIVIREA PENTRU UN ANUME SCOP. ÎNTREGUL RISC LEGAT DE CALITATEA ȘI PERFORMANȚA ACESTUI PROGRAM CAD ÎN RESPONSABILITATEA DUMNEAVOASTRĂ. DACĂ PROGRAMUL SE DOVEDEȘTE A FI DEFECT, DUMNEAVOASTRĂ VĂ ASUMAȚI ÎNTREAGA RĂSPUNDERE, PRECUM ȘI TOATE COSTURILE LEGATE DE SERVICE, REPARAȚII SAU CORECȚII.</string>
<string name="end_user_license_agreement_i_understand">ÎNȚELEG ȘI SUNT DE ACORD</string>
@ -188,6 +233,8 @@
<string name="smscommunicator_loopisenabled">Bucla este activată</string>
<string name="valuelimitedto">%1$.2f este limitată la %2$.2f</string>
<string name="valueoutofrange">Valoarea %1$s este mai mare decât limita stabilită</string>
<string name="smscommunicator_pumpdisconnected">Pompă deconectată</string>
<string name="smscommunicator_reconnect">Pompă reconectată</string>
<string name="smscommunicator_remotecommandnotallowed">Comanda de la distanță nu este permisă</string>
<string name="smscommunicator_remotebolusnotallowed">Bolus de la distanță nu este disponibil. Încearcă din nou mai târziu.</string>
<string name="smscommunicator_basalreplywithcode">Pentru a iniția bazala de %1$.2fU/h pentru %2$d min trimiteți codul %3$s</string>
@ -322,6 +369,7 @@
<string name="adult">Adult</string>
<string name="resistantadult">Adult rezistent la insulină</string>
<string name="patientage_summary">Vă rog să selectați vârsta pacientului în vederea stabilirii valorilor maxime admise de siguranță</string>
<string name="patient_name">Numele pacientului</string>
<string name="Glimp">Glimp</string>
<string name="needwhitelisting">%1$s necesită excluderea din lista de optimizare a bateriei pentru o funcționare corespunzătoare</string>
<string name="loopsuspended">Buclă suspendată</string>
@ -891,6 +939,8 @@
<string name="longitude_short">Long:</string>
<string name="distance_short">Dist [m]:</string>
<string name="name_short">Nume:</string>
<string name="locationis">%1$s %2$s</string>
<string name="location_mode">Când </string>
<string name="lastboluslabel">Ultimul bolus</string>
<string name="lastboluscompared">Ultimul bolus acum %1$s %2$s min</string>
<string name="triggercoblabel">COB</string>
@ -1051,15 +1101,33 @@
<string name="format_percent">%1$d%%</string>
<string name="boluswizard">Asistent bolusare</string>
<string name="unit_minute_short">min</string>
<string name="unitsnosemicolon">Unități</string>
<string name="format_carbs">%1$dg</string>
<string name="common_on">Pornit</string>
<string name="common_off">Oprit</string>
<string name="deletecurrentprofile">Ştergeţi profilul curent?</string>
<string name="age">Vârstă:</string>
<string name="weight_label">Greutate:</string>
<string name="randombg_short">Glicemie</string>
<string name="tools">Instrumente</string>
<!-- SMS Communicator & OTP Authenticator -->
<!-- Omnipod -->
<!-- Omnipod - Base -->
<!-- Omnipod Configuration -->
<!-- Omnipod - Fragment -->
<string name="omnipod_pod_mgmt">Pod Mgmt</string>
<string name="omnipod_reservoir_left">%1$.2f U rămase</string>
<string name="omnipod_reservoir_over50">Peste 50 U</string>
<!-- Omnipod - Dialogs -->
<!-- Omnipod - Error -->
<!-- Omnipod - Pod Mgmt -->
<string name="omnipod_cmd_init_pod">Inițializare Pod</string>
<string name="omnipod_cmd_deactivate_pod">Dezactivare Pod</string>
<string name="omnipod_cmd_reset_pod">Resetare Pod</string>
<string name="omnipod_cmd_pod_history">Istoric Pod</string>
<string name="omnipod_cmd_configure_alerts">Configurare alerte</string>
<string name="omnipod_cmd_acknowledge_alerts">Confirmare alerte</string>
<string name="omnipod_init_pod_wizard_step2_title">Amorsare</string>
<!-- Omnipod Dash -->
<!-- Omnipod - Base -->
</resources>

View file

@ -1406,4 +1406,6 @@ Eversense-appen.</string>
<string name="omnipod_bolus_failed_uncertain">Det går inte att verifiera om bolusen är slutförd. Verifiera att din pod leverarar bolus eller avsluta bolus.</string>
<string name="omnipod_rl_stats">RL-statistik</string>
<string name="omnipod_read_pulse_log_short">Pulslogg</string>
<string name="comapareprofile">Jämför med aktuell profil</string>
<string name="nav_profilehelper">Profilguide</string>
</resources>

View file

@ -1708,5 +1708,7 @@
<string name="omnipod_bolus_failed_uncertain">Unable to verify whether the bolus succeeded. Please verify that your Pod is bolusing or cancel the bolus.</string>
<string name="omnipod_rl_stats">RL Stats</string>
<string name="omnipod_read_pulse_log_short">Pulse Log</string>
<string name="comapareprofile">Compare with current profile</string>
<string name="nav_profilehelper">Profile helper</string>
</resources>

View file

@ -57,7 +57,7 @@ class ProfileTest : TestBaseWithProfile() {
JSONAssert.assertEquals(okProfile, p.data, false)
Assert.assertEquals(3.0, p.dia, 0.01)
Assert.assertEquals(TimeZone.getTimeZone("UTC"), p.timeZone)
Assert.assertEquals("00:30", p.format_HH_MM(30 * 60))
Assert.assertEquals("00:30", Profile.format_HH_MM(30 * 60))
val c = Calendar.getInstance()
c[Calendar.HOUR_OF_DAY] = 1
c[Calendar.MINUTE] = 0

View file

@ -370,7 +370,7 @@ public class Profile {
return lastValue;
}
protected String format_HH_MM(Integer timeAsSeconds) {
public static String format_HH_MM(Integer timeAsSeconds) {
String time;
int hour = timeAsSeconds / 60 / 60;
int minutes = (timeAsSeconds - hour * 60 * 60) / 60;

View file

@ -126,7 +126,7 @@ class DefaultProfile @Inject constructor(val injector: HasAndroidInjector) {
return res
}
fun arrayToJson(b: Array<Double>): JSONArray {
private fun arrayToJson(b: Array<Double>): JSONArray {
val basals = JSONArray()
for (i in 0..23) {
val time = String.format(Locale.ENGLISH, "%02d:00", i)
@ -135,7 +135,7 @@ class DefaultProfile @Inject constructor(val injector: HasAndroidInjector) {
return basals
}
fun singleValueArray(value: Double, sample: Array<Double>): JSONArray {
private fun singleValueArray(value: Double, sample: Array<Double>): JSONArray {
val array = JSONArray()
array.put(JSONObject().put("time", "00:00").put("value", value + sample[0]))
array.put(JSONObject().put("time", "06:00").put("value", value + sample[1]))

View file

@ -29,6 +29,7 @@ public class TDD {
@DatabaseField
public double total;
public double carbs;
public double getTotal() {
return (total > 0d) ? total : (bolus + basal);
@ -56,11 +57,17 @@ public class TDD {
']';
}
public String toText(ResourceHelper resourceHelper, DateUtil dateUtil) {
return resourceHelper.gs(R.string.tddformat, dateUtil.dateStringShort(date), total, bolus, basal);
public String toText(ResourceHelper resourceHelper, DateUtil dateUtil, boolean includeCarbs) {
if (includeCarbs)
return resourceHelper.gs(R.string.tddwithcarbsformat, dateUtil.dateStringShort(date), total, bolus, basal, carbs);
else
return resourceHelper.gs(R.string.tddformat, dateUtil.dateStringShort(date), total, bolus, basal);
}
public String toText(ResourceHelper resourceHelper, int days) {
return resourceHelper.gs(R.string.tddformat, String.format(Locale.getDefault(), "%d ", days) + resourceHelper.gs(R.string.days), total, bolus, basal);
public String toText(ResourceHelper resourceHelper, int days, boolean includeCarbs) {
if (includeCarbs)
return resourceHelper.gs(R.string.tddwithcarbsformat, String.format(Locale.getDefault(), "%d ", days) + resourceHelper.gs(R.string.days), total, bolus, basal, carbs);
else
return resourceHelper.gs(R.string.tddformat, String.format(Locale.getDefault(), "%d ", days) + resourceHelper.gs(R.string.days), total, bolus, basal);
}
}

View file

@ -1,6 +1,7 @@
package info.nightscout.androidaps.dialogs
import android.os.Bundle
import android.text.Spanned
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -14,10 +15,12 @@ import info.nightscout.androidaps.data.Profile
import info.nightscout.androidaps.interfaces.ActivePluginProvider
import info.nightscout.androidaps.interfaces.DatabaseHelperInterface
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.HtmlHelper
import info.nightscout.androidaps.utils.resources.ResourceHelper
import kotlinx.android.synthetic.main.close.*
import kotlinx.android.synthetic.main.dialog_profileviewer.*
import org.json.JSONObject
import java.text.DecimalFormat
import javax.inject.Inject
class ProfileViewerDialog : DaggerDialogFragment() {
@ -32,11 +35,13 @@ class ProfileViewerDialog : DaggerDialogFragment() {
enum class Mode(val i: Int) {
RUNNING_PROFILE(1),
CUSTOM_PROFILE(2),
DB_PROFILE(3)
DB_PROFILE(3),
PROFILE_COMPARE(4)
}
private var mode: Mode = Mode.RUNNING_PROFILE
private var customProfileJson: String = ""
private var customProfileJson2: String = ""
private var customProfileName: String = ""
private var customProfileUnits: String = Constants.MGDL
@ -49,6 +54,8 @@ class ProfileViewerDialog : DaggerDialogFragment() {
customProfileJson = bundle.getString("customProfile", "")
customProfileUnits = bundle.getString("customProfileUnits", Constants.MGDL)
customProfileName = bundle.getString("customProfileName", "")
if (mode == Mode.PROFILE_COMPARE)
customProfileJson2 = bundle.getString("customProfile2", "")
}
dialog?.window?.requestFeature(Window.FEATURE_NO_TITLE)
@ -65,11 +72,13 @@ class ProfileViewerDialog : DaggerDialogFragment() {
close.setOnClickListener { dismiss() }
val profile: Profile?
val profile2: Profile?
val profileName: String?
val date: String?
when (mode) {
Mode.RUNNING_PROFILE -> {
profile = activePlugin.activeTreatments.getProfileSwitchFromHistory(time)?.profileObject
profile2 = null
profileName = activePlugin.activeTreatments.getProfileSwitchFromHistory(time)?.customizedName
date = dateUtil.dateAndTimeString(activePlugin.activeTreatments.getProfileSwitchFromHistory(time)?.date
?: 0)
@ -78,6 +87,15 @@ class ProfileViewerDialog : DaggerDialogFragment() {
Mode.CUSTOM_PROFILE -> {
profile = Profile(injector, JSONObject(customProfileJson), customProfileUnits)
profile2 = null
profileName = customProfileName
date = ""
profileview_datelayout.visibility = View.GONE
}
Mode.PROFILE_COMPARE -> {
profile = Profile(injector, JSONObject(customProfileJson), customProfileUnits)
profile2 = Profile(injector, JSONObject(customProfileJson2), customProfileUnits)
profileName = customProfileName
date = ""
profileview_datelayout.visibility = View.GONE
@ -86,6 +104,7 @@ class ProfileViewerDialog : DaggerDialogFragment() {
Mode.DB_PROFILE -> {
val profileList = databaseHelper.getProfileSwitchData(time, true)
profile = if (profileList.isNotEmpty()) profileList[0].profileObject else null
profile2 = null
profileName = if (profileList.isNotEmpty()) profileList[0].customizedName else null
date = if (profileList.isNotEmpty()) dateUtil.dateAndTimeString(profileList[0].date) else null
profileview_datelayout.visibility = View.VISIBLE
@ -93,20 +112,38 @@ class ProfileViewerDialog : DaggerDialogFragment() {
}
profileview_noprofile.visibility = View.VISIBLE
profile?.let {
profileview_units.text = it.units
profileview_dia.text = resourceHelper.gs(R.string.format_hours, it.dia)
profileview_activeprofile.text = profileName
profileview_date.text = date
profileview_ic.text = it.icList
profileview_isf.text = it.isfList
profileview_basal.text = it.basalList
profileview_target.text = it.targetList
basal_graph.show(it)
if (mode == Mode.PROFILE_COMPARE)
profile?.let { profile1 ->
profile2?.let { profile2 ->
profileview_units.text = profile1.units
profileview_dia.text = HtmlHelper.fromHtml(formatColors("", profile1.dia, profile1.dia, DecimalFormat("0.00"), resourceHelper.gs(R.string.shorthour)))
profileview_activeprofile.text = profileName
profileview_date.text = date
profileview_ic.text = ics(profile1, profile2)
profileview_isf.text = isfs(profile1, profile2)
profileview_basal.text = basals(profile1, profile2)
profileview_target.text = HtmlHelper.fromHtml(formatColors("", profile1.targetList + "<br>", profile2.targetList, ""))
basal_graph.show(profile1, profile2)
}
profileview_noprofile.visibility = View.GONE
profileview_invalidprofile.visibility = if (it.isValid("ProfileViewDialog")) View.GONE else View.VISIBLE
}
profileview_noprofile.visibility = View.GONE
profileview_invalidprofile.visibility = if (profile1.isValid("ProfileViewDialog")) View.GONE else View.VISIBLE
}
else
profile?.let {
profileview_units.text = it.units
profileview_dia.text = resourceHelper.gs(R.string.format_hours, it.dia)
profileview_activeprofile.text = profileName
profileview_date.text = date
profileview_ic.text = it.icList
profileview_isf.text = it.isfList
profileview_basal.text = it.basalList
profileview_target.text = it.targetList
basal_graph.show(it)
profileview_noprofile.visibility = View.GONE
profileview_invalidprofile.visibility = if (it.isValid("ProfileViewDialog")) View.GONE else View.VISIBLE
}
}
override fun onStart() {
@ -121,6 +158,79 @@ class ProfileViewerDialog : DaggerDialogFragment() {
bundle.putString("customProfile", customProfileJson)
bundle.putString("customProfileName", customProfileName)
bundle.putString("customProfileUnits", customProfileUnits)
if (mode == Mode.PROFILE_COMPARE)
bundle.putString("customProfile2", customProfileJson2)
}
private fun formatColors(label: String, value1: Double, value2: Double, format: DecimalFormat, units: String): String {
return formatColors(label, format.format(value1), format.format(value2), units)
}
private fun formatColors(label: String, text1: String, text2: String, units: String): String {
var s = "<font color='${resourceHelper.gc(R.color.white)}'>$label</font>"
s += " "
s += "<font color='${resourceHelper.gc(R.color.tempbasal)}'>$text1</font>"
s += " "
s += "<font color='${resourceHelper.gc(R.color.examinedProfile)}'>$text2</font>"
s += " "
s += "<font color='${resourceHelper.gc(R.color.white)}'>$units</font>"
return s
}
private fun basals(profile1: Profile, profile2: Profile): Spanned {
var prev1 = 0.0
var prev2 = 0.0
val s = StringBuilder()
for (hour in 0..23) {
val val1 = profile1.getBasalTimeFromMidnight(hour * 60 * 60)
val val2 = profile2.getBasalTimeFromMidnight(hour * 60 * 60)
if (val1 != prev1 || val2 != prev2) {
s.append(formatColors(Profile.format_HH_MM(hour * 60 * 60), val1, val2, DecimalFormat("0.00"), resourceHelper.gs(R.string.profile_ins_units_per_hour)))
s.append("<br>")
}
prev1 = val1
prev2 = val2
}
s.append(formatColors(
"",
profile1.baseBasalSum(),
profile2.baseBasalSum(),
DecimalFormat("0.00"),
resourceHelper.gs(R.string.insulin_unit_shortname)))
return HtmlHelper.fromHtml(s.toString())
}
private fun ics(profile1: Profile, profile2: Profile): Spanned {
var prev1 = 0.0
var prev2 = 0.0
val s = StringBuilder()
for (hour in 0..23) {
val val1 = profile1.getIcTimeFromMidnight(hour * 60 * 60)
val val2 = profile2.getIcTimeFromMidnight(hour * 60 * 60)
if (val1 != prev1 || val2 != prev2) {
s.append(formatColors(Profile.format_HH_MM(hour * 60 * 60), val1, val2, DecimalFormat("0.0"), resourceHelper.gs(R.string.profile_carbs_per_unit)))
s.append("<br>")
}
prev1 = val1
prev2 = val2
}
return HtmlHelper.fromHtml(s.toString())
}
private fun isfs(profile1: Profile, profile2: Profile): Spanned {
var prev1 = 0.0
var prev2 = 0.0
val s = StringBuilder()
for (hour in 0..23) {
val val1 = Profile.fromMgdlToUnits(profile1.getIsfMgdlTimeFromMidnight(hour * 60 * 60), profile1.units)
val val2 = Profile.fromMgdlToUnits(profile2.getIsfMgdlTimeFromMidnight(hour * 60 * 60), profile1.units)
if (val1 != prev1 || val2 != prev2) {
s.append(formatColors(Profile.format_HH_MM(hour * 60 * 60), val1, val2, DecimalFormat("0.0"), resourceHelper.gs(R.string.profile_carbs_per_unit)))
s.append("<br>")
}
prev1 = val1
prev2 = val2
}
return HtmlHelper.fromHtml(s.toString())
}
}

View file

@ -1,13 +1,16 @@
package info.nightscout.androidaps.plugins.treatments.fragments
import android.content.Context
import android.graphics.Color
import android.util.AttributeSet
import com.jjoe64.graphview.GraphView
import com.jjoe64.graphview.series.DataPoint
import com.jjoe64.graphview.series.LineGraphSeries
import info.nightscout.androidaps.core.R
import info.nightscout.androidaps.data.Profile
import info.nightscout.androidaps.utils.Round
import java.util.*
import kotlin.math.max
class ProfileGraph : GraphView {
@ -21,7 +24,7 @@ class ProfileGraph : GraphView {
basalArray.add(DataPoint(hour.toDouble(), profile.getBasalTimeFromMidnight(hour * 60 * 60)))
basalArray.add(DataPoint((hour + 1).toDouble(), profile.getBasalTimeFromMidnight(hour * 60 * 60)))
}
val basalDataPoints: Array<DataPoint> = Array(basalArray.size){ i-> basalArray[i]}
val basalDataPoints: Array<DataPoint> = Array(basalArray.size) { i -> basalArray[i] }
val basalSeries: LineGraphSeries<DataPoint> = LineGraphSeries(basalDataPoints)
addSeries(basalSeries)
basalSeries.thickness = 8
@ -35,4 +38,40 @@ class ProfileGraph : GraphView {
gridLabelRenderer.numHorizontalLabels = 13
gridLabelRenderer.verticalLabelsColor = basalSeries.color
}
fun show(profile1: Profile, profile2: Profile) {
removeAllSeries()
// profile 1
val basalArray1: MutableList<DataPoint> = ArrayList()
for (hour in 0..23) {
basalArray1.add(DataPoint(hour.toDouble(), profile1.getBasalTimeFromMidnight(hour * 60 * 60)))
basalArray1.add(DataPoint((hour + 1).toDouble(), profile1.getBasalTimeFromMidnight(hour * 60 * 60)))
}
val basalSeries1: LineGraphSeries<DataPoint> = LineGraphSeries(Array(basalArray1.size) { i -> basalArray1[i] })
addSeries(basalSeries1)
basalSeries1.thickness = 8
basalSeries1.isDrawBackground = true
// profile 2
val basalArray2: MutableList<DataPoint> = ArrayList()
for (hour in 0..23) {
basalArray2.add(DataPoint(hour.toDouble(), profile2.getBasalTimeFromMidnight(hour * 60 * 60)))
basalArray2.add(DataPoint((hour + 1).toDouble(), profile2.getBasalTimeFromMidnight(hour * 60 * 60)))
}
val basalSeries2: LineGraphSeries<DataPoint> = LineGraphSeries(Array(basalArray2.size) { i -> basalArray2[i] })
addSeries(basalSeries2)
basalSeries2.thickness = 8
basalSeries2.isDrawBackground = false
basalSeries2.color = context.getColor(R.color.examinedProfile)
basalSeries2.backgroundColor = context.getColor(R.color.examinedProfile)
viewport.isXAxisBoundsManual = true
viewport.setMinX(0.0)
viewport.setMaxX(24.0)
viewport.isYAxisBoundsManual = true
viewport.setMinY(0.0)
viewport.setMaxY(Round.ceilTo(max(profile1.maxDailyBasal, profile2.maxDailyBasal) * 1.1, 0.5))
gridLabelRenderer.numHorizontalLabels = 13
}
}

View file

@ -122,7 +122,8 @@
<!-- Temptarget-->
<string name="mins">%1$dмин</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Бол: <b>%3$.2f</b> Баз: <b>%4$.2f</b>]]></string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fЕ</b> Бол: <b>%3$.2fЕ</b> Баз: <b>%4$.2fЕ</b>]]></string>
<string name="tddwithcarbsformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fЕ</b> Бол: <b>%3$.2fЕ</b> Баз: <b>%4$.2fЕ</b> Въгл: <b>%5$.0fгр</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Проверка на КЗ</string>
<string name="careportal_announcement">Известие</string>

View file

@ -122,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$d minut</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Baz: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Kontrola glykémie</string>
<string name="careportal_announcement">Oznámení</string>

View file

@ -122,7 +122,8 @@
<!-- Temptarget-->
<string name="mins">%1$d Min.</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b>]]></string>
<string name="tddwithcarbsformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b> KH: <b>%5$.0fg</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">BZ-Test</string>
<string name="careportal_announcement">Ankündigung</string>

View file

@ -61,6 +61,7 @@
<string name="mmol">mmol/l</string>
<string name="advancedsettings_title">Ajustes avanzados</string>
<string name="bluetooth">Bluetooth</string>
<string name="btwatchdog_title">Vigilante de BT</string>
<string name="btwatchdog_summary">Apaga el bluetooth del móvil por un segundo si no hay conexión con la bomba. Esto ayuda con algunos móviles con problemas para establecer conexión bluetooth estable.</string>
<!-- Constraints-->
<string name="limitingbasalratio">Limitando max basal rate a %1$.2f U/h debido a %2$s</string>
@ -121,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Medir glucosa</string>
<string name="careportal_announcement">Aviso</string>

View file

@ -122,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Contrôle Glycémie</string>
<string name="careportal_announcement">Notification</string>

View file

@ -122,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Controllo BG</string>
<string name="careportal_announcement">Avviso</string>

View file

@ -122,7 +122,8 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bolusas: <b>%3$.2f</b> Bazė: <b>%4$.2f</b>]]></string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Baz: <b>%4$.2fU</b>]]></string>
<string name="tddwithcarbsformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Baz: <b>%4$.2fU</b> AV: <b>%5$.0fg</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">KG testas</string>
<string name="careportal_announcement">Pranešimas</string>

View file

@ -122,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">BG Controle</string>
<string name="careportal_announcement">Mededeling</string>

View file

@ -69,7 +69,6 @@
<string name="zerovalueinprofile">Nieprawidłowy profil: %1$s</string>
<!-- Temptarget-->
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Baz: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Sprawdź BG</string>
<string name="careportal_announcement">Powiadomienie</string>

View file

@ -122,7 +122,8 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b>]]></string>
<string name="tddwithcarbsformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b> Hidratos: <b>%5$.0fg</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Verificar Glic</string>
<string name="careportal_announcement">Anúncio</string>

View file

@ -1,21 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- General-->
<string name="error">Eroare</string>
<string name="connecting">Se conectează</string>
<string name="connected">Conectat</string>
<string name="disconnected">Deconectat</string>
<string name="disconnecting">Se deconectează</string>
<string name="formatinsulinunits">%1$.2fU</string>
<string name="reservoirvalue">%1$.0f / %2$d U</string>
<string name="close">Închide</string>
<string name="please_wait">Așteptați…</string>
<string name="reload">Reîncărcare</string>
<string name="stop">Stop</string>
<string name="basal_label">Bazală</string>
<string name="target_label">Țintă</string>
<string name="initializing">Inițializare...</string>
<string name="serialnumber">Număr serial</string>
<string name="battery_label">Baterie</string>
<string name="lastconnection_label">Ultima conexiune</string>
<string name="lastbolus_label">Ultimul bolus</string>
<!-- Constraints-->
<!-- Dialogs-->
<string name="confirmation">Confirmare</string>
<string name="message">Mesaj</string>
<string name="ok">OK</string>
<string name="cancel">Renunță</string>
<!-- BlePreCheck-->
<!-- DateUtil-->
<string name="days">zile</string>
<string name="hours">ore</string>
<string name="unit_second">secundă</string>
<string name="unit_minute">minut</string>
<string name="unit_hour">oră</string>
<string name="unit_day">zi</string>
<string name="unit_week">săptămână</string>
<string name="unit_seconds">secunde</string>
<string name="unit_minutes">minute</string>
<string name="unit_hours">ore</string>
<string name="unit_days">zile</string>
<string name="unit_weeks">săptămâni</string>
<string name="shortminute">min</string>
<string name="shortday">z</string>
<!-- Profile-->
<string name="profile_per_unit">/U</string>
<string name="profile_carbs_per_unit">g/U</string>
<!-- ProfileFunction-->
<!-- PumpType-->
<!-- APSResult-->
<string name="duration">Durată</string>
<string name="reason">Motiv</string>
<!-- ProfileSwitch-->
<!-- Temptarget-->
<!-- TDD-->
<!-- Translator-->
<string name="careportal_announcement">Anunț</string>
<string name="careportal_note">Notă</string>
<string name="careportal_question">Întrebare</string>
<string name="careportal_exercise">Activitate fizică</string>
<string name="careportal_pumpsitechange">Schimbare loc pompă</string>
<!-- Command-->
<!-- PumpEnactResult-->
<string name="smb_shortname">SMB</string>
<!-- CarbsReq-->
<!-- TDDStatsActivity-->
<string name="basalrate">Bazală</string>
<string name="bolus">Bolus</string>
<string name="tdd">TDD</string>
<string name="weight">Greutate</string>
<!-- Ntp-->
</resources>

View file

@ -122,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$d мин</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s</b>∑:<b>%2$.2f</b>Бол:<b>%3$.2f</b>Баз:<b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Проверка ГК</string>
<string name="careportal_announcement">Оовещение</string>

View file

@ -122,7 +122,6 @@
<!-- Temptarget-->
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Baz: <b>%4$.2f</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">Kontrola glykémie</string>
<string name="careportal_announcement">Oznámenie</string>

View file

@ -122,7 +122,8 @@
<!-- Temptarget-->
<string name="mins">%1$d min</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b>]]></string>
<string name="tddwithcarbsformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b> KH: <b>%5$.0fg</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">BG-kontroll</string>
<string name="careportal_announcement">Meddelande</string>

View file

@ -23,6 +23,7 @@
<color name="warningAlertHeaderText">#FF000000</color>
<color name="errorAlertBackground">#FFFF5555</color>
<color name="errorAlertHeaderText">#FF000000</color>
<color name="examinedProfile">#FFFF5555</color>
<!-- Treatment-->
<color name="tempbasal">#C803A9F4</color>

View file

@ -156,7 +156,8 @@
<string name="mins">%1$dmin</string>
<!-- TDD-->
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b>]]></string>
<string name="tddwithcarbsformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2fU</b> Bol: <b>%3$.2fU</b> Bas: <b>%4$.2fU</b> Carbs: <b>%5$.0fg</b>]]></string>
<!-- Translator-->
<string name="careportal_bgcheck">BG Check</string>

View file

@ -15,6 +15,8 @@
<string name="boluserrorcode">Solicitado: %1$.2fU Entregado: %2$.2fU Código de error: %3$s</string>
<string name="danar_valuenotsetproperly">Valor no establecido correctamente</string>
<string name="danar_setbasalstep001">Ajustar paso basal a 0.01 U/h</string>
<string name="resetpairing">¿Restablecer información de emparejamiento?</string>
<string name="dana_model">%1$s\nModelo: %2$02X\nProtocol: %3$02X\nCódigo: %4$02X</string>
<string name="processinghistory">Procesando evento</string>
<string name="danar_enableextendedbolus">Habilitar bolos extendidos en bomba</string>
<string name="overview_bolusprogress_delivered">Entregado</string>
@ -22,14 +24,18 @@
<string name="unsupportedfirmware">Firmware de la bomba no soportado</string>
<string name="pumperror">Error de bomba</string>
<string name="lowbattery">Batería Baja</string>
<string name="basalcompare">Entregar menos de la tasa basal preestablecida</string>
<string name="pumpshutdown">Bomba apagada</string>
<string name="batterydischarged">Batería de la bomba descargada</string>
<string name="occlusion">Oclusión</string>
<string name="emptyreservoir">Reservorio vacío</string>
<string name="checkshaft">Comprobar eje</string>
<string name="basalmax">Basal max</string>
<string name="dailymax">Máximo diario</string>
<string name="bloodsugarmeasurementalert">Alerta de control de BG</string>
<string name="remaininsulinalert">Insulina restante en reservorio</string>
<string name="missedbolus">Bolo perdido</string>
<string name="invalidpairing">Información de emparejamiento no válida. Solicitando un nuevo emparejamiento</string>
<string name="gettingpumpstatus">Recibir estado de bomba</string>
<string name="gettingextendedbolusstatus">Recibiendo estado de bolo extendido</string>
<string name="gettingbolusstatus">Recibiendo estado bolo</string>
@ -98,9 +104,19 @@
<string name="option_on">Activado</string>
<string name="option_off">Desactivado</string>
<string name="danar_bt_name_title">Dispositivo Bluetooth DanaR</string>
<string name="danars_password_title">Bomba de contraseña (v1 solamente)</string>
<string name="danar_password_title">Contraseña de la bomba</string>
<string name="danar_useextended_title">Usar bolos extendidos para &gt;200%%</string>
<string name="danar_visualizeextendedaspercentage_title">Visualizar bolo extendido como %%</string>
<string name="bolusspeed">Velocidad bolo</string>
<string name="selectedpump">Bomba seleccionada</string>
<string name="rs_loginsulinchange_title">Registrar cambios de reservorio</string>
<string name="rs_loginsulinchange_summary">Añadir evento \"Cambio de Insulina\" al portal de cuidados cuando se detecte en el historial</string>
<string name="rs_logcanulachange_title">Registro de cambio de cánula</string>
<string name="rs_logcanulachange_summary">Añadir evento \"Cambio de Cánula\" al portal de cuidados cuando se detecte en el historial</string>
<string name="pin1">PIN1</string>
<string name="pin2">PIN2</string>
<string name="press_ok_on_the_pump">Pulse Aceptar en la bomba\ny entre 2 números visualizados\nMantener la pantalla en la bomba ON pulsando el botón menos hasta que termine de introducir el código.</string>
<string name="num1pin">1: (12 dígitos)</string>
<string name="num2pin">2: (8 dígitos)</string>
</resources>

View file

@ -1,2 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="danarspump">DanaRS</string>
<string name="danarspump_shortname">Dana</string>
<string name="overview_bolusprogress_delivered">Livrat</string>
<string name="overview_bolusprogress_stoped">Oprit</string>
<string name="occlusion">Ocluzie</string>
<string name="emptyreservoir">Rezervor gol</string>
<string name="stoppingtempbasal">Se oprește bazala temporară</string>
<string name="stoppingextendedbolus">Se oprește bolusul extins</string>
<string name="wrongpassword">Parolă greșită</string>
<string name="wrongpumppassword">Parola pompei greșită!</string>
<string name="danar_history_alarm">Alarme</string>
<string name="danar_history_bolus">Bolusuri</string>
<string name="danar_history_carbohydrates">Carbohidrați</string>
<string name="danar_history_errors">Erori</string>
<string name="danar_history_glucose">Glicemie</string>
<string name="danar_history_refill">Reumplere</string>
<string name="danar_history_syspend">Suspendare</string>
<string name="danar_history_prime">Amorsare</string>
<string name="danar_pumpalarm">Alarmă</string>
<string name="danar_pumpalarm_sound">Sunet</string>
<string name="danar_pumpalarm_vibrate">Vibrație</string>
<string name="danar_pumpalarm_both">Ambele</string>
<string name="danar_saveuseroptions">Salvați opțiunile în pompă</string>
<string name="description_pump_dana_r">Integrare cu pompele DANA Diabcare R</string>
<string name="danarpump_shortname">DANA</string>
<string name="danarkoreanpump">DanaR din Coreea</string>
<string name="danarpump">DanaR</string>
<string name="danarv2pump">DanaRv2</string>
<string name="danar_bluetooth_status">Status Bluetooth</string>
<string name="danar_iob_label">IOB din pompă</string>
<string name="basal_step">Pas bazală</string>
<string name="bolus_step">Pas bolus</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="danar_pump_settings">Setări pompă Dana</string>
<string name="timeformat12h">12h</string>
<string name="timeformat24h">24h</string>
<string name="option_on">Pornit</string>
<string name="option_off">Oprit</string>
<string name="pin1">PIN1</string>
<string name="pin2">PIN2</string>
<string name="num1pin">1: (12 cifre)</string>
<string name="num2pin">2: (8 cifre)</string>
</resources>

View file

@ -1,2 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_v2">AAPSv2</string>
<string name="label_warning_sync_aaps">Sincronizare cu AAPS!</string>
<string name="pref_on">Pornit</string>
<string name="pref_off">Oprit</string>
<string name="pref_1_hour">1 oră</string>
<string name="pref_2_hours">2 ore</string>
<string name="pref_3_hours">3 ore</string>
<string name="pref_4_hours">4 ore</string>
<string name="pref_5_hours">5 ore</string>
<string name="pref_default">Implicit</string>
</resources>