Merge branch 'master' into gradlegit

This commit is contained in:
Milos Kozak 2019-04-25 13:45:01 +02:00 committed by GitHub
commit 5a6536c99c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
55 changed files with 922 additions and 505 deletions

View file

@ -10,6 +10,8 @@ buildscript {
} }
} }
apply plugin: "com.android.application" apply plugin: "com.android.application"
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'
apply plugin: "io.fabric" apply plugin: "io.fabric"
apply plugin: "jacoco-android" apply plugin: "jacoco-android"
@ -27,6 +29,7 @@ ext {
repositories { repositories {
maven { url 'https://maven.fabric.io/public' } maven { url 'https://maven.fabric.io/public' }
jcenter { url "https://jcenter.bintray.com/" } jcenter { url "https://jcenter.bintray.com/" }
mavenCentral()
} }
def generateGitBuild = { -> def generateGitBuild = { ->
@ -100,7 +103,7 @@ android {
targetSdkVersion 25 targetSdkVersion 25
multiDexEnabled true multiDexEnabled true
versionCode 1500 versionCode 1500
version "2.2.3-dev" version "2.3"
buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"' buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"' buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
@ -112,6 +115,9 @@ android {
moduleName "BleCommandUtil" moduleName "BleCommandUtil"
} }
} }
kotlinOptions {
jvmTarget = '1.8'
}
lintOptions { lintOptions {
// TODO remove once wear dependency com.google.android.gms:play-services-wearable:7.3.0 // TODO remove once wear dependency com.google.android.gms:play-services-wearable:7.3.0
// has been upgraded (requiring significant code changes), which currently fails release // has been upgraded (requiring significant code changes), which currently fails release
@ -269,6 +275,7 @@ dependencies {
androidTestImplementation "org.mockito:mockito-core:2.8.47" androidTestImplementation "org.mockito:mockito-core:2.8.47"
androidTestImplementation "com.google.dexmaker:dexmaker:${dexmakerVersion}" androidTestImplementation "com.google.dexmaker:dexmaker:${dexmakerVersion}"
androidTestImplementation "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}" androidTestImplementation "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
} }
task unzip(type: Copy) { task unzip(type: Copy) {

View file

@ -48,9 +48,12 @@ import info.nightscout.androidaps.events.EventFeatureRunning;
import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventRefreshGui;
import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus; import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus;
import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt;
import info.nightscout.androidaps.setupwizard.SetupWizardActivity; import info.nightscout.androidaps.setupwizard.SetupWizardActivity;
import info.nightscout.androidaps.tabs.TabPageAdapter; import info.nightscout.androidaps.tabs.TabPageAdapter;
import info.nightscout.androidaps.utils.AndroidPermission; import info.nightscout.androidaps.utils.AndroidPermission;
@ -59,7 +62,6 @@ import info.nightscout.androidaps.utils.LocaleHelper;
import info.nightscout.androidaps.utils.OKDialog; import info.nightscout.androidaps.utils.OKDialog;
import info.nightscout.androidaps.utils.PasswordProtection; import info.nightscout.androidaps.utils.PasswordProtection;
import info.nightscout.androidaps.utils.SP; import info.nightscout.androidaps.utils.SP;
import info.nightscout.androidaps.utils.VersionChecker;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity {
private static Logger log = LoggerFactory.getLogger(L.CORE); private static Logger log = LoggerFactory.getLogger(L.CORE);
@ -115,7 +117,11 @@ public class MainActivity extends AppCompatActivity {
public void onPageScrollStateChanged(int state) { public void onPageScrollStateChanged(int state) {
} }
}); });
VersionChecker.check();
//Check here if loop plugin is disabled. Else check via constraints
if (!LoopPlugin.getPlugin().isEnabled(PluginType.LOOP))
VersionCheckerUtilsKt.triggerCheckVersion();
FabricPrivacy.setUserStats(); FabricPrivacy.setUserStats();
} }

View file

@ -50,6 +50,7 @@ import info.nightscout.androidaps.plugins.general.nsclient.receivers.DBAccessRec
import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin; import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin; import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin;
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin; import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin;
import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerPlugin;
import info.nightscout.androidaps.plugins.general.wear.WearPlugin; import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin; import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin; import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin;
@ -88,6 +89,8 @@ import info.nightscout.androidaps.services.Intents;
import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.FabricPrivacy;
import io.fabric.sdk.android.Fabric; import io.fabric.sdk.android.Fabric;
import static info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt.triggerCheckVersion;
public class MainApp extends Application { public class MainApp extends Application {
private static Logger log = LoggerFactory.getLogger(L.CORE); private static Logger log = LoggerFactory.getLogger(L.CORE);
@ -119,7 +122,7 @@ public class MainApp extends Application {
log.debug("onCreate"); log.debug("onCreate");
sInstance = this; sInstance = this;
sResources = getResources(); sResources = getResources();
sConstraintsChecker = new ConstraintChecker(this); sConstraintsChecker = new ConstraintChecker();
sDatabaseHelper = OpenHelperManager.getHelper(sInstance, DatabaseHelper.class); sDatabaseHelper = OpenHelperManager.getHelper(sInstance, DatabaseHelper.class);
try { try {
@ -148,6 +151,9 @@ public class MainApp extends Application {
registerLocalBroadcastReceiver(); registerLocalBroadcastReceiver();
//trigger here to see the new version on app start after an update
triggerCheckVersion();
if (pluginsList == null) { if (pluginsList == null) {
pluginsList = new ArrayList<>(); pluginsList = new ArrayList<>();
// Register all tabs in app here // Register all tabs in app here
@ -179,6 +185,7 @@ public class MainApp extends Application {
if (Config.OTHERPROFILES) pluginsList.add(LocalProfilePlugin.getPlugin()); if (Config.OTHERPROFILES) pluginsList.add(LocalProfilePlugin.getPlugin());
pluginsList.add(TreatmentsPlugin.getPlugin()); pluginsList.add(TreatmentsPlugin.getPlugin());
if (Config.SAFETY) pluginsList.add(SafetyPlugin.getPlugin()); if (Config.SAFETY) pluginsList.add(SafetyPlugin.getPlugin());
if (Config.SAFETY) pluginsList.add(VersionCheckerPlugin.INSTANCE);
if (Config.SAFETY) pluginsList.add(StorageConstraintPlugin.getPlugin()); if (Config.SAFETY) pluginsList.add(StorageConstraintPlugin.getPlugin());
if (Config.APS) pluginsList.add(ObjectivesPlugin.getPlugin()); if (Config.APS) pluginsList.add(ObjectivesPlugin.getPlugin());
pluginsList.add(SourceXdripPlugin.getPlugin()); pluginsList.add(SourceXdripPlugin.getPlugin());

View file

@ -1,7 +1,11 @@
package info.nightscout.androidaps.data; package info.nightscout.androidaps.data;
import android.support.annotation.NonNull;
import java.util.ArrayList; import java.util.ArrayList;
import javax.annotation.Nonnull;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.interfaces.Constraint; import info.nightscout.androidaps.interfaces.Constraint;
@ -15,13 +19,6 @@ import info.nightscout.androidaps.interfaces.PluginType;
public class ConstraintChecker implements ConstraintsInterface { public class ConstraintChecker implements ConstraintsInterface {
private MainApp mainApp;
public ConstraintChecker(MainApp mainApp) {
this.mainApp = mainApp;
}
public Constraint<Boolean> isLoopInvokationAllowed() { public Constraint<Boolean> isLoopInvokationAllowed() {
return isLoopInvocationAllowed(new Constraint<>(true)); return isLoopInvocationAllowed(new Constraint<>(true));
} }
@ -79,9 +76,9 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isLoopInvocationAllowed(Constraint<Boolean> value) { public Constraint<Boolean> isLoopInvocationAllowed(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -91,9 +88,9 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isClosedLoopAllowed(Constraint<Boolean> value) { public Constraint<Boolean> isClosedLoopAllowed(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -103,9 +100,9 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isAutosensModeEnabled(Constraint<Boolean> value) { public Constraint<Boolean> isAutosensModeEnabled(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -115,9 +112,9 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isAMAModeEnabled(Constraint<Boolean> value) { public Constraint<Boolean> isAMAModeEnabled(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constrain = (ConstraintsInterface) p; ConstraintsInterface constrain = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -127,9 +124,9 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isSMBModeEnabled(Constraint<Boolean> value) { public Constraint<Boolean> isSMBModeEnabled(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -139,9 +136,9 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isUAMEnabled(Constraint<Boolean> value) { public Constraint<Boolean> isUAMEnabled(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -151,8 +148,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isAdvancedFilteringEnabled(Constraint<Boolean> value) { public Constraint<Boolean> isAdvancedFilteringEnabled(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -162,8 +159,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Boolean> isSuperBolusEnabled(Constraint<Boolean> value) { public Constraint<Boolean> isSuperBolusEnabled(@NonNull Constraint<Boolean> value) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -173,8 +170,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Double> applyBasalConstraints(Constraint<Double> absoluteRate, Profile profile) { public Constraint<Double> applyBasalConstraints(@NonNull Constraint<Double> absoluteRate, Profile profile) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constraint = (ConstraintsInterface) p; ConstraintsInterface constraint = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -184,8 +181,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Integer> applyBasalPercentConstraints(Constraint<Integer> percentRate, Profile profile) { public Constraint<Integer> applyBasalPercentConstraints(@NonNull Constraint<Integer> percentRate, Profile profile) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constrain = (ConstraintsInterface) p; ConstraintsInterface constrain = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -195,8 +192,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Double> applyBolusConstraints(Constraint<Double> insulin) { public Constraint<Double> applyBolusConstraints(@NonNull Constraint<Double> insulin) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constrain = (ConstraintsInterface) p; ConstraintsInterface constrain = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -206,8 +203,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Double> applyExtendedBolusConstraints(Constraint<Double> insulin) { public Constraint<Double> applyExtendedBolusConstraints(@NonNull Constraint<Double> insulin) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constrain = (ConstraintsInterface) p; ConstraintsInterface constrain = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -217,8 +214,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Integer> applyCarbsConstraints(Constraint<Integer> carbs) { public Constraint<Integer> applyCarbsConstraints(@NonNull Constraint<Integer> carbs) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constrain = (ConstraintsInterface) p; ConstraintsInterface constrain = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
@ -228,8 +225,8 @@ public class ConstraintChecker implements ConstraintsInterface {
} }
@Override @Override
public Constraint<Double> applyMaxIOBConstraints(Constraint<Double> maxIob) { public Constraint<Double> applyMaxIOBConstraints(@NonNull Constraint<Double> maxIob) {
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class); ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
for (PluginBase p : constraintsPlugins) { for (PluginBase p : constraintsPlugins) {
ConstraintsInterface constrain = (ConstraintsInterface) p; ConstraintsInterface constrain = (ConstraintsInterface) p;
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue; if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;

View file

@ -1,178 +0,0 @@
package info.nightscout.androidaps.data;
import android.support.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.utils.DateUtil;
import info.nightscout.androidaps.utils.DecimalFormatter;
import info.nightscout.androidaps.utils.Round;
/**
* Created by mike on 04.01.2017.
*/
public class GlucoseStatus {
private static Logger log = LoggerFactory.getLogger(GlucoseStatus.class);
public double glucose = 0d;
public double delta = 0d;
public double avgdelta = 0d;
public double short_avgdelta = 0d;
public double long_avgdelta = 0d;
public long date = 0L;
public String log() {
return "Glucose: " + DecimalFormatter.to0Decimal(glucose) + " mg/dl " +
"Delta: " + DecimalFormatter.to0Decimal(delta) + " mg/dl" +
"Short avg. delta: " + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl " +
"Long avg. delta: " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl";
}
public GlucoseStatus() {
}
public GlucoseStatus round() {
this.glucose = Round.roundTo(this.glucose, 0.1);
this.delta = Round.roundTo(this.delta, 0.01);
this.avgdelta = Round.roundTo(this.avgdelta, 0.01);
this.short_avgdelta = Round.roundTo(this.short_avgdelta, 0.01);
this.long_avgdelta = Round.roundTo(this.long_avgdelta, 0.01);
return this;
}
@Nullable
public static GlucoseStatus getGlucoseStatusData() {
return getGlucoseStatusData(false);
}
@Nullable
public static GlucoseStatus getGlucoseStatusData(boolean allowOldData) {
// load 45min
//long fromtime = DateUtil.now() - 60 * 1000L * 45;
//List<BgReading> data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false);
List<BgReading> data = IobCobCalculatorPlugin.getPlugin().getBgReadings();
if (data == null) {
if (L.isEnabled(L.GLUCOSE))
log.debug("data=null");
return null;
}
int sizeRecords = data.size();
if (sizeRecords == 0) {
if (L.isEnabled(L.GLUCOSE))
log.debug("sizeRecords==0");
return null;
}
if (data.get(0).date < DateUtil.now() - 7 * 60 * 1000L && !allowOldData) {
if (L.isEnabled(L.GLUCOSE))
log.debug("olddata");
return null;
}
BgReading now = data.get(0);
long now_date = now.date;
double change;
if (sizeRecords == 1) {
GlucoseStatus status = new GlucoseStatus();
status.glucose = now.value;
status.short_avgdelta = 0d;
status.delta = 0d;
status.long_avgdelta = 0d;
status.avgdelta = 0d; // for OpenAPS MA
status.date = now_date;
if (L.isEnabled(L.GLUCOSE))
log.debug("sizeRecords==1");
return status.round();
}
ArrayList<Double> now_value_list = new ArrayList<>();
ArrayList<Double> last_deltas = new ArrayList<>();
ArrayList<Double> short_deltas = new ArrayList<>();
ArrayList<Double> long_deltas = new ArrayList<>();
// Use the latest sgv value in the now calculations
now_value_list.add(now.value);
for (int i = 1; i < sizeRecords; i++) {
if (data.get(i).value > 38) {
BgReading then = data.get(i);
long then_date = then.date;
double avgdelta;
long minutesago;
minutesago = Math.round((now_date - then_date) / (1000d * 60));
// multiply by 5 to get the same units as delta, i.e. mg/dL/5m
change = now.value - then.value;
avgdelta = change / minutesago * 5;
if (L.isEnabled(L.GLUCOSE))
log.debug(then.toString() + " minutesago=" + minutesago + " avgdelta=" + avgdelta);
// use the average of all data points in the last 2.5m for all further "now" calculations
if (0 < minutesago && minutesago < 2.5) {
// Keep and average all values within the last 2.5 minutes
now_value_list.add(then.value);
now.value = average(now_value_list);
// short_deltas are calculated from everything ~5-15 minutes ago
} else if (2.5 < minutesago && minutesago < 17.5) {
//console.error(minutesago, avgdelta);
short_deltas.add(avgdelta);
// last_deltas are calculated from everything ~5 minutes ago
if (2.5 < minutesago && minutesago < 7.5) {
last_deltas.add(avgdelta);
}
// long_deltas are calculated from everything ~20-40 minutes ago
} else if (17.5 < minutesago && minutesago < 42.5) {
long_deltas.add(avgdelta);
} else {
// Do not process any more records after >= 42.5 minutes
break;
}
}
}
GlucoseStatus status = new GlucoseStatus();
status.glucose = now.value;
status.date = now_date;
status.short_avgdelta = average(short_deltas);
if (last_deltas.isEmpty()) {
status.delta = status.short_avgdelta;
} else {
status.delta = average(last_deltas);
}
status.long_avgdelta = average(long_deltas);
status.avgdelta = status.short_avgdelta; // for OpenAPS MA
if (L.isEnabled(L.GLUCOSE))
log.debug(status.log());
return status.round();
}
public static double average(ArrayList<Double> array) {
double sum = 0d;
if (array.size() == 0)
return 0d;
for (Double value : array) {
sum += value;
}
return sum / array.size();
}
}

View file

@ -12,6 +12,7 @@ import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.TempTarget;
import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.CobInfo; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.CobInfo;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin; import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;

View file

@ -45,9 +45,9 @@ import info.nightscout.androidaps.events.EventTempTargetChange;
import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventNewHistoryData; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventNewHistoryData;
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
import info.nightscout.androidaps.plugins.pump.danaR.activities.DanaRNSHistorySync; import info.nightscout.androidaps.plugins.pump.danaR.activities.DanaRNSHistorySync;
import info.nightscout.androidaps.plugins.pump.danaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.pump.danaR.comm.RecordTypes;
import info.nightscout.androidaps.plugins.pump.insight.database.InsightBolusID; import info.nightscout.androidaps.plugins.pump.insight.database.InsightBolusID;
@ -83,7 +83,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public static final String DATABASE_INSIGHT_BOLUS_IDS = "InsightBolusIDs"; public static final String DATABASE_INSIGHT_BOLUS_IDS = "InsightBolusIDs";
public static final String DATABASE_INSIGHT_PUMP_IDS = "InsightPumpIDs"; public static final String DATABASE_INSIGHT_PUMP_IDS = "InsightPumpIDs";
private static final int DATABASE_VERSION = 10; private static final int DATABASE_VERSION = 11;
public static Long earliestDataChange = null; public static Long earliestDataChange = null;
@ -131,6 +131,10 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class); TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class);
TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class); TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class);
TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class); TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class);
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_BOLUS_IDS + "\", " + System.currentTimeMillis() + " " +
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_BOLUS_IDS + "\")");
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_PUMP_IDS + "\", " + System.currentTimeMillis() + " " +
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_PUMP_IDS + "\")");
} catch (SQLException e) { } catch (SQLException e) {
log.error("Can't create database", e); log.error("Can't create database", e);
throw new RuntimeException(e); throw new RuntimeException(e);
@ -143,15 +147,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
this.oldVersion = oldVersion; this.oldVersion = oldVersion;
this.newVersion = newVersion; this.newVersion = newVersion;
if (oldVersion == 7 && newVersion == 8) { if (oldVersion < 7) {
log.debug("Upgrading database from v7 to v8");
} else if (oldVersion == 8 && newVersion == 9) {
log.debug("Upgrading database from v8 to v9");
} else if (oldVersion == 9 && newVersion == 10) {
TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class);
TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class);
TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class);
} else {
log.info(DatabaseHelper.class.getName(), "onUpgrade"); log.info(DatabaseHelper.class.getName(), "onUpgrade");
TableUtils.dropTable(connectionSource, TempTarget.class, true); TableUtils.dropTable(connectionSource, TempTarget.class, true);
TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true);
@ -162,6 +158,17 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
TableUtils.dropTable(connectionSource, CareportalEvent.class, true); TableUtils.dropTable(connectionSource, CareportalEvent.class, true);
TableUtils.dropTable(connectionSource, ProfileSwitch.class, true); TableUtils.dropTable(connectionSource, ProfileSwitch.class, true);
onCreate(database, connectionSource); onCreate(database, connectionSource);
} else if (oldVersion < 10) {
TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class);
TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class);
TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class);
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_BOLUS_IDS + "\", " + System.currentTimeMillis() + " " +
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_BOLUS_IDS + "\")");
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_PUMP_IDS + "\", " + System.currentTimeMillis() + " " +
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_PUMP_IDS + "\")");
} else if (oldVersion < 11) {
database.execSQL("UPDATE sqlite_sequence SET seq = " + System.currentTimeMillis() + " WHERE name = \"" + DATABASE_INSIGHT_BOLUS_IDS + "\"");
database.execSQL("UPDATE sqlite_sequence SET seq = " + System.currentTimeMillis() + " WHERE name = \"" + DATABASE_INSIGHT_PUMP_IDS + "\"");
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Can't drop databases", e); log.error("Can't drop databases", e);

View file

@ -20,7 +20,7 @@ import java.lang.reflect.InvocationTargetException;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;

View file

@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;

View file

@ -17,7 +17,7 @@ import java.lang.reflect.InvocationTargetException;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;

View file

@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;

View file

@ -20,7 +20,7 @@ import java.lang.reflect.InvocationTargetException;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;

View file

@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.data.MealData;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;

View file

@ -39,7 +39,7 @@ import java.util.List;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore; import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;

View file

@ -56,7 +56,7 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.QuickWizardEntry; import info.nightscout.androidaps.data.QuickWizardEntry;

View file

@ -18,7 +18,7 @@ import java.text.DecimalFormat;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.NumberPicker;

View file

@ -74,6 +74,7 @@ public class Notification {
public static final int DST_LOOP_DISABLED = 49; public static final int DST_LOOP_DISABLED = 49;
public static final int DST_IN_24H = 50; public static final int DST_IN_24H = 50;
public static final int DISKFULL = 51; public static final int DISKFULL = 51;
public static final int OLDVERSION = 52;
public int id; public int id;

View file

@ -20,7 +20,7 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainActivity; import info.nightscout.androidaps.MainActivity;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.DatabaseHelper;

View file

@ -20,7 +20,7 @@ import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore; import info.nightscout.androidaps.data.ProfileStore;

View file

@ -0,0 +1,65 @@
package info.nightscout.androidaps.plugins.general.versionChecker
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.interfaces.*
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification
import info.nightscout.androidaps.utils.SP
import java.util.concurrent.TimeUnit
/**
* Usually we would have a class here.
* Instead of having a class we can use an object directly inherited from PluginBase.
* This is a lazy loading singleton only loaded when actually used.
* */
object VersionCheckerPlugin : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.neverVisible(true)
.alwaysEnabled(true)
.showInList(false)
.pluginName(R.string.versionChecker)), ConstraintsInterface {
override fun isClosedLoopAllowed(value: Constraint<Boolean>): Constraint<Boolean> {
checkWarning()
triggerCheckVersion()
return if (isOldVersion(GRACE_PERIOD_VERY_OLD))
value.set(false, MainApp.gs(R.string.very_old_version), this)
else
value
}
private fun checkWarning() {
val now = System.currentTimeMillis()
if (isOldVersion(GRACE_PERIOD_WARNING) && shouldWarnAgain(now)) {
// store last notification time
SP.putLong(R.string.key_last_versionchecker_plugin_warning, now)
//notify
val message = MainApp.gs(R.string.new_version_warning, Math.round((now - SP.getLong(R.string.key_last_time_this_version_detected, now)) / TimeUnit.DAYS.toMillis(1).toDouble()))
val notification = Notification(Notification.OLDVERSION, message, Notification.NORMAL)
MainApp.bus().post(EventNewNotification(notification))
}
}
private fun shouldWarnAgain(now: Long) =
now > SP.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY
override fun applyMaxIOBConstraints(maxIob: Constraint<Double>): Constraint<Double> =
if (isOldVersion(GRACE_PERIOD_OLD))
maxIob.set(0.toDouble(), MainApp.gs(R.string.old_version), this)
else
maxIob
private fun isOldVersion(gracePeriod: Long): Boolean {
val now = System.currentTimeMillis()
return now > SP.getLong(R.string.key_last_time_this_version_detected, 0) + gracePeriod
}
val WARN_EVERY = TimeUnit.DAYS.toMillis(1)
val GRACE_PERIOD_WARNING = TimeUnit.DAYS.toMillis(30)
val GRACE_PERIOD_OLD = TimeUnit.DAYS.toMillis(60)
val GRACE_PERIOD_VERY_OLD = TimeUnit.DAYS.toMillis(90)
}

View file

@ -0,0 +1,111 @@
package info.nightscout.androidaps.plugins.general.versionChecker
import android.content.Context
import android.net.ConnectivityManager
import info.nightscout.androidaps.BuildConfig
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.logging.L
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification
import info.nightscout.androidaps.utils.SP
import org.apache.http.HttpResponse
import org.apache.http.client.methods.HttpGet
import org.apache.http.impl.client.DefaultHttpClient
import org.slf4j.LoggerFactory
import java.io.IOException
import java.io.InputStream
import java.util.concurrent.TimeUnit
// check network connection
fun isConnected(): Boolean {
val connMgr = MainApp.instance().applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
return connMgr.activeNetworkInfo?.isConnected ?: false
}
// convert inputstream to String
@Throws(IOException::class)
inline fun InputStream.findVersion(): String? {
val regex = "(.*)version(.*)\"(((\\d+)\\.)+(\\d+))\"(.*)".toRegex()
return bufferedReader()
.readLines()
.filter { regex.matches(it) }
.mapNotNull { regex.matchEntire(it)?.groupValues?.getOrNull(3) }
.firstOrNull()
}
private val log = LoggerFactory.getLogger(L.CORE)
fun triggerCheckVersion() {
if(!SP.contains(R.string.key_last_time_this_version_detected)) {
// On a new installation, set it as 30 days old in order to warn that there is a new version.
SP.putLong(R.string.key_last_time_this_version_detected, System.currentTimeMillis() - TimeUnit.DAYS.toMillis(30))
}
// If we are good, only check once every day.
if(System.currentTimeMillis() > SP.getLong(R.string.key_last_time_this_version_detected, 0) + CHECK_EVERY){
checkVersion()
}
}
@Suppress("DEPRECATION")
private fun checkVersion() = if (isConnected()) {
Thread {
try {
val request = HttpGet("https://raw.githubusercontent.com/MilosKozak/AndroidAPS/master/app/build.gradle")
val response: HttpResponse = DefaultHttpClient().execute(request)
val version: String? = response.entity.content?.findVersion()
compareWithCurrentVersion(version, BuildConfig.VERSION_NAME)
} catch (e: IOException) {
log.debug("Github master version check error: $e")
}
}.start()
} else
log.debug("Github master version no checked. No connectivity")
fun compareWithCurrentVersion(newVersion: String?, currentVersion: String) {
val comparison: Int? = newVersion?.versionStrip()?.compareTo(currentVersion.versionStrip())
when {
comparison == null -> onVersionNotDetectable()
comparison == 0 -> onSameVersionDetected()
comparison > 0 -> onNewVersionDetected(currentVersion = currentVersion, newVersion = newVersion)
else -> onOlderVersionDetected()
}
}
private fun onOlderVersionDetected() {
log.debug("Version newer than master. Are you developer?")
SP.putLong(R.string.key_last_time_this_version_detected, System.currentTimeMillis())
}
fun onSameVersionDetected() {
SP.putLong(R.string.key_last_time_this_version_detected, System.currentTimeMillis())
}
fun onVersionNotDetectable() {
log.debug("fetch failed, ignore and smartcast to non-null")
}
fun onNewVersionDetected(currentVersion: String, newVersion: String?) {
val now = System.currentTimeMillis()
if(now > SP.getLong(R.string.key_last_versionchecker_warning, 0) + WARN_EVERY) {
log.debug("Version ${currentVersion} outdated. Found $newVersion")
val notification = Notification(Notification.NEWVERSIONDETECTED, String.format(MainApp.gs(R.string.versionavailable), newVersion.toString()), Notification.LOW)
MainApp.bus().post(EventNewNotification(notification))
SP.putLong(R.string.key_last_versionchecker_warning, now)
}
}
fun String.versionStrip() = this.mapNotNull {
when (it) {
in '0'..'9' -> it
'.' -> it
else -> null
}
}.joinToString(separator = "")
val CHECK_EVERY = TimeUnit.DAYS.toMillis(1)
val WARN_EVERY = TimeUnit.DAYS.toMillis(1)

View file

@ -32,17 +32,11 @@ import com.google.android.gms.wearable.PutDataRequest;
import com.google.android.gms.wearable.Wearable; import com.google.android.gms.wearable.Wearable;
import com.google.android.gms.wearable.WearableListenerService; import com.google.android.gms.wearable.WearableListenerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
@ -55,15 +49,11 @@ import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin; import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.nsclient.data.NSDeviceStatus; import info.nightscout.androidaps.plugins.general.nsclient.data.NSDeviceStatus;
import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin; import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler; import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler;
import info.nightscout.androidaps.plugins.general.wear.WearPlugin; import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.treatments.Treatment;
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.utils.DecimalFormatter; import info.nightscout.androidaps.utils.DecimalFormatter;
import info.nightscout.androidaps.utils.SP; import info.nightscout.androidaps.utils.SP;
import info.nightscout.androidaps.utils.SafeParse; import info.nightscout.androidaps.utils.SafeParse;

View file

@ -0,0 +1,180 @@
package info.nightscout.androidaps.plugins.iob.iobCobCalculator;
import android.support.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.utils.DateUtil;
import info.nightscout.androidaps.utils.DecimalFormatter;
import info.nightscout.androidaps.utils.Round;
/**
* Created by mike on 04.01.2017.
*/
public class GlucoseStatus {
private static Logger log = LoggerFactory.getLogger(GlucoseStatus.class);
public double glucose = 0d;
public double delta = 0d;
public double avgdelta = 0d;
public double short_avgdelta = 0d;
public double long_avgdelta = 0d;
public long date = 0L;
public String log() {
return "Glucose: " + DecimalFormatter.to0Decimal(glucose) + " mg/dl " +
"Delta: " + DecimalFormatter.to0Decimal(delta) + " mg/dl" +
"Short avg. delta: " + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl " +
"Long avg. delta: " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl";
}
public GlucoseStatus() {
}
public GlucoseStatus round() {
this.glucose = Round.roundTo(this.glucose, 0.1);
this.delta = Round.roundTo(this.delta, 0.01);
this.avgdelta = Round.roundTo(this.avgdelta, 0.01);
this.short_avgdelta = Round.roundTo(this.short_avgdelta, 0.01);
this.long_avgdelta = Round.roundTo(this.long_avgdelta, 0.01);
return this;
}
@Nullable
public static GlucoseStatus getGlucoseStatusData() {
return getGlucoseStatusData(false);
}
@Nullable
public static GlucoseStatus getGlucoseStatusData(boolean allowOldData) {
// load 45min
//long fromtime = DateUtil.now() - 60 * 1000L * 45;
//List<BgReading> data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false);
synchronized (IobCobCalculatorPlugin.getPlugin().getDataLock()) {
List<BgReading> data = IobCobCalculatorPlugin.getPlugin().getBgReadings();
if (data == null) {
if (L.isEnabled(L.GLUCOSE))
log.debug("data=null");
return null;
}
int sizeRecords = data.size();
if (sizeRecords == 0) {
if (L.isEnabled(L.GLUCOSE))
log.debug("sizeRecords==0");
return null;
}
if (data.get(0).date < DateUtil.now() - 7 * 60 * 1000L && !allowOldData) {
if (L.isEnabled(L.GLUCOSE))
log.debug("olddata");
return null;
}
BgReading now = data.get(0);
long now_date = now.date;
double change;
if (sizeRecords == 1) {
GlucoseStatus status = new GlucoseStatus();
status.glucose = now.value;
status.short_avgdelta = 0d;
status.delta = 0d;
status.long_avgdelta = 0d;
status.avgdelta = 0d; // for OpenAPS MA
status.date = now_date;
if (L.isEnabled(L.GLUCOSE))
log.debug("sizeRecords==1");
return status.round();
}
ArrayList<Double> now_value_list = new ArrayList<>();
ArrayList<Double> last_deltas = new ArrayList<>();
ArrayList<Double> short_deltas = new ArrayList<>();
ArrayList<Double> long_deltas = new ArrayList<>();
// Use the latest sgv value in the now calculations
now_value_list.add(now.value);
for (int i = 1; i < sizeRecords; i++) {
if (data.get(i).value > 38) {
BgReading then = data.get(i);
long then_date = then.date;
double avgdelta;
long minutesago;
minutesago = Math.round((now_date - then_date) / (1000d * 60));
// multiply by 5 to get the same units as delta, i.e. mg/dL/5m
change = now.value - then.value;
avgdelta = change / minutesago * 5;
if (L.isEnabled(L.GLUCOSE))
log.debug(then.toString() + " minutesago=" + minutesago + " avgdelta=" + avgdelta);
// use the average of all data points in the last 2.5m for all further "now" calculations
if (0 < minutesago && minutesago < 2.5) {
// Keep and average all values within the last 2.5 minutes
now_value_list.add(then.value);
now.value = average(now_value_list);
// short_deltas are calculated from everything ~5-15 minutes ago
} else if (2.5 < minutesago && minutesago < 17.5) {
//console.error(minutesago, avgdelta);
short_deltas.add(avgdelta);
// last_deltas are calculated from everything ~5 minutes ago
if (2.5 < minutesago && minutesago < 7.5) {
last_deltas.add(avgdelta);
}
// long_deltas are calculated from everything ~20-40 minutes ago
} else if (17.5 < minutesago && minutesago < 42.5) {
long_deltas.add(avgdelta);
} else {
// Do not process any more records after >= 42.5 minutes
break;
}
}
}
GlucoseStatus status = new GlucoseStatus();
status.glucose = now.value;
status.date = now_date;
status.short_avgdelta = average(short_deltas);
if (last_deltas.isEmpty()) {
status.delta = status.short_avgdelta;
} else {
status.delta = average(last_deltas);
}
status.long_avgdelta = average(long_deltas);
status.avgdelta = status.short_avgdelta; // for OpenAPS MA
if (L.isEnabled(L.GLUCOSE))
log.debug(status.log());
return status.round();
}
}
public static double average(ArrayList<Double> array) {
double sum = 0d;
if (array.size() == 0)
return 0d;
for (Double value : array) {
sum += value;
}
return sum / array.size();
}
}

View file

@ -65,7 +65,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
private volatile List<BgReading> bgReadings = null; // newest at index 0 private volatile List<BgReading> bgReadings = null; // newest at index 0
private volatile List<BgReading> bucketed_data = null; private volatile List<BgReading> bucketed_data = null;
final Object dataLock = new Object(); private final Object dataLock = new Object();
boolean stopCalculationTrigger = false; boolean stopCalculationTrigger = false;
private Thread thread = null; private Thread thread = null;
@ -108,6 +108,10 @@ public class IobCobCalculatorPlugin extends PluginBase {
return bucketed_data; return bucketed_data;
} }
public Object getDataLock() {
return dataLock;
}
// roundup to whole minute // roundup to whole minute
public static long roundUpTime(long time) { public static long roundUpTime(long time) {
if (time % 60000 == 0) if (time % 60000 == 0)

View file

@ -96,7 +96,7 @@ public class IobCobOref1Thread extends Thread {
long oldestTimeWithData = iobCobCalculatorPlugin.calculateDetectionStart(end, limitDataToOldestAvailable); long oldestTimeWithData = iobCobCalculatorPlugin.calculateDetectionStart(end, limitDataToOldestAvailable);
synchronized (iobCobCalculatorPlugin.dataLock) { synchronized (iobCobCalculatorPlugin.getDataLock()) {
if (bgDataReload) { if (bgDataReload) {
iobCobCalculatorPlugin.loadBgData(end); iobCobCalculatorPlugin.loadBgData(end);
iobCobCalculatorPlugin.createBucketedData(); iobCobCalculatorPlugin.createBucketedData();

View file

@ -95,7 +95,7 @@ public class IobCobThread extends Thread {
long oldestTimeWithData = iobCobCalculatorPlugin.calculateDetectionStart(end, limitDataToOldestAvailable); long oldestTimeWithData = iobCobCalculatorPlugin.calculateDetectionStart(end, limitDataToOldestAvailable);
synchronized (iobCobCalculatorPlugin.dataLock) { synchronized (iobCobCalculatorPlugin.getDataLock()) {
if (bgDataReload) { if (bgDataReload) {
iobCobCalculatorPlugin.loadBgData(end); iobCobCalculatorPlugin.loadBgData(end);
iobCobCalculatorPlugin.createBucketedData(); iobCobCalculatorPlugin.createBucketedData();

View file

@ -75,8 +75,11 @@ public class AlarmSoundService extends Service {
@Override @Override
public void onDestroy() { public void onDestroy() {
player.stop(); if (player != null) {
player.release(); player.stop();
player.release();
}
if (L.isEnabled(L.CORE)) if (L.isEnabled(L.CORE))
log.debug("onDestroy"); log.debug("onDestroy");
} }

View file

@ -3,7 +3,7 @@ package info.nightscout.androidaps.utils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.db.TempTarget;

View file

@ -1,100 +0,0 @@
package info.nightscout.androidaps.utils;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
import static android.content.Context.CONNECTIVITY_SERVICE;
public class VersionChecker {
private static Logger log = LoggerFactory.getLogger(L.CORE);
public static void check() {
if (isConnected())
new Thread(() -> {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("https://raw.githubusercontent.com/MilosKozak/AndroidAPS/master/app/build.gradle");
HttpResponse response;
try {
response = client.execute(request);
InputStream inputStream = response.getEntity().getContent();
if (inputStream != null) {
String result = findLine(inputStream);
if (result != null) {
int compare = result.compareTo(BuildConfig.VERSION_NAME.replace("\"", ""));
if (compare == 0) {
log.debug("Version equal to master");
return;
} else if (compare > 0) {
log.debug("Version outdated. Found " + result);
Notification notification = new Notification(Notification.NEWVERSIONDETECTED, String.format(MainApp.gs(R.string.versionavailable), result), Notification.LOW);
MainApp.bus().post(new EventNewNotification(notification));
return;
} else {
log.debug("Version newer than master. Are you developer?");
return;
}
}
}
log.debug("Github master version not found");
} catch (IOException e) {
e.printStackTrace();
log.debug("Github master version check error");
}
}).start();
else
log.debug("Github master version no checked. No connectivity");
}
// convert inputstream to String
private static String findLine(InputStream inputStream) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
String regex = "(.*)version(.*)\"(((\\d+)\\.)+(\\d+))\"(.*)";
Pattern p = Pattern.compile(regex);
while ((line = bufferedReader.readLine()) != null) {
Matcher m = p.matcher(line);
if (m.matches()) {
log.debug("+++ " + line);
return m.group(3);
} else {
log.debug("--- " + line);
}
}
inputStream.close();
return null;
}
// check network connection
public static boolean isConnected() {
ConnectivityManager connMgr = (ConnectivityManager) MainApp.instance().getApplicationContext().getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
return networkInfo != null && networkInfo.isConnected();
}
}

View file

@ -147,8 +147,6 @@
<string name="constraints_violation">Beperkings skending</string> <string name="constraints_violation">Beperkings skending</string>
<string name="treatmentdeliveryerror">Bolus aflewering fout</string> <string name="treatmentdeliveryerror">Bolus aflewering fout</string>
<string name="tempbasaldeliveryerror">Tempbasal aflewering fout</string> <string name="tempbasaldeliveryerror">Tempbasal aflewering fout</string>
<string name="overview_newtempbasal_basalpercent">Basale waarde [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% =huidig)</string>
<string name="setbasalquestion">Aanvaar nuwe tydelike basale:</string> <string name="setbasalquestion">Aanvaar nuwe tydelike basale:</string>
<string name="overview_treatment_label">Behandeling</string> <string name="overview_treatment_label">Behandeling</string>
<string name="overview_calculator_label">Rekenaar</string> <string name="overview_calculator_label">Rekenaar</string>
@ -248,7 +246,6 @@
<string name="danar_iob_label">Pomp IAB</string> <string name="danar_iob_label">Pomp IAB</string>
<string name="danar_dailyunits">Daaglikse eenhede</string> <string name="danar_dailyunits">Daaglikse eenhede</string>
<string name="pump_lastbolus_label">Laaste bolus</string> <string name="pump_lastbolus_label">Laaste bolus</string>
<string name="hoursago">%.1fh gelede</string>
<string name="danar_invalidinput">Ongeldige invoer</string> <string name="danar_invalidinput">Ongeldige invoer</string>
<string name="danar_valuenotsetproperly">Waarde nie behoorlik gestel</string> <string name="danar_valuenotsetproperly">Waarde nie behoorlik gestel</string>
<string name="reloadprofile">Herlaai profiel</string> <string name="reloadprofile">Herlaai profiel</string>
@ -528,7 +525,6 @@
<string name="resistantadult">Insulien weerstandige volwasse</string> <string name="resistantadult">Insulien weerstandige volwasse</string>
<string name="patientage_summary">Kies asseblief pasiënt ouderdom om veiligheids limiete te stel</string> <string name="patientage_summary">Kies asseblief pasiënt ouderdom om veiligheids limiete te stel</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s benodig battery optimisering whitelisting vir behoorlike prestasie</string>
<string name="loopsuspended">Lus opgeskort</string> <string name="loopsuspended">Lus opgeskort</string>
<string name="loopsuspendedfor">Opgeskort (%1$d m)</string> <string name="loopsuspendedfor">Opgeskort (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -564,8 +560,6 @@
<string name="show_statuslights_summary">Wys status vlae vir cage, iage, sage, stoor en battery vlak op tuisskerm.</string> <string name="show_statuslights_summary">Wys status vlae vir cage, iage, sage, stoor en battery vlak op tuisskerm.</string>
<string name="statuslights_res_warning">Drempel waarskuwings stoor vlak [U]</string> <string name="statuslights_res_warning">Drempel waarskuwings stoor vlak [U]</string>
<string name="statuslights_res_critical">Drempel kritieke stoor vlak [U]</string> <string name="statuslights_res_critical">Drempel kritieke stoor vlak [U]</string>
<string name="statuslights_bat_warning">Drempel waarskuwing battery vlak [%]</string>
<string name="statuslights_bat_critical">Drempel kritieke battery vlak [%]</string>
<string name="iob">IAB</string> <string name="iob">IAB</string>
<string name="cob">KOB</string> <string name="cob">KOB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -764,7 +758,6 @@
<string name="combo_pump_state_running">Loop tans</string> <string name="combo_pump_state_running">Loop tans</string>
<string name="combo_pump_action_cancelling_tbr">Kanselleer TBR</string> <string name="combo_pump_action_cancelling_tbr">Kanselleer TBR</string>
<string name="combo_pump_action_setting_tbr">Stel TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Stel TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string>
<string name="combo_pump_action_refreshing">Verfris</string> <string name="combo_pump_action_refreshing">Verfris</string>
<string name="combo_pump_unsupported_operation">Versoekte bewerking nie ondersteun deur pomp</string> <string name="combo_pump_unsupported_operation">Versoekte bewerking nie ondersteun deur pomp</string>
<string name="combo_low_suspend_forced_notification">Onveilige gebruik: uitgebreide of multigolf boluses is aktief. Lus modus is gestel om laag te opskort net 6 ure. Net gewone boluses is ondersteun in lus modus</string> <string name="combo_low_suspend_forced_notification">Onveilige gebruik: uitgebreide of multigolf boluses is aktief. Lus modus is gestel om laag te opskort net 6 ure. Net gewone boluses is ondersteun in lus modus</string>

View file

@ -147,8 +147,8 @@
<string name="constraints_violation">Нарушено ограничение</string> <string name="constraints_violation">Нарушено ограничение</string>
<string name="treatmentdeliveryerror">Грешка при подаване на болус</string> <string name="treatmentdeliveryerror">Грешка при подаване на болус</string>
<string name="tempbasaldeliveryerror">Грешка при подаване на временен базал</string> <string name="tempbasaldeliveryerror">Грешка при подаване на временен базал</string>
<string name="overview_newtempbasal_basalpercent">Стойност на базал [%]</string> <string name="overview_newtempbasal_basalpercent">Базална стойност [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = текущ)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = текущ)</string>
<string name="setbasalquestion">Приложи нов временен базал:</string> <string name="setbasalquestion">Приложи нов временен базал:</string>
<string name="overview_treatment_label">Болус</string> <string name="overview_treatment_label">Болус</string>
<string name="overview_calculator_label">Калкулатор</string> <string name="overview_calculator_label">Калкулатор</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">IOB на помпата</string> <string name="danar_iob_label">IOB на помпата</string>
<string name="danar_dailyunits">Инсулин за деня</string> <string name="danar_dailyunits">Инсулин за деня</string>
<string name="pump_lastbolus_label">Последен болус:</string> <string name="pump_lastbolus_label">Последен болус:</string>
<string name="hoursago">преди %.1fч</string> <string name="hoursago">преди %1$.1fч</string>
<string name="danar_invalidinput">Грешни входящи данни</string> <string name="danar_invalidinput">Грешни входящи данни</string>
<string name="danar_valuenotsetproperly">Неправилна стойност</string> <string name="danar_valuenotsetproperly">Неправилна стойност</string>
<string name="reloadprofile">Презареди профил</string> <string name="reloadprofile">Презареди профил</string>
@ -528,7 +528,7 @@
<string name="resistantadult">Възрастни с голяма инсулинова резистентност</string> <string name="resistantadult">Възрастни с голяма инсулинова резистентност</string>
<string name="patientage_summary">Изберете възраст за определяне лимитите на безопасност</string> <string name="patientage_summary">Изберете възраст за определяне лимитите на безопасност</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s се нуждае от зключване на оптимизиране на батерията за пълна функционалност</string> <string name="needwhitelisting">%1$s се нуждае от изключване от списъка за оптимизиране на батерията за пълна функционалност</string>
<string name="loopsuspended">Loop изключен</string> <string name="loopsuspended">Loop изключен</string>
<string name="loopsuspendedfor">Изключен (%1$d мин)</string> <string name="loopsuspendedfor">Изключен (%1$d мин)</string>
<string name="loopsuperbolusfor">Суперболус (%1$d мин)</string> <string name="loopsuperbolusfor">Суперболус (%1$d мин)</string>
@ -564,8 +564,8 @@
<string name="show_statuslights_summary">Покажи статус светлини за канула, инсулин, сензор, резервоар и батерията на началния екран.</string> <string name="show_statuslights_summary">Покажи статус светлини за канула, инсулин, сензор, резервоар и батерията на началния екран.</string>
<string name="statuslights_res_warning">Ниво за аларма за останал инсулин в резервоара [Е]</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_warning">Ниско ниво на батерията под [%%]</string>
<string name="statuslights_bat_critical">Критично ниво на батерията под [%]</string> <string name="statuslights_bat_critical">Критично ниво на батерията под [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">СОВ</string> <string name="cob">СОВ</string>
<string name="virtualpump_firmware_label">Фърмуер</string> <string name="virtualpump_firmware_label">Фърмуер</string>
@ -764,7 +764,7 @@
<string name="combo_pump_state_running">Изпълнява</string> <string name="combo_pump_state_running">Изпълнява</string>
<string name="combo_pump_action_cancelling_tbr">Отказва временен базал</string> <string name="combo_pump_action_cancelling_tbr">Отказва временен базал</string>
<string name="combo_pump_action_setting_tbr">Задава временен базал (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Задава временен базал (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Болус (%.1f U)</string> <string name="combo_pump_action_bolusing">Болус (%1$.1f Е)</string>
<string name="combo_pump_action_refreshing">Обновява</string> <string name="combo_pump_action_refreshing">Обновява</string>
<string name="combo_pump_unsupported_operation">Исканата операция не се поддържа от помпата</string> <string name="combo_pump_unsupported_operation">Исканата операция не се поддържа от помпата</string>
<string name="combo_low_suspend_forced_notification">Опасно използване: удължени или многовълнови болуси са активни. Помпата е изключена за само 6 часа. Само нормални болуси се поддържат.</string> <string name="combo_low_suspend_forced_notification">Опасно използване: удължени или многовълнови болуси са активни. Помпата е изключена за само 6 часа. Само нормални болуси се поддържат.</string>
@ -1156,6 +1156,10 @@
<string name="sms_wrongcode">Грешен код. Командата не е изпълнена.</string> <string name="sms_wrongcode">Грешен код. Командата не е изпълнена.</string>
<string name="notconfigured">Не е конфигуриран</string> <string name="notconfigured">Не е конфигуриран</string>
<string name="profileswitchcreated">Създаден запис - Промяна на профил</string> <string name="profileswitchcreated">Създаден запис - Промяна на профил</string>
<string name="versionChecker">Проверка на версията</string>
<string name="old_version">стара версия</string>
<string name="very_old_version">много стара версия</string>
<string name="new_version_warning">Има нова версия от най-малко %1$d дни! Връщане към LGS след 60 дни, цикълът ще бъде изключен след 90 дни</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d дeн</item> <item quantity="one">%1$d дeн</item>
<item quantity="other">%1$d дни</item> <item quantity="other">%1$d дни</item>

View file

@ -147,8 +147,8 @@
<string name="constraints_violation">Mimo povolený rozsah</string> <string name="constraints_violation">Mimo povolený rozsah</string>
<string name="treatmentdeliveryerror">Chyba podání bolusu</string> <string name="treatmentdeliveryerror">Chyba podání bolusu</string>
<string name="tempbasaldeliveryerror">Chyba nastavování dočasného bazálu</string> <string name="tempbasaldeliveryerror">Chyba nastavování dočasného bazálu</string>
<string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%]</string> <string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = současný)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = současný)</string>
<string name="setbasalquestion">Spustit nový dočasný bazál:</string> <string name="setbasalquestion">Spustit nový dočasný bazál:</string>
<string name="overview_treatment_label">Bolus</string> <string name="overview_treatment_label">Bolus</string>
<string name="overview_calculator_label">Kalkulačka</string> <string name="overview_calculator_label">Kalkulačka</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">IOB z pumpy</string> <string name="danar_iob_label">IOB z pumpy</string>
<string name="danar_dailyunits">Jednotek za den</string> <string name="danar_dailyunits">Jednotek za den</string>
<string name="pump_lastbolus_label">Poslední bolus</string> <string name="pump_lastbolus_label">Poslední bolus</string>
<string name="hoursago">před %.1fh</string> <string name="hoursago">před %1$.1fh</string>
<string name="danar_invalidinput">Chybná vstupní data</string> <string name="danar_invalidinput">Chybná vstupní data</string>
<string name="danar_valuenotsetproperly">Hodnota nenastavena správně</string> <string name="danar_valuenotsetproperly">Hodnota nenastavena správně</string>
<string name="reloadprofile">Obnovit profil</string> <string name="reloadprofile">Obnovit profil</string>
@ -528,7 +528,7 @@
<string name="resistantadult">Dospělý s nízkou citlivostí</string> <string name="resistantadult">Dospělý s nízkou citlivostí</string>
<string name="patientage_summary">Vyberte věk pacienta pro nastavení bezpečnostních limitů</string> <string name="patientage_summary">Vyberte věk pacienta pro nastavení bezpečnostních limitů</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s potřebuje vypnout optimalizace baterie pro optimální výkon</string> <string name="needwhitelisting">%1$s potřebuje vypnout optimalizace baterie pro optimální výkon</string>
<string name="loopsuspended">Smyčka pozastavena</string> <string name="loopsuspended">Smyčka pozastavena</string>
<string name="loopsuspendedfor">Pozastaveno (%1$d min)</string> <string name="loopsuspendedfor">Pozastaveno (%1$d min)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -564,8 +564,8 @@
<string name="show_statuslights_summary">Povolte stavové indikátory pro stáří kanyly, inzulínu, senzoru, zásobníku a baterie na domovské obrazovce.</string> <string name="show_statuslights_summary">Povolte stavové indikátory pro stáří kanyly, inzulínu, senzoru, zásobníku a baterie na domovské obrazovce.</string>
<string name="statuslights_res_warning">Úroveň varování stavu zásobníku [U]</string> <string name="statuslights_res_warning">Úroveň varování stavu zásobníku [U]</string>
<string name="statuslights_res_critical">Úroveň kritického varování stavu zásobníku [U]</string> <string name="statuslights_res_critical">Úroveň kritického varování stavu zásobníku [U]</string>
<string name="statuslights_bat_warning">Úroveň varování stavu baterie [%]</string> <string name="statuslights_bat_warning">Úroveň varování stavu baterie [%%]</string>
<string name="statuslights_bat_critical">Úroveň kritického varování stavu baterie [%]</string> <string name="statuslights_bat_critical">Úroveň kritického varování stavu baterie [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -764,7 +764,7 @@
<string name="combo_pump_state_running">Běží</string> <string name="combo_pump_state_running">Běží</string>
<string name="combo_pump_action_cancelling_tbr">Rušení dočasného bazálu</string> <string name="combo_pump_action_cancelling_tbr">Rušení dočasného bazálu</string>
<string name="combo_pump_action_setting_tbr">Nastavování doč. bazálu (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Nastavování doč. bazálu (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolus (%.1f U)</string> <string name="combo_pump_action_bolusing">Bolus (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">Obnovování</string> <string name="combo_pump_action_refreshing">Obnovování</string>
<string name="combo_pump_unsupported_operation">Požadovaná operace není pumpou podporována</string> <string name="combo_pump_unsupported_operation">Požadovaná operace není pumpou podporována</string>
<string name="combo_low_suspend_forced_notification">Nebezpečné použití: extended nebo multiwave bolus je aktivní. Pumpa byla vypnuta jen na 6 hodin. Povolené jsou pouze normální bolusy.</string> <string name="combo_low_suspend_forced_notification">Nebezpečné použití: extended nebo multiwave bolus je aktivní. Pumpa byla vypnuta jen na 6 hodin. Povolené jsou pouze normální bolusy.</string>
@ -1156,6 +1156,10 @@
<string name="sms_wrongcode">Nesprávný kód. Příkaz zrušen.</string> <string name="sms_wrongcode">Nesprávný kód. Příkaz zrušen.</string>
<string name="notconfigured">Není nakonfigurováno</string> <string name="notconfigured">Není nakonfigurováno</string>
<string name="profileswitchcreated">Přepnutí profilu vytvořeno</string> <string name="profileswitchcreated">Přepnutí profilu vytvořeno</string>
<string name="versionChecker">Kontrola verze</string>
<string name="old_version">stará verze</string>
<string name="very_old_version">velmi stará verze</string>
<string name="new_version_warning">Nová verze je dostupná minimálně %1$d dní! Přepnutí na ochranu před nízkou glykémií po 60 dnech, vypnutí smyčky po 90 dnech</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d den</item> <item quantity="one">%1$d den</item>
<item quantity="few">%1$d dnů</item> <item quantity="few">%1$d dnů</item>

View file

@ -147,8 +147,8 @@
<string name="constraints_violation">Beschränkungen wurden verletzt oder Limit erreicht.</string> <string name="constraints_violation">Beschränkungen wurden verletzt oder Limit erreicht.</string>
<string name="treatmentdeliveryerror">Bolus-Abgabefehler</string> <string name="treatmentdeliveryerror">Bolus-Abgabefehler</string>
<string name="tempbasaldeliveryerror">TBR Abgabe-Fehler</string> <string name="tempbasaldeliveryerror">TBR Abgabe-Fehler</string>
<string name="overview_newtempbasal_basalpercent">Basal-Wert [%]</string> <string name="overview_newtempbasal_basalpercent">Basal-Wert [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = aktuell)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = aktuell)</string>
<string name="setbasalquestion">Akzeptiere neue TBR:</string> <string name="setbasalquestion">Akzeptiere neue TBR:</string>
<string name="overview_treatment_label">Bolus</string> <string name="overview_treatment_label">Bolus</string>
<string name="overview_calculator_label">Rechner</string> <string name="overview_calculator_label">Rechner</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">Pumpen-IOB</string> <string name="danar_iob_label">Pumpen-IOB</string>
<string name="danar_dailyunits">Tägliche Einheiten</string> <string name="danar_dailyunits">Tägliche Einheiten</string>
<string name="pump_lastbolus_label">Letzter Bolus:</string> <string name="pump_lastbolus_label">Letzter Bolus:</string>
<string name="hoursago">vor %.1f h</string> <string name="hoursago">vor %1$.1f Stunde</string>
<string name="danar_invalidinput">Ungültige Eingabedaten</string> <string name="danar_invalidinput">Ungültige Eingabedaten</string>
<string name="danar_valuenotsetproperly">Wert nicht korrekt gesetzt</string> <string name="danar_valuenotsetproperly">Wert nicht korrekt gesetzt</string>
<string name="reloadprofile">Profil neuladen</string> <string name="reloadprofile">Profil neuladen</string>
@ -529,7 +529,7 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate</string>
<string name="resistantadult">Insulinresistenter Erwachsener</string> <string name="resistantadult">Insulinresistenter Erwachsener</string>
<string name="patientage_summary">Bitte wähle das Patientenalter, um die Sicherheits-Limits festzulegen</string> <string name="patientage_summary">Bitte wähle das Patientenalter, um die Sicherheits-Limits festzulegen</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s benötigt eine deaktivierte Akku-Leistungsoptimierung, um korrekt arbeiten zu können.</string> <string name="needwhitelisting">%1$s benötigt eine deaktivierte Akku-Leistungsoptimierung, um korrekt arbeiten zu können.</string>
<string name="loopsuspended">Loop pausiert</string> <string name="loopsuspended">Loop pausiert</string>
<string name="loopsuspendedfor">Pausiert (%1$d min)</string> <string name="loopsuspendedfor">Pausiert (%1$d min)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -565,8 +565,8 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate</string>
<string name="show_statuslights_summary">Statusanzeige für CAGE, IAGE, SAGE, Reservoir- und Batteriestand auf dem Homescreen.</string> <string name="show_statuslights_summary">Statusanzeige für CAGE, IAGE, SAGE, Reservoir- und Batteriestand auf dem Homescreen.</string>
<string name="statuslights_res_warning">Warnschwelle Reservoirstand [IE]</string> <string name="statuslights_res_warning">Warnschwelle Reservoirstand [IE]</string>
<string name="statuslights_res_critical">Warnschwelle kritischer Reservoirstand [IE]</string> <string name="statuslights_res_critical">Warnschwelle kritischer Reservoirstand [IE]</string>
<string name="statuslights_bat_warning">Warnschwelle Batteriestand [%]</string> <string name="statuslights_bat_warning">Warnschwelle Batteriestand [%%]</string>
<string name="statuslights_bat_critical">Warnschwelle kritischer Batteriestand [%]</string> <string name="statuslights_bat_critical">Warnschwelle kritischer Batteriestand [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -1158,6 +1158,10 @@ Unerwartetes Verhalten.</string>
<string name="sms_wrongcode">Falscher Code. Befehl wurde abgebrochen.</string> <string name="sms_wrongcode">Falscher Code. Befehl wurde abgebrochen.</string>
<string name="notconfigured">Nicht konfiguriert</string> <string name="notconfigured">Nicht konfiguriert</string>
<string name="profileswitchcreated">Profilwechsel wurde erstellt</string> <string name="profileswitchcreated">Profilwechsel wurde erstellt</string>
<string name="versionChecker">Versionsprüfer</string>
<string name="old_version">Vorherige Version</string>
<string name="very_old_version">sehr alte Version</string>
<string name="new_version_warning">Neue Version für mindestens %1$d Tage verfügbar! Rückfall zur sensorunterstützten Pumpentherapie nach 60 Tagen, Loop wird nach 90 Tagen deaktiviert</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d Tag</item> <item quantity="one">%1$d Tag</item>
<item quantity="other">%1$d Tage</item> <item quantity="other">%1$d Tage</item>

View file

@ -147,8 +147,8 @@
<string name="constraints_violation">Παραβίαση Περιορισμών</string> <string name="constraints_violation">Παραβίαση Περιορισμών</string>
<string name="treatmentdeliveryerror">Σφάλμα παράδοσης Bolus</string> <string name="treatmentdeliveryerror">Σφάλμα παράδοσης Bolus</string>
<string name="tempbasaldeliveryerror">Σφάλμα παράδοσης Προσ Ρυθμού</string> <string name="tempbasaldeliveryerror">Σφάλμα παράδοσης Προσ Ρυθμού</string>
<string name="overview_newtempbasal_basalpercent">Τιμή Βασικού [%]</string> <string name="overview_newtempbasal_basalpercent">Τιμή Βασικού [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = τρέχων)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = τρέχων)</string>
<string name="setbasalquestion">Αποδοχή νέου Προσ Ρυθμού:</string> <string name="setbasalquestion">Αποδοχή νέου Προσ Ρυθμού:</string>
<string name="overview_treatment_label">Θεραπεία</string> <string name="overview_treatment_label">Θεραπεία</string>
<string name="overview_calculator_label">Υπολογιστής</string> <string name="overview_calculator_label">Υπολογιστής</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">IOB αντλίας</string> <string name="danar_iob_label">IOB αντλίας</string>
<string name="danar_dailyunits">Μονάδες ανά ημέρα </string> <string name="danar_dailyunits">Μονάδες ανά ημέρα </string>
<string name="pump_lastbolus_label">Τελευταίο Bolus:</string> <string name="pump_lastbolus_label">Τελευταίο Bolus:</string>
<string name="hoursago">πριν από %.1fh</string> <string name="hoursago">%1$.1fώρες πριν</string>
<string name="danar_invalidinput">Μη έγκυρα δεδομένα</string> <string name="danar_invalidinput">Μη έγκυρα δεδομένα</string>
<string name="danar_valuenotsetproperly">Η τιμή δεν μπήκε σωστά</string> <string name="danar_valuenotsetproperly">Η τιμή δεν μπήκε σωστά</string>
<string name="reloadprofile">Ξαναφορτώστε το προφίλ</string> <string name="reloadprofile">Ξαναφορτώστε το προφίλ</string>
@ -528,7 +528,7 @@
<string name="resistantadult">Αντίσταση ινσουλίνης ενηλίκων</string> <string name="resistantadult">Αντίσταση ινσουλίνης ενηλίκων</string>
<string name="patientage_summary">Παρακαλώ επιλέξτε ηλικία χρήστη για να ορισθούν όρια ασφαλείας</string> <string name="patientage_summary">Παρακαλώ επιλέξτε ηλικία χρήστη για να ορισθούν όρια ασφαλείας</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">Το %s πρέπει να απενεργοποιήσει τη βελτιστοποίηση της μπαταρίας για βέλτιστη απόδοση</string> <string name="needwhitelisting">%1$s χρειάζεται λίστα βελτιστοποίησης μπαταρίας για σωστή απόδοση</string>
<string name="loopsuspended">Κύκλωμα σε αναστολή</string> <string name="loopsuspended">Κύκλωμα σε αναστολή</string>
<string name="loopsuspendedfor">Αναστολή (%1$d m)</string> <string name="loopsuspendedfor">Αναστολή (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -564,8 +564,8 @@
<string name="show_statuslights_summary">Ενεργοποίηση του φωτισμού κατάστασης για cage, iage, sage, reservoir και επίπεδο μπεταρίας στην αρχική οθόνη.</string> <string name="show_statuslights_summary">Ενεργοποίηση του φωτισμού κατάστασης για cage, iage, sage, reservoir και επίπεδο μπεταρίας στην αρχική οθόνη.</string>
<string name="statuslights_res_warning">Όριο προειδοποίησης χαμηλής αμπούλας [U]</string> <string name="statuslights_res_warning">Όριο προειδοποίησης χαμηλής αμπούλας [U]</string>
<string name="statuslights_res_critical">Όριο προειδοποίησης πολύ χαμηλής αμπούλας [U]</string> <string name="statuslights_res_critical">Όριο προειδοποίησης πολύ χαμηλής αμπούλας [U]</string>
<string name="statuslights_bat_warning">Όριο προειδοποίησης χαμηλής μπαταρίας [%]</string> <string name="statuslights_bat_warning">Όριο προειδοποίησης χαμηλής μπαταρίας [%%]</string>
<string name="statuslights_bat_critical">Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%]</string> <string name="statuslights_bat_critical">Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Έκδοση</string> <string name="virtualpump_firmware_label">Έκδοση</string>
@ -764,7 +764,7 @@
<string name="combo_pump_state_running">Εκτελείτε</string> <string name="combo_pump_state_running">Εκτελείτε</string>
<string name="combo_pump_action_cancelling_tbr">Ακυρώνεται TBR</string> <string name="combo_pump_action_cancelling_tbr">Ακυρώνεται TBR</string>
<string name="combo_pump_action_setting_tbr">Ρύθμιση TBR (%1$d%% / %2$d λεπτά)</string> <string name="combo_pump_action_setting_tbr">Ρύθμιση TBR (%1$d%% / %2$d λεπτά)</string>
<string name="combo_pump_action_bolusing">Bolus (%.1f U)</string> <string name="combo_pump_action_bolusing">Bolus (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">Ανανέωση</string> <string name="combo_pump_action_refreshing">Ανανέωση</string>
<string name="combo_pump_unsupported_operation">Η λειτουργία που ζητήθηκε δεν υποστηρίζεται από την αντλία</string> <string name="combo_pump_unsupported_operation">Η λειτουργία που ζητήθηκε δεν υποστηρίζεται από την αντλία</string>
<string name="combo_low_suspend_forced_notification">Επικίνδυνη χρήση: Εκτεταμένο ή πολλαπλά bolus είναι ενεργό. Το κύκλωμα απενεργοποιήθηκε λόγω low-suspend μόνο για 6 ώρες. Επιτρέπονται μόνο κανονικά bolus</string> <string name="combo_low_suspend_forced_notification">Επικίνδυνη χρήση: Εκτεταμένο ή πολλαπλά bolus είναι ενεργό. Το κύκλωμα απενεργοποιήθηκε λόγω low-suspend μόνο για 6 ώρες. Επιτρέπονται μόνο κανονικά bolus</string>
@ -1156,6 +1156,10 @@
<string name="sms_wrongcode">Λάθος κωδικός. Η εντολή ακυρώθηκε.</string> <string name="sms_wrongcode">Λάθος κωδικός. Η εντολή ακυρώθηκε.</string>
<string name="notconfigured">Δεν έχει ρυθμιστεί</string> <string name="notconfigured">Δεν έχει ρυθμιστεί</string>
<string name="profileswitchcreated">Δημιουργήθηκε αλλαγή προφίλ</string> <string name="profileswitchcreated">Δημιουργήθηκε αλλαγή προφίλ</string>
<string name="versionChecker">Έλεγχος Έκδοσης</string>
<string name="old_version">παλιά έκδοση</string>
<string name="very_old_version">πολύ παλιά έκδοση</string>
<string name="new_version_warning">Νέα έκδοση για τουλάχιστον %1$d ημέρες διαθέσιμη! Επιστροφή σε LGS μετά από 60 ημέρες, το κύκλωμα θα απενεργοποιηθεί μετά από 90 ημέρες</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d ημέρα</item> <item quantity="one">%1$d ημέρα</item>
<item quantity="other">%1$d ημέρες</item> <item quantity="other">%1$d ημέρες</item>

View file

@ -143,8 +143,6 @@
<string name="constraints_violation">Violación restricciones</string> <string name="constraints_violation">Violación restricciones</string>
<string name="treatmentdeliveryerror">Error de administración del bolo</string> <string name="treatmentdeliveryerror">Error de administración del bolo</string>
<string name="tempbasaldeliveryerror">Basal Temporal no emitida</string> <string name="tempbasaldeliveryerror">Basal Temporal no emitida</string>
<string name="overview_newtempbasal_basalpercent">Valor basal [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = actual)</string>
<string name="setbasalquestion">Aceptar nueva basal temporal:</string> <string name="setbasalquestion">Aceptar nueva basal temporal:</string>
<string name="overview_treatment_label">Tratamiento</string> <string name="overview_treatment_label">Tratamiento</string>
<string name="overview_calculator_label">Calculadora</string> <string name="overview_calculator_label">Calculadora</string>
@ -244,7 +242,6 @@
<string name="danar_iob_label">Bomba IOB</string> <string name="danar_iob_label">Bomba IOB</string>
<string name="danar_dailyunits">Unidades diarias</string> <string name="danar_dailyunits">Unidades diarias</string>
<string name="pump_lastbolus_label">Último bolo</string> <string name="pump_lastbolus_label">Último bolo</string>
<string name="hoursago">Hace %.1fh</string>
<string name="danar_invalidinput">Datos inválidos</string> <string name="danar_invalidinput">Datos inválidos</string>
<string name="danar_valuenotsetproperly">Valor no establecido correctamente</string> <string name="danar_valuenotsetproperly">Valor no establecido correctamente</string>
<string name="reloadprofile">Recargar Perfil</string> <string name="reloadprofile">Recargar Perfil</string>
@ -503,7 +500,6 @@
<string name="resistantadult">Adulto resistente a la insulina</string> <string name="resistantadult">Adulto resistente a la insulina</string>
<string name="patientage_summary">Por favor elige la edad del paciente para ajustar los límites de seguridad</string> <string name="patientage_summary">Por favor elige la edad del paciente para ajustar los límites de seguridad</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s necesita optimización de batería lista blanca para funcionar bien</string>
<string name="loopsuspended">Loop desactivado</string> <string name="loopsuspended">Loop desactivado</string>
<string name="loopsuspendedfor">Desactivado (%1$d m)</string> <string name="loopsuspendedfor">Desactivado (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolo (%1$d m)</string> <string name="loopsuperbolusfor">Superbolo (%1$d m)</string>
@ -539,8 +535,6 @@
<string name="show_statuslights_summary">Habilitar las luces de estado para tiempo de la canula, tiempo de la insulina, tiempo del sensor y nivel de bateria en la pantalla de inicio.</string> <string name="show_statuslights_summary">Habilitar las luces de estado para tiempo de la canula, tiempo de la insulina, tiempo del sensor y nivel de bateria en la pantalla de inicio.</string>
<string name="statuslights_res_warning">Umbral de advertencia de nivel de reservorio [U]</string> <string name="statuslights_res_warning">Umbral de advertencia de nivel de reservorio [U]</string>
<string name="statuslights_res_critical">Umbral crítico de nivel de reservorio [U]</string> <string name="statuslights_res_critical">Umbral crítico de nivel de reservorio [U]</string>
<string name="statuslights_bat_warning">Umbral de advertencia de nivel de pila [%]</string>
<string name="statuslights_bat_critical">Umbral crítico de nivel de batería [%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -734,7 +728,6 @@
<string name="combo_pump_state_running">Funcionando</string> <string name="combo_pump_state_running">Funcionando</string>
<string name="combo_pump_action_cancelling_tbr">Cancelando TBR</string> <string name="combo_pump_action_cancelling_tbr">Cancelando TBR</string>
<string name="combo_pump_action_setting_tbr">Poniendo TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Poniendo TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Emitiendo bolo (%.1f U)</string>
<string name="combo_pump_action_refreshing">Actualizando</string> <string name="combo_pump_action_refreshing">Actualizando</string>
<string name="combo_pump_unsupported_operation">Acción requerida no disponible por la bomba</string> <string name="combo_pump_unsupported_operation">Acción requerida no disponible por la bomba</string>
<string name="combo_low_suspend_forced_notification">Uso inseguro: bolo extendido o multionda activo. El modo del lazo ha sido fijado a sólo suspensión en baja glucosa durante 6 horas. En modo lazo sólo se soportan los bolo estándar.</string> <string name="combo_low_suspend_forced_notification">Uso inseguro: bolo extendido o multionda activo. El modo del lazo ha sido fijado a sólo suspensión en baja glucosa durante 6 horas. En modo lazo sólo se soportan los bolo estándar.</string>

View file

@ -147,8 +147,8 @@
<string name="constraints_violation">Violation des restrictions</string> <string name="constraints_violation">Violation des restrictions</string>
<string name="treatmentdeliveryerror">Erreur injection bolus</string> <string name="treatmentdeliveryerror">Erreur injection bolus</string>
<string name="tempbasaldeliveryerror">Erreur injection basal temporaire</string> <string name="tempbasaldeliveryerror">Erreur injection basal temporaire</string>
<string name="overview_newtempbasal_basalpercent">Valeur Basal [%]</string> <string name="overview_newtempbasal_basalpercent">Valeur de Basal [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = actuel)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = actuel)</string>
<string name="setbasalquestion">Accepter nouveau basal temporaire :</string> <string name="setbasalquestion">Accepter nouveau basal temporaire :</string>
<string name="overview_treatment_label">Traitement</string> <string name="overview_treatment_label">Traitement</string>
<string name="overview_calculator_label">Calculatrice</string> <string name="overview_calculator_label">Calculatrice</string>
@ -249,7 +249,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="danar_iob_label">Insuline Active pompe</string> <string name="danar_iob_label">Insuline Active pompe</string>
<string name="danar_dailyunits">Unités journalières</string> <string name="danar_dailyunits">Unités journalières</string>
<string name="pump_lastbolus_label">Dernier bolus</string> <string name="pump_lastbolus_label">Dernier bolus</string>
<string name="hoursago">%.1fh passées</string> <string name="hoursago">il y a %1$.1fh</string>
<string name="danar_invalidinput">Données saisies invalides</string> <string name="danar_invalidinput">Données saisies invalides</string>
<string name="danar_valuenotsetproperly">Valeur pas correctement définie</string> <string name="danar_valuenotsetproperly">Valeur pas correctement définie</string>
<string name="reloadprofile">Actualiser le profil</string> <string name="reloadprofile">Actualiser le profil</string>
@ -529,7 +529,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="resistantadult">Adulte résistant à l\'insuline</string> <string name="resistantadult">Adulte résistant à l\'insuline</string>
<string name="patientage_summary">Veuillez svp sélectionner lâge du patient pour définir les limites de sécurité</string> <string name="patientage_summary">Veuillez svp sélectionner lâge du patient pour définir les limites de sécurité</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s a besoin de la liste blanche de loptimisation batterie pour une bonne performance</string> <string name="needwhitelisting">%1$s a besoin d\'optimisation de la batterie (whitelisting) pour une performance correcte</string>
<string name="loopsuspended">La Boucle est suspendue</string> <string name="loopsuspended">La Boucle est suspendue</string>
<string name="loopsuspendedfor">Suspendu (%1$d m)</string> <string name="loopsuspendedfor">Suspendu (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -565,8 +565,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="show_statuslights_summary">Activer les lumières d\'état pour AgeC, AgeI, AgeS, niveaux du réservoir et de batterie sur l\'écran d\'accueil.</string> <string name="show_statuslights_summary">Activer les lumières d\'état pour AgeC, AgeI, AgeS, niveaux du réservoir et de batterie sur l\'écran d\'accueil.</string>
<string name="statuslights_res_warning">Seuil d\'avertissement de niveau du réservoir [U]</string> <string name="statuslights_res_warning">Seuil d\'avertissement de niveau du réservoir [U]</string>
<string name="statuslights_res_critical">Seuil critique de niveau du réservoir [U]</string> <string name="statuslights_res_critical">Seuil critique de niveau du réservoir [U]</string>
<string name="statuslights_bat_warning">Seuil davertissement du niveau de batterie [%]</string> <string name="statuslights_bat_warning">Seuil davertissement du niveau de batterie [%%]</string>
<string name="statuslights_bat_critical">Seuil critique du niveau de la batterie [%]</string> <string name="statuslights_bat_critical">Seuil critique du niveau de la batterie [%%]</string>
<string name="iob">IA</string> <string name="iob">IA</string>
<string name="cob">GA</string> <string name="cob">GA</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -765,7 +765,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="combo_pump_state_running">En cours d\'exécution</string> <string name="combo_pump_state_running">En cours d\'exécution</string>
<string name="combo_pump_action_cancelling_tbr">Annulation en cours du TBR</string> <string name="combo_pump_action_cancelling_tbr">Annulation en cours du TBR</string>
<string name="combo_pump_action_setting_tbr">Paramétrer TBR (%1$d%% / %2$d min) </string> <string name="combo_pump_action_setting_tbr">Paramétrer TBR (%1$d%% / %2$d min) </string>
<string name="combo_pump_action_bolusing">Injection du bolus en cours (%.1f U)</string> <string name="combo_pump_action_bolusing">Injection du Bolus en cours (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">Actualisation en cours</string> <string name="combo_pump_action_refreshing">Actualisation en cours</string>
<string name="combo_pump_unsupported_operation">L\'opération demandée n\'est pas prise en charge par la pompe</string> <string name="combo_pump_unsupported_operation">L\'opération demandée n\'est pas prise en charge par la pompe</string>
<string name="combo_low_suspend_forced_notification">Utilisation dangereuse : les bolus étendus ou carrés sont actifs. Le mode Boucle a été programmé pour des suspensions seulement pour 6 heures. Uniquement les bolus normaux sont pris en charge par le mode Boucle</string> <string name="combo_low_suspend_forced_notification">Utilisation dangereuse : les bolus étendus ou carrés sont actifs. Le mode Boucle a été programmé pour des suspensions seulement pour 6 heures. Uniquement les bolus normaux sont pris en charge par le mode Boucle</string>
@ -1157,6 +1157,10 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
<string name="sms_wrongcode">Code incorrect. Commande annulée.</string> <string name="sms_wrongcode">Code incorrect. Commande annulée.</string>
<string name="notconfigured">Non configuré</string> <string name="notconfigured">Non configuré</string>
<string name="profileswitchcreated">Changement de profil effectué</string> <string name="profileswitchcreated">Changement de profil effectué</string>
<string name="versionChecker">Vérificateur de version</string>
<string name="old_version">ancienne version</string>
<string name="very_old_version">très ancienne version</string>
<string name="new_version_warning">Une nouvelle version est disponible depuis au moins %1$d jours ! Retour au traitement par pompe assistée par capteur (Arrêt par Glycémie Basse (AGB), Low Glucose Suspend (LGS) ) après 60 jours et la Boucle sera désactivée après 90 jours</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d jour</item> <item quantity="one">%1$d jour</item>
<item quantity="other">%1$d jours</item> <item quantity="other">%1$d jours</item>

View file

@ -143,8 +143,6 @@
<string name="constraints_violation">Vincolo Violato</string> <string name="constraints_violation">Vincolo Violato</string>
<string name="treatmentdeliveryerror">Errore di erogazione del bolo</string> <string name="treatmentdeliveryerror">Errore di erogazione del bolo</string>
<string name="tempbasaldeliveryerror">Errore di somministrazione basale temporale</string> <string name="tempbasaldeliveryerror">Errore di somministrazione basale temporale</string>
<string name="overview_newtempbasal_basalpercent">Valore Basale [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = corrente)</string>
<string name="setbasalquestion">Accettare il nuovo basale temp</string> <string name="setbasalquestion">Accettare il nuovo basale temp</string>
<string name="overview_treatment_label">Boli</string> <string name="overview_treatment_label">Boli</string>
<string name="overview_calculator_label">Calcolatore</string> <string name="overview_calculator_label">Calcolatore</string>
@ -244,7 +242,6 @@
<string name="danar_iob_label">IOB Microinfusore</string> <string name="danar_iob_label">IOB Microinfusore</string>
<string name="danar_dailyunits">Unita\' giornaliera</string> <string name="danar_dailyunits">Unita\' giornaliera</string>
<string name="pump_lastbolus_label">Ultimo Bolo</string> <string name="pump_lastbolus_label">Ultimo Bolo</string>
<string name="hoursago">%.1fh fa</string>
<string name="danar_invalidinput">Data Errata</string> <string name="danar_invalidinput">Data Errata</string>
<string name="danar_valuenotsetproperly">Valore non impostato correttamente</string> <string name="danar_valuenotsetproperly">Valore non impostato correttamente</string>
<string name="reloadprofile">Aggiorna Profilo</string> <string name="reloadprofile">Aggiorna Profilo</string>
@ -502,7 +499,6 @@
<string name="resistantadult">Insulina resistente</string> <string name="resistantadult">Insulina resistente</string>
<string name="patientage_summary">Si prega di selezionare l\'età paziente e di impostare i limiti di sicurezza</string> <string name="patientage_summary">Si prega di selezionare l\'età paziente e di impostare i limiti di sicurezza</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s ha bisogno di whitelisting di ottimizzazione della batteria per un buon funzionamento</string>
<string name="loopsuspended">Sospensione Loop</string> <string name="loopsuspended">Sospensione Loop</string>
<string name="loopsuspendedfor">Sospendi (%1$d m)</string> <string name="loopsuspendedfor">Sospendi (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolo (%1$d m)</string> <string name="loopsuperbolusfor">Superbolo (%1$d m)</string>
@ -722,7 +718,6 @@
<string name="combo_pump_state_running">In esecuzione</string> <string name="combo_pump_state_running">In esecuzione</string>
<string name="combo_pump_action_cancelling_tbr">Annullamento di TBR</string> <string name="combo_pump_action_cancelling_tbr">Annullamento di TBR</string>
<string name="combo_pump_action_setting_tbr">L\'impostazione di TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">L\'impostazione di TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string>
<string name="combo_pump_action_refreshing">Aggiornando</string> <string name="combo_pump_action_refreshing">Aggiornando</string>
<string name="combo_pump_unsupported_operation">Richiesta operazione non supportata dal micro</string> <string name="combo_pump_unsupported_operation">Richiesta operazione non supportata dal micro</string>
<string name="combo_low_suspend_forced_notification">L\'utilizzo non sicuro: estesi o multiwave boli sono attivi. Modalità loop è stato impostato basso-sospendere solo 6 ore. Solo normali boli sono supportati in modalità loop</string> <string name="combo_low_suspend_forced_notification">L\'utilizzo non sicuro: estesi o multiwave boli sono attivi. Modalità loop è stato impostato basso-sospendere solo 6 ore. Solo normali boli sono supportati in modalità loop</string>

View file

@ -143,8 +143,6 @@
<string name="constraints_violation">제한 위반</string> <string name="constraints_violation">제한 위반</string>
<string name="treatmentdeliveryerror">Bolus 주입 에러</string> <string name="treatmentdeliveryerror">Bolus 주입 에러</string>
<string name="tempbasaldeliveryerror">임시Basal 주입 에러</string> <string name="tempbasaldeliveryerror">임시Basal 주입 에러</string>
<string name="overview_newtempbasal_basalpercent">Basal값[%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = 현재)</string>
<string name="setbasalquestion">새 임시Basal 적용:</string> <string name="setbasalquestion">새 임시Basal 적용:</string>
<string name="overview_treatment_label">관리</string> <string name="overview_treatment_label">관리</string>
<string name="overview_calculator_label">계산기</string> <string name="overview_calculator_label">계산기</string>
@ -244,7 +242,6 @@
<string name="danar_iob_label">펌프 IOB</string> <string name="danar_iob_label">펌프 IOB</string>
<string name="danar_dailyunits">일 인슐린 총량</string> <string name="danar_dailyunits">일 인슐린 총량</string>
<string name="pump_lastbolus_label">최근 Bolus:</string> <string name="pump_lastbolus_label">최근 Bolus:</string>
<string name="hoursago">%.1f시간 전</string>
<string name="danar_invalidinput">사용할수 없는 입력 데이터</string> <string name="danar_invalidinput">사용할수 없는 입력 데이터</string>
<string name="danar_valuenotsetproperly">값이 제대로 설정되지 않았습니다</string> <string name="danar_valuenotsetproperly">값이 제대로 설정되지 않았습니다</string>
<string name="reloadprofile">프로파일 새로고침</string> <string name="reloadprofile">프로파일 새로고침</string>
@ -502,7 +499,6 @@
<string name="resistantadult">인슐린 저항성 높은 성인</string> <string name="resistantadult">인슐린 저항성 높은 성인</string>
<string name="patientage_summary">안전제한을 설정하기 위해 당뇨인의 나이를 선택하세요</string> <string name="patientage_summary">안전제한을 설정하기 위해 당뇨인의 나이를 선택하세요</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">최적의 성능을 위해 %s에서 배터리 최적화를 해제해야합니다.</string>
<string name="loopsuspended">Loop 일시중지</string> <string name="loopsuspended">Loop 일시중지</string>
<string name="loopsuspendedfor">일시중지중 (%d분)</string> <string name="loopsuspendedfor">일시중지중 (%d분)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d 분)</string> <string name="loopsuperbolusfor">Superbolus (%1$d 분)</string>
@ -722,7 +718,6 @@
<string name="combo_pump_state_running">실행중</string> <string name="combo_pump_state_running">실행중</string>
<string name="combo_pump_action_cancelling_tbr">임시기초주입 취소중</string> <string name="combo_pump_action_cancelling_tbr">임시기초주입 취소중</string>
<string name="combo_pump_action_setting_tbr">임시기초주입 설정중 (%1$d%% / %2$d분)</string> <string name="combo_pump_action_setting_tbr">임시기초주입 설정중 (%1$d%% / %2$d분)</string>
<string name="combo_pump_action_bolusing">Bolus 주입중(%.1f U)</string>
<string name="combo_pump_action_refreshing">새로고침중</string> <string name="combo_pump_action_refreshing">새로고침중</string>
<string name="combo_pump_unsupported_operation">요청하신 동작은 펌프에서 지원하지 않습니다.</string> <string name="combo_pump_unsupported_operation">요청하신 동작은 펌프에서 지원하지 않습니다.</string>
<string name="combo_low_suspend_forced_notification">위험한 사용: 확장Bolus 혹은 멀티웨이브Bolus가 활성화 됩니다. Loop 모드가 저혈당 방지로 오직 6시간만 설정됩니다. Loop 모드에선 일반 Bolus만 지원합니다.</string> <string name="combo_low_suspend_forced_notification">위험한 사용: 확장Bolus 혹은 멀티웨이브Bolus가 활성화 됩니다. Loop 모드가 저혈당 방지로 오직 6시간만 설정됩니다. Loop 모드에선 일반 Bolus만 지원합니다.</string>

View file

@ -12,7 +12,7 @@
<string name="danar_useextended_title">Naudoti ištęstinį bolusą &gt;200%%</string> <string name="danar_useextended_title">Naudoti ištęstinį bolusą &gt;200%%</string>
<string name="danar_bt_name_title">DanaR Bluetooth įrenginys</string> <string name="danar_bt_name_title">DanaR Bluetooth įrenginys</string>
<string name="ns_sync_use_absolute_title">Visada naudoti bazės absoliučias vertes</string> <string name="ns_sync_use_absolute_title">Visada naudoti bazės absoliučias vertes</string>
<string name="alert_dialog_storage_permission_text">Prašome iš naujo paleisti telefoną arba sistemos nustatymuose iš naujo paleisti AndroidAPS \nkitaip AndroidAPS negalės registruoti prisijungimų (svarbu stebint ir tikrinant, ar algoritmai veikia tinkamai)!</string> <string name="alert_dialog_storage_permission_text">Prašome iš naujo paleisti telefoną arba sistemos nustatymuose iš naujo paleisti AndroidAPS \nkitaip AndroidAPS negalės registruoti prisijungimų (svarbu stebėti ir tikrinti ar algoritmai veikia tinkamai)!</string>
<string name="description_actions">Mygtukai greitesniam pagrindinių funkcijų paleidimui</string> <string name="description_actions">Mygtukai greitesniam pagrindinių funkcijų paleidimui</string>
<string name="description_careportal">Papildomų įrašų žurnalas.</string> <string name="description_careportal">Papildomų įrašų žurnalas.</string>
<string name="description_config_builder">Naudojama aktyvių įskiepių konfigūravimui</string> <string name="description_config_builder">Naudojama aktyvių įskiepių konfigūravimui</string>
@ -147,8 +147,8 @@
<string name="constraints_violation">Apribojimų pažeidimas</string> <string name="constraints_violation">Apribojimų pažeidimas</string>
<string name="treatmentdeliveryerror">Boluso suleidimo klaida</string> <string name="treatmentdeliveryerror">Boluso suleidimo klaida</string>
<string name="tempbasaldeliveryerror">Laikinos bazės suleidimo klaida</string> <string name="tempbasaldeliveryerror">Laikinos bazės suleidimo klaida</string>
<string name="overview_newtempbasal_basalpercent">Valandinė bazė [%]</string> <string name="overview_newtempbasal_basalpercent">Valandinė bazė [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100 % = dabartinis)</string> <string name="overview_newtempbasal_percent_label">%%(100%% - pasirinkta)</string>
<string name="setbasalquestion">Patvirtinti naują laikiną bazę:</string> <string name="setbasalquestion">Patvirtinti naują laikiną bazę:</string>
<string name="overview_treatment_label">Terapija</string> <string name="overview_treatment_label">Terapija</string>
<string name="overview_calculator_label">Skaičiuotuvas</string> <string name="overview_calculator_label">Skaičiuotuvas</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">Pompos AIO</string> <string name="danar_iob_label">Pompos AIO</string>
<string name="danar_dailyunits">Paros insulinas</string> <string name="danar_dailyunits">Paros insulinas</string>
<string name="pump_lastbolus_label">Paskutinis bolusas</string> <string name="pump_lastbolus_label">Paskutinis bolusas</string>
<string name="hoursago">prieš %.1fval</string> <string name="hoursago">Prieš %1$.1f valandų</string>
<string name="danar_invalidinput">Neteisingai įvesti duomenys</string> <string name="danar_invalidinput">Neteisingai įvesti duomenys</string>
<string name="danar_valuenotsetproperly">Vertė nėra tinkamai nustatyta</string> <string name="danar_valuenotsetproperly">Vertė nėra tinkamai nustatyta</string>
<string name="reloadprofile">Atnaujinti profilį</string> <string name="reloadprofile">Atnaujinti profilį</string>
@ -528,7 +528,7 @@
<string name="resistantadult">Insulinui rezistentiškas suaugęs</string> <string name="resistantadult">Insulinui rezistentiškas suaugęs</string>
<string name="patientage_summary">Pasirinkite paciento amžių saugumo riboms nustatyti</string> <string name="patientage_summary">Pasirinkite paciento amžių saugumo riboms nustatyti</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s įtraukite baterijos optimizavimą į baltąjį sąrašą, tinkamam veikimui užtikrinti</string> <string name="needwhitelisting">%1$s įtraukite į baterijos optimizavimo baltąjį sąrašą tinkamam veikimui užtikrinti</string>
<string name="loopsuspended">Ciklas sustabdytas</string> <string name="loopsuspended">Ciklas sustabdytas</string>
<string name="loopsuspendedfor">Sustabdyta (%1$d m)</string> <string name="loopsuspendedfor">Sustabdyta (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolusas (%1$d m)</string> <string name="loopsuperbolusfor">Superbolusas (%1$d m)</string>
@ -564,8 +564,8 @@
<string name="show_statuslights_summary">Pradžios ekrane rodyti spalvotus indikatorius adatos, insulino, sensoriaus naudojimo trukmei bei baterijos įkrovimo lygiui.</string> <string name="show_statuslights_summary">Pradžios ekrane rodyti spalvotus indikatorius adatos, insulino, sensoriaus naudojimo trukmei bei baterijos įkrovimo lygiui.</string>
<string name="statuslights_res_warning">Įspėjimo apie žemą rezervuaro lygį riba [U]</string> <string name="statuslights_res_warning">Įspėjimo apie žemą rezervuaro lygį riba [U]</string>
<string name="statuslights_res_critical">Įspėjimo apie kritiškai žemą rezervuaro lygį riba [U]</string> <string name="statuslights_res_critical">Įspėjimo apie kritiškai žemą rezervuaro lygį riba [U]</string>
<string name="statuslights_bat_warning">Įspėjimo apie žemą baterijos įkrovimo lygį riba [%]</string> <string name="statuslights_bat_warning">Įspėjimo apie žemą baterijos įkrovimo lygį riba [%%]</string>
<string name="statuslights_bat_critical">Įspėjimo apie kritiškai žemą baterijos įkrovimo lygį riba [%]</string> <string name="statuslights_bat_critical">Įspėjimo apie kritiškai žemą baterijos įkrovimo lygį riba [%%]</string>
<string name="iob">AIO</string> <string name="iob">AIO</string>
<string name="cob">AAO</string> <string name="cob">AAO</string>
<string name="virtualpump_firmware_label">Programinė įranga</string> <string name="virtualpump_firmware_label">Programinė įranga</string>
@ -764,7 +764,7 @@
<string name="combo_pump_state_running">Vykdoma</string> <string name="combo_pump_state_running">Vykdoma</string>
<string name="combo_pump_action_cancelling_tbr">Laikina bazė atšaukiama</string> <string name="combo_pump_action_cancelling_tbr">Laikina bazė atšaukiama</string>
<string name="combo_pump_action_setting_tbr">Nustatyti laikiną bazę (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Nustatyti laikiną bazę (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolusas (%.1f vv)</string> <string name="combo_pump_action_bolusing">Leidžiamas bolusas (%1$.1f vv)</string>
<string name="combo_pump_action_refreshing">Atnaujinama</string> <string name="combo_pump_action_refreshing">Atnaujinama</string>
<string name="combo_pump_unsupported_operation">Pompa negali įvykdyti prašomos operacijos</string> <string name="combo_pump_unsupported_operation">Pompa negali įvykdyti prašomos operacijos</string>
<string name="combo_low_suspend_forced_notification">Nesaugu: aktyvus ištęstinis arba dvibangis bolusas. Ciklas nustatytas stabdymui prie žemo tik 6 valandoms. Aktyvūs tik paprasti bolusai.</string> <string name="combo_low_suspend_forced_notification">Nesaugu: aktyvus ištęstinis arba dvibangis bolusas. Ciklas nustatytas stabdymui prie žemo tik 6 valandoms. Aktyvūs tik paprasti bolusai.</string>
@ -1156,6 +1156,10 @@
<string name="sms_wrongcode">Neteisingas kodas. Komanda atšaukta.</string> <string name="sms_wrongcode">Neteisingas kodas. Komanda atšaukta.</string>
<string name="notconfigured">Nesukonfigūruota</string> <string name="notconfigured">Nesukonfigūruota</string>
<string name="profileswitchcreated">Profilio perjungimas sukurtas</string> <string name="profileswitchcreated">Profilio perjungimas sukurtas</string>
<string name="versionChecker">Versijos tikrintuvas</string>
<string name="old_version">sena versija</string>
<string name="very_old_version">labai sena versija</string>
<string name="new_version_warning">Nauja versija pasiekiama mažiausiai %1$d dienų! Po 60 d. grįšite prie stabdymo prie žemo, po 90 d. ciklas bus išjungtas.</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d diena</item> <item quantity="one">%1$d diena</item>
<item quantity="few">%1$d diena</item> <item quantity="few">%1$d diena</item>

View file

@ -145,8 +145,6 @@
<string name="constraints_violation">In strijd met beperkingen</string> <string name="constraints_violation">In strijd met beperkingen</string>
<string name="treatmentdeliveryerror">Bolus toedien storing</string> <string name="treatmentdeliveryerror">Bolus toedien storing</string>
<string name="tempbasaldeliveryerror">Tijdelijk basaal toedien storing</string> <string name="tempbasaldeliveryerror">Tijdelijk basaal toedien storing</string>
<string name="overview_newtempbasal_basalpercent">Basale waarde [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = actueel)</string>
<string name="setbasalquestion">Accepteer nieuw tijdelijk basaal:</string> <string name="setbasalquestion">Accepteer nieuw tijdelijk basaal:</string>
<string name="overview_treatment_label">Bolus</string> <string name="overview_treatment_label">Bolus</string>
<string name="overview_calculator_label">Bolus wizard</string> <string name="overview_calculator_label">Bolus wizard</string>
@ -246,7 +244,6 @@
<string name="danar_iob_label">Pomp IOB</string> <string name="danar_iob_label">Pomp IOB</string>
<string name="danar_dailyunits">Dag totaal</string> <string name="danar_dailyunits">Dag totaal</string>
<string name="pump_lastbolus_label">Laatste bolus</string> <string name="pump_lastbolus_label">Laatste bolus</string>
<string name="hoursago">%.1fu geleden</string>
<string name="danar_invalidinput">Verkeerde ingave</string> <string name="danar_invalidinput">Verkeerde ingave</string>
<string name="danar_valuenotsetproperly">Waarde niet correct ingesteld</string> <string name="danar_valuenotsetproperly">Waarde niet correct ingesteld</string>
<string name="reloadprofile">Herlaad profiel</string> <string name="reloadprofile">Herlaad profiel</string>
@ -506,7 +503,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport
<string name="resistantadult">insuline resistente volwassene</string> <string name="resistantadult">insuline resistente volwassene</string>
<string name="patientage_summary">Kies leeftijd van de patient voor veiligheids limieten</string> <string name="patientage_summary">Kies leeftijd van de patient voor veiligheids limieten</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s benodigd batterij optimalistaie vrijwaring voor goede werking</string>
<string name="loopsuspended">Loop pauzeren</string> <string name="loopsuspended">Loop pauzeren</string>
<string name="loopsuspendedfor">Gepauzeerd (%1$d m)</string> <string name="loopsuspendedfor">Gepauzeerd (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -542,8 +538,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport
<string name="show_statuslights_summary">Statusindicatoren inschakelen voor cage, iage, sage, reservoir en batterijniveau op het beginscherm.</string> <string name="show_statuslights_summary">Statusindicatoren inschakelen voor cage, iage, sage, reservoir en batterijniveau op het beginscherm.</string>
<string name="statuslights_res_warning">Drempel waarschuwing reservoir niveau [E]</string> <string name="statuslights_res_warning">Drempel waarschuwing reservoir niveau [E]</string>
<string name="statuslights_res_critical">Drempel alarm reservoir niveau [E]</string> <string name="statuslights_res_critical">Drempel alarm reservoir niveau [E]</string>
<string name="statuslights_bat_warning">Drempel waarschuwing batterij niveau [%]</string>
<string name="statuslights_bat_critical">Drempel alarm batterij niveau [%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -737,7 +731,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport
<string name="combo_pump_state_running">Actief</string> <string name="combo_pump_state_running">Actief</string>
<string name="combo_pump_action_cancelling_tbr">Annuleren van TB</string> <string name="combo_pump_action_cancelling_tbr">Annuleren van TB</string>
<string name="combo_pump_action_setting_tbr">Instellen TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Instellen TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolus (%.1f E)</string>
<string name="combo_pump_action_refreshing">Vernieuwen</string> <string name="combo_pump_action_refreshing">Vernieuwen</string>
<string name="combo_pump_unsupported_operation">Gevraagde is niet mogelijk met de pomp</string> <string name="combo_pump_unsupported_operation">Gevraagde is niet mogelijk met de pomp</string>
<string name="combo_low_suspend_forced_notification">Opgelet: verlengde en multi wave bolussen zijn actief. Loop is overgeschakeld naar low-suspend modus gedurende 6 uur. Alleen gewone bolussen worden ondersteund in loop modus</string> <string name="combo_low_suspend_forced_notification">Opgelet: verlengde en multi wave bolussen zijn actief. Loop is overgeschakeld naar low-suspend modus gedurende 6 uur. Alleen gewone bolussen worden ondersteund in loop modus</string>

View file

@ -9,6 +9,7 @@
<string name="nav_resetdb">Zresetuj bazy danych</string> <string name="nav_resetdb">Zresetuj bazy danych</string>
<string name="reset_db_confirm">Na pewno chcesz zresetować bazy danych?</string> <string name="reset_db_confirm">Na pewno chcesz zresetować bazy danych?</string>
<string name="nav_exit">Wyjście</string> <string name="nav_exit">Wyjście</string>
<string name="danar_useextended_title">Używaj przedłużonych bolusów dla &gt;200%%</string>
<string name="danar_bt_name_title">Urządzenie Bluetooth DanaR</string> <string name="danar_bt_name_title">Urządzenie Bluetooth DanaR</string>
<string name="ns_sync_use_absolute_title">Zawsze używaj wartości bezwzględnych bazy</string> <string name="ns_sync_use_absolute_title">Zawsze używaj wartości bezwzględnych bazy</string>
<string name="alert_dialog_storage_permission_text">Proszę uruchomić ponownie telefon lub zrestartować AndroidAPS w ustawieniach systemu telefonu \ninaczej AndroidAPS nie będzie otrzymywał logowań (ważne ze względu na śledzenie i sprawdzanie poprawności działania algorytmów)!</string> <string name="alert_dialog_storage_permission_text">Proszę uruchomić ponownie telefon lub zrestartować AndroidAPS w ustawieniach systemu telefonu \ninaczej AndroidAPS nie będzie otrzymywał logowań (ważne ze względu na śledzenie i sprawdzanie poprawności działania algorytmów)!</string>
@ -146,8 +147,8 @@
<string name="constraints_violation">Naruszenie ograniczeń</string> <string name="constraints_violation">Naruszenie ograniczeń</string>
<string name="treatmentdeliveryerror">Błąd podania bolusa</string> <string name="treatmentdeliveryerror">Błąd podania bolusa</string>
<string name="tempbasaldeliveryerror">Błąd podania bazy tymczasowej</string> <string name="tempbasaldeliveryerror">Błąd podania bazy tymczasowej</string>
<string name="overview_newtempbasal_basalpercent">Wartość bazy [%]</string> <string name="overview_newtempbasal_basalpercent">Wartość bazy [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = aktualny)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = aktualny)</string>
<string name="setbasalquestion">Akceptuj nową bazę tymczasową:</string> <string name="setbasalquestion">Akceptuj nową bazę tymczasową:</string>
<string name="overview_treatment_label">Leczenie</string> <string name="overview_treatment_label">Leczenie</string>
<string name="overview_calculator_label">Kalkulator</string> <string name="overview_calculator_label">Kalkulator</string>
@ -247,7 +248,7 @@
<string name="danar_iob_label">IOB w pompie</string> <string name="danar_iob_label">IOB w pompie</string>
<string name="danar_dailyunits">Jednostki dzienne</string> <string name="danar_dailyunits">Jednostki dzienne</string>
<string name="pump_lastbolus_label">Ostatni bolus</string> <string name="pump_lastbolus_label">Ostatni bolus</string>
<string name="hoursago">%.1fh temu</string> <string name="hoursago">%1$.1fh temu</string>
<string name="danar_invalidinput">Błędne dane wejściowe</string> <string name="danar_invalidinput">Błędne dane wejściowe</string>
<string name="danar_valuenotsetproperly">Wartość ustawiona nieprawidłowo</string> <string name="danar_valuenotsetproperly">Wartość ustawiona nieprawidłowo</string>
<string name="reloadprofile">Załaduj profil ponownie</string> <string name="reloadprofile">Załaduj profil ponownie</string>
@ -313,6 +314,7 @@
<string name="overview_bolusprogress_stop">Stop</string> <string name="overview_bolusprogress_stop">Stop</string>
<string name="overview_bolusprogress_stoppressed">NACIŚNIĘTY STOP</string> <string name="overview_bolusprogress_stoppressed">NACIŚNIĘTY STOP</string>
<string name="waitingforpump">Czekam na pompę</string> <string name="waitingforpump">Czekam na pompę</string>
<string name="overview_bolusprogress_goingtodeliver">Zamierzam dostarczyć %1$.2fU</string>
<string name="objectives_0_objective">Konfiguracja wizualizacji i monitorowania, analiza dawek i wartości bazowych</string> <string name="objectives_0_objective">Konfiguracja wizualizacji i monitorowania, analiza dawek i wartości bazowych</string>
<string name="objectives_0_gate">Sprawdź czy BG (pomiary cukru) są dostępne w Nightscout, i dane pompy insulinowej są ładowane</string> <string name="objectives_0_gate">Sprawdź czy BG (pomiary cukru) są dostępne w Nightscout, i dane pompy insulinowej są ładowane</string>
<string name="objectives_1_objective">Uruchamiam otwartą pętle (OpenLoop)</string> <string name="objectives_1_objective">Uruchamiam otwartą pętle (OpenLoop)</string>
@ -335,12 +337,26 @@
<string name="smscommunicator_loopisdisabled">Pętla (Loop) jest wyłączona</string> <string name="smscommunicator_loopisdisabled">Pętla (Loop) jest wyłączona</string>
<string name="smscommunicator_loopisenabled">Pętla (Loop) jest włączona</string> <string name="smscommunicator_loopisenabled">Pętla (Loop) jest włączona</string>
<string name="valuelimitedto">%1$.2f ograniczone do %2$.2f</string> <string name="valuelimitedto">%1$.2f ograniczone do %2$.2f</string>
<string name="valueoutofrange">Wartość %1$s jest poza dopuszczalną granicą</string>
<string name="smscommunicator_remotecommandnotallowed">Zdalne komendy nie są dozwolone</string> <string name="smscommunicator_remotecommandnotallowed">Zdalne komendy nie są dozwolone</string>
<string name="smscommunicator_remotebolusnotallowed">Bolus zdalny niedostępny. Spróbuj ponownie później.</string>
<string name="smscommunicator_basalreplywithcode">Aby rozpocząć bazę %1$.2fU/h przez %2$d min. odpowiedz kodem %3$s</string>
<string name="smscommunicator_profilereplywithcode">Aby przełączyć profil na %1$s %2$d%% odpowiedz kodem %3$s</string>
<string name="smscommunicator_extendedreplywithcode">Aby rozpocząć bolus przedłużony %1$.2fU przez %2$d min. odpowiedz kodem %3$s</string>
<string name="smscommunicator_basalpctreplywithcode">Aby rozpocząć bolus przedłużony %1$d%% przez %2$d min. odpowiedz kodem %3$s</string>
<string name="smscommunicator_suspendreplywithcode">Aby wstrzymać pętle na %1$d minut odpowiedz kodem %2$s</string> <string name="smscommunicator_suspendreplywithcode">Aby wstrzymać pętle na %1$d minut odpowiedz kodem %2$s</string>
<string name="smscommunicator_tempbasalset">Tymczasowa baza %1$.2fU/h przez %2$d min rozpoczęta</string> <string name="smscommunicator_tempbasalset">Tymczasowa baza %1$.2fU/h przez %2$d min rozpoczęta</string>
<string name="smscommunicator_extendedset">Bolus przedłużony %1$.2fU na %2$d min. rozpoczęty pomyślnie</string>
<string name="smscommunicator_tempbasalset_percent">Tymczasowa baza %1$d%% przez %2$d min. pomyślnie rozpoczęta</string>
<string name="smscommunicator_tempbasalfailed">Rozpoczęcie tymczasowej bazy nie powiodło się</string> <string name="smscommunicator_tempbasalfailed">Rozpoczęcie tymczasowej bazy nie powiodło się</string>
<string name="smscommunicator_extendedfailed">Nie powiodło się podanie bolusa przedłużonego</string>
<string name="smscommunicator_basalstopreplywithcode">Aby zatrzymać bazę tymczasową wprowadź kod %1$s</string>
<string name="smscommunicator_extendedstopreplywithcode">Aby zatrzymać bolus przedłużony wprowadź kod %1$s</string>
<string name="smscommunicator_tempbasalcanceled">Baza tymczasowa anulowana</string> <string name="smscommunicator_tempbasalcanceled">Baza tymczasowa anulowana</string>
<string name="smscommunicator_extendedcanceled">Przedłużony bolus anulowano</string>
<string name="smscommunicator_tempbasalcancelfailed">Anulowanie tymczasowej bazy nie powiodło się</string> <string name="smscommunicator_tempbasalcancelfailed">Anulowanie tymczasowej bazy nie powiodło się</string>
<string name="smscommunicator_extendedcancelfailed">Anulowanie bolusa przedłużonego nie powiodło się</string>
<string name="smscommunicator_unknowncommand">Nieznane polecenie lub błędna odpowiedź</string>
<string name="quickwizard">Bolus zdefiniowany</string> <string name="quickwizard">Bolus zdefiniowany</string>
<string name="quickwizardsettings">Ustaw szybkie bolusy</string> <string name="quickwizardsettings">Ustaw szybkie bolusy</string>
<string name="overview_editquickwizard_buttontext">Tekst przycisku:</string> <string name="overview_editquickwizard_buttontext">Tekst przycisku:</string>
@ -448,6 +464,7 @@
<string name="profile">Profil</string> <string name="profile">Profil</string>
<string name="openapsama_max_daily_safety_multiplier_summary">Wartość domyślna: 3 To jest kluczowy współczynnik bezpieczeństwa OpenAPS. Ogranicza dawki bazowe do 3x twojej największej dawki bazowej. Prawdopodobnie nie będziesz musiał tego zmieniać, ale powinieneś być świadomy tego, co się rozumie przez “3x max dzienna; 4x aktualna” dla współczynników bezpieczeństwa.</string> <string name="openapsama_max_daily_safety_multiplier_summary">Wartość domyślna: 3 To jest kluczowy współczynnik bezpieczeństwa OpenAPS. Ogranicza dawki bazowe do 3x twojej największej dawki bazowej. Prawdopodobnie nie będziesz musiał tego zmieniać, ale powinieneś być świadomy tego, co się rozumie przez “3x max dzienna; 4x aktualna” dla współczynników bezpieczeństwa.</string>
<string name="openapsama_current_basal_safety_multiplier_summary">Wartość domyślna: 4 To jest drugi kluczowy współczynnik bezpieczeństwa OpenAPS, i druga wartość z “3x max dzienna; 4x aktualna”. To oznacza, że Twoja dawka bazowa niezależnie od maksymalnej bazy ustawionej na pompie nie może być większa niż ta ustawiona wartość razy twoja aktualna dawka bazowa. To ma na celu przestrzec ludzi przed ustawieniem zbyt wysokiej dawki maksymalnej przed zrozumieniem jak działa algorytm. Ponownie, wartość domyślna to 4x; większość ludzi nie będzie potrzebowała tego zmienić i raczej będą potrzebować dostosować inne ustawienia, jeśli czują, że zbliżają się do współczynnika bezpieczeństwa.</string> <string name="openapsama_current_basal_safety_multiplier_summary">Wartość domyślna: 4 To jest drugi kluczowy współczynnik bezpieczeństwa OpenAPS, i druga wartość z “3x max dzienna; 4x aktualna”. To oznacza, że Twoja dawka bazowa niezależnie od maksymalnej bazy ustawionej na pompie nie może być większa niż ta ustawiona wartość razy twoja aktualna dawka bazowa. To ma na celu przestrzec ludzi przed ustawieniem zbyt wysokiej dawki maksymalnej przed zrozumieniem jak działa algorytm. Ponownie, wartość domyślna to 4x; większość ludzi nie będzie potrzebowała tego zmienić i raczej będą potrzebować dostosować inne ustawienia, jeśli czują, że zbliżają się do współczynnika bezpieczeństwa.</string>
<string name="openapsama_autosens_max_summary">Wartość domyślna: 1.2\nTo jest mnożnik dla autosens (wkrótce autotune), ustawia 20%% maks. limit dla najwyższej wartości jaką autosens może przyjąć, co z kolei określa jak wysoko autosens może zwiększyć bazę, jak nisko może ustawić współczynnik wrażliwości insuliny ISF, i jak nisko może ustawić docelową wartość glikemii.</string>
<string name="openapsama_autosens_min_summary">Wartość domyślna: 0.7\nDruga strona limitu bezpieczeństwa dla autosens, ustawia mnożnik minimalny dla wartości, do jakiej autosens może obniżyć bazę, i jak wysoko może ustawić ISF i wartość docelową BG.</string> <string name="openapsama_autosens_min_summary">Wartość domyślna: 0.7\nDruga strona limitu bezpieczeństwa dla autosens, ustawia mnożnik minimalny dla wartości, do jakiej autosens może obniżyć bazę, i jak wysoko może ustawić ISF i wartość docelową BG.</string>
<string name="openapsama_autosens_adjusttargets">Autosens wpływa na wartości docelowe</string> <string name="openapsama_autosens_adjusttargets">Autosens wpływa na wartości docelowe</string>
<string name="openapsama_autosens_adjusttargets_summary">Domyślnie włączone\nTa funkcja pozwala wpływać na zmianę wartości docelowe BG, wartości bazy i oraz współczynnika wrażliwości na insulinę ISF.</string> <string name="openapsama_autosens_adjusttargets_summary">Domyślnie włączone\nTa funkcja pozwala wpływać na zmianę wartości docelowe BG, wartości bazy i oraz współczynnika wrażliwości na insulinę ISF.</string>
@ -460,6 +477,7 @@
<string name="error_phone_not_valid">Nieprawidłowy numer telefonu</string> <string name="error_phone_not_valid">Nieprawidłowy numer telefonu</string>
<string name="smscommunicator_invalidphonennumber">Nieprawidłowy numer telefonu SMS</string> <string name="smscommunicator_invalidphonennumber">Nieprawidłowy numer telefonu SMS</string>
<string name="overview_calibration">Kalibracja</string> <string name="overview_calibration">Kalibracja</string>
<string name="send_calibration">Wysłać kalibrację %1$.1f do xDrip?</string>
<string name="xdripnotinstalled">xDrip+ nie zainstalowany</string> <string name="xdripnotinstalled">xDrip+ nie zainstalowany</string>
<string name="calibrationsent">Kalibracja przesłana do xDrip</string> <string name="calibrationsent">Kalibracja przesłana do xDrip</string>
<string name="smscommunicator_calibrationsent">Kalibracja wysłana. Odbiór musi być dozwolony w xDrip.</string> <string name="smscommunicator_calibrationsent">Kalibracja wysłana. Odbiór musi być dozwolony w xDrip.</string>
@ -510,7 +528,7 @@
<string name="resistantadult">Osoba dorosła insulino odporna</string> <string name="resistantadult">Osoba dorosła insulino odporna</string>
<string name="patientage_summary">Proszę wybierz wiek pacjenta w celu ustawienia wartości limitów bezpieczeństwa</string> <string name="patientage_summary">Proszę wybierz wiek pacjenta w celu ustawienia wartości limitów bezpieczeństwa</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s Potrzebuję wpisu na białą listę optymalizacji baterii, w celu zapewnienia poprawnego działania</string> <string name="needwhitelisting">%1$s potrzebuję wyłączenia z optymalizacji baterii, w celu zapewnienia poprawnego działania</string>
<string name="loopsuspended">Pętla wstrzymana</string> <string name="loopsuspended">Pętla wstrzymana</string>
<string name="loopsuspendedfor">Wstrzymana (%1$d m)</string> <string name="loopsuspendedfor">Wstrzymana (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -546,8 +564,8 @@
<string name="show_statuslights_summary">Włącz diody stanu dla cage, iage, sage, rezerwuar i poziom baterii na ekranie głównym.</string> <string name="show_statuslights_summary">Włącz diody stanu dla cage, iage, sage, rezerwuar i poziom baterii na ekranie głównym.</string>
<string name="statuslights_res_warning">Próg ostrzeżenia o poziomie zbiornika [U]</string> <string name="statuslights_res_warning">Próg ostrzeżenia o poziomie zbiornika [U]</string>
<string name="statuslights_res_critical">Próg ostrzeżenia o krytycznym poziomie zbiornika [U]</string> <string name="statuslights_res_critical">Próg ostrzeżenia o krytycznym poziomie zbiornika [U]</string>
<string name="statuslights_bat_warning">Próg ostrzeżenia o poziomie baterii [%]</string> <string name="statuslights_bat_warning">Próg ostrzeżenia o poziomie baterii [%%]</string>
<string name="statuslights_bat_critical">Próg ostrzeżenia o krytycznym poziomie baterii [%]</string> <string name="statuslights_bat_critical">Próg ostrzeżenia o krytycznym poziomie baterii [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -601,6 +619,7 @@
<string name="absorptionsettings_title">Ustawienia wchłaniania</string> <string name="absorptionsettings_title">Ustawienia wchłaniania</string>
<string name="absorption_maxtime_title">Maks. czas wchłaniania posiłku [h]</string> <string name="absorption_maxtime_title">Maks. czas wchłaniania posiłku [h]</string>
<string name="absorption_maxtime_summary">Oczekiwany czas w godzinach, w którym wszystkie węglowodany zostają wchłonięte</string> <string name="absorption_maxtime_summary">Oczekiwany czas w godzinach, w którym wszystkie węglowodany zostają wchłonięte</string>
<string name="danar_visualizeextendedaspercentage_title">Wizualizacja bolusa przedłużonego jako %%</string>
<string name="careportal_sensorage_label_short">SAGE</string> <string name="careportal_sensorage_label_short">SAGE</string>
<string name="careportal_insulinage_label_short">IAGE</string> <string name="careportal_insulinage_label_short">IAGE</string>
<string name="careportal_canulaage_label_short">CAGE</string> <string name="careportal_canulaage_label_short">CAGE</string>
@ -713,6 +732,8 @@
<string name="dexcomg5_xdripupload_title">Prześlij dane BG do xDrip+</string> <string name="dexcomg5_xdripupload_title">Prześlij dane BG do xDrip+</string>
<string name="dexcomg5_xdripupload_summary">W xDrip+ wybierz źródło danych 640g/Eversense</string> <string name="dexcomg5_xdripupload_summary">W xDrip+ wybierz źródło danych 640g/Eversense</string>
<string name="nsclientbg">NSClient BG</string> <string name="nsclientbg">NSClient BG</string>
<string name="minimalbasalvaluereplaced">Wartość bazy zastąpiona minimalną obsługiwaną wartością: %1$s</string>
<string name="maximumbasalvaluereplaced">Wartość bazy zastąpiona maksymalną obsługiwaną wartością: %1$s</string>
<string name="overview_editquickwizard_usebg">Obliczenia BG</string> <string name="overview_editquickwizard_usebg">Obliczenia BG</string>
<string name="overview_editquickwizard_usebolusiob">Obliczenia Bolus IOB</string> <string name="overview_editquickwizard_usebolusiob">Obliczenia Bolus IOB</string>
<string name="overview_editquickwizard_usebasaliob">Obliczenia IOB</string> <string name="overview_editquickwizard_usebasaliob">Obliczenia IOB</string>
@ -730,6 +751,8 @@
<string name="closedmodeenabled">Tryb zamknięty włączony</string> <string name="closedmodeenabled">Tryb zamknięty włączony</string>
<string name="maxiobset">Maks. IOB ustawione poprawnie</string> <string name="maxiobset">Maks. IOB ustawione poprawnie</string>
<string name="hasbgdata">BG dostępne z wybranego źródła</string> <string name="hasbgdata">BG dostępne z wybranego źródła</string>
<string name="basalprofilenotaligned">Wartości bazy nie są ustawione w pełnych godzinach: %1$s</string>
<string name="zerovalueinprofile">Nieprawidłowy profil: %1$s</string>
<string name="combo_programming_bolus">Programowanie pompy do podawania bolusa</string> <string name="combo_programming_bolus">Programowanie pompy do podawania bolusa</string>
<string name="combo_refresh">Odśwież</string> <string name="combo_refresh">Odśwież</string>
<string name="combo_pump_state_label">Stan</string> <string name="combo_pump_state_label">Stan</string>
@ -742,7 +765,7 @@
<string name="combo_pump_state_running">W działaniu</string> <string name="combo_pump_state_running">W działaniu</string>
<string name="combo_pump_action_cancelling_tbr">Anulowanie TBR</string> <string name="combo_pump_action_cancelling_tbr">Anulowanie TBR</string>
<string name="combo_pump_action_setting_tbr">Ustawianie TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Ustawianie TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Podawanie bolusa (%.1f U)</string> <string name="combo_pump_action_bolusing">Podawanie bolusa (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">Odświeżanie</string> <string name="combo_pump_action_refreshing">Odświeżanie</string>
<string name="combo_pump_unsupported_operation">Żądana operacja nie jest obsługiwana przez pompę</string> <string name="combo_pump_unsupported_operation">Żądana operacja nie jest obsługiwana przez pompę</string>
<string name="combo_low_suspend_forced_notification">Niebezpieczne użycie: aktywne są bolusy przedłużone lub wielofalowe. Tryb pętli został ustawiony tylko na 6 godzinne zawieszenie z uwagi na niski poziom (BG). W trybie pętli obsługiwane są tylko normalne bolusy</string> <string name="combo_low_suspend_forced_notification">Niebezpieczne użycie: aktywne są bolusy przedłużone lub wielofalowe. Tryb pętli został ustawiony tylko na 6 godzinne zawieszenie z uwagi na niski poziom (BG). W trybie pętli obsługiwane są tylko normalne bolusy</string>
@ -1065,11 +1088,13 @@
<string name="mute_alert">Wycisz</string> <string name="mute_alert">Wycisz</string>
<string name="pump_alert">Alarm pompy</string> <string name="pump_alert">Alarm pompy</string>
<string name="log_site_changes">Melduj zmianę miejsca wkłucia</string> <string name="log_site_changes">Melduj zmianę miejsca wkłucia</string>
<string name="log_reservoir_changes">Zapisz zmianę zbiornika</string>
<string name="log_tube_changes">Melduj zmianę drenu</string> <string name="log_tube_changes">Melduj zmianę drenu</string>
<string name="log_battery_changes">Melduj zmiany baterii</string> <string name="log_battery_changes">Melduj zmiany baterii</string>
<string name="log_operating_mode_changes">Melduj zmiany trybu pracy</string> <string name="log_operating_mode_changes">Melduj zmiany trybu pracy</string>
<string name="log_alerts">Melduj ostrzeżenia</string> <string name="log_alerts">Melduj ostrzeżenia</string>
<string name="enable_tbr_emulation">Włącz emulację TBR</string> <string name="enable_tbr_emulation">Włącz emulację TBR</string>
<string name="enable_tbr_emulation_summary">Użyj rozszerzonych bolusów zamiast TBR by ominąć limit 250%% bazy</string>
<string name="disconnect_delay">Opóźnienie rozłączenie [s]</string> <string name="disconnect_delay">Opóźnienie rozłączenie [s]</string>
<string name="serial_number">Numer seryjny</string> <string name="serial_number">Numer seryjny</string>
<string name="release_software_version">Wersja oprogramowania</string> <string name="release_software_version">Wersja oprogramowania</string>
@ -1124,6 +1149,18 @@
<string name="dexcom_lognssensorchange_summary">Podaj \"Zmiana Sensora\" do NS do NS automatycznie przy uruchomieniu sensora</string> <string name="dexcom_lognssensorchange_summary">Podaj \"Zmiana Sensora\" do NS do NS automatycznie przy uruchomieniu sensora</string>
<string name="tomato">Tomato (MiaoMiao)</string> <string name="tomato">Tomato (MiaoMiao)</string>
<string name="tomato_short">Tomato</string> <string name="tomato_short">Tomato</string>
<string name="dst_in_24h_warning">Zmiana na czas letni w ciągu 24 godzin lub krócej</string>
<string name="dst_loop_disabled_warning">Zmiana czasu nastąpiła mniej niż 3 godziny temu - Zamknięta pętla wyłączona</string>
<string name="storage">limit wielkości pamięci wewnętrznej</string>
<string name="diskfull">Zwolnij co najmniej %1$d MB z pamięci wewnętrznej! Pętla zatrzymana!</string>
<string name="wrongformat">Błędny format</string>
<string name="sms_wrongcode">Zły kod. Polecenie anulowano.</string>
<string name="notconfigured">Nie skonfigurowano</string>
<string name="profileswitchcreated">Zmiana profilu wykonana</string>
<string name="versionChecker">Kontroler wersji</string>
<string name="old_version">stara wersja</string>
<string name="very_old_version">bardzo stara wersja</string>
<string name="new_version_warning">Nowa wersja dostępna co najmniej %1$d dni! Powrót do LGS (zawieszania podawania bazy przy niskim poziomie) po 60 dniach, pętla zostanie wyłączona po 90 dniach</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d dzień</item> <item quantity="one">%1$d dzień</item>
<item quantity="few">%1$d dni</item> <item quantity="few">%1$d dni</item>

View file

@ -9,6 +9,7 @@
<string name="nav_resetdb">Reinicializar base de dados</string> <string name="nav_resetdb">Reinicializar base de dados</string>
<string name="reset_db_confirm">Quer realmente reiniciar a base de dados?</string> <string name="reset_db_confirm">Quer realmente reiniciar a base de dados?</string>
<string name="nav_exit">Sair</string> <string name="nav_exit">Sair</string>
<string name="danar_useextended_title">Usar bólus prolongado de &gt;200%%</string>
<string name="danar_bt_name_title">Dispositivo Bluetooth DanaR</string> <string name="danar_bt_name_title">Dispositivo Bluetooth DanaR</string>
<string name="ns_sync_use_absolute_title">Usar sempre valores absolutos de basal</string> <string name="ns_sync_use_absolute_title">Usar sempre valores absolutos de basal</string>
<string name="alert_dialog_storage_permission_text">Por favor, reinicie o seu telefone ou reinicie o AndroidAPS a partir das Configurações do Sistema \ncaso contrário, o AndroidAPS não terá registro (importante para controlar e verificar se os algoritmos estão a funcionar corretamente)!</string> <string name="alert_dialog_storage_permission_text">Por favor, reinicie o seu telefone ou reinicie o AndroidAPS a partir das Configurações do Sistema \ncaso contrário, o AndroidAPS não terá registro (importante para controlar e verificar se os algoritmos estão a funcionar corretamente)!</string>
@ -146,8 +147,8 @@
<string name="constraints_violation">Violação das restrições</string> <string name="constraints_violation">Violação das restrições</string>
<string name="treatmentdeliveryerror">Erro na entrega do bolus</string> <string name="treatmentdeliveryerror">Erro na entrega do bolus</string>
<string name="tempbasaldeliveryerror">Erro na entrega da basal temporária</string> <string name="tempbasaldeliveryerror">Erro na entrega da basal temporária</string>
<string name="overview_newtempbasal_basalpercent">Valor da Basal [%]</string> <string name="overview_newtempbasal_basalpercent">Valor da Basal [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = atual)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = actual)</string>
<string name="setbasalquestion">Aceitar nova basal temporária:</string> <string name="setbasalquestion">Aceitar nova basal temporária:</string>
<string name="overview_treatment_label">Tratamento</string> <string name="overview_treatment_label">Tratamento</string>
<string name="overview_calculator_label">Calculadora</string> <string name="overview_calculator_label">Calculadora</string>
@ -247,7 +248,7 @@
<string name="danar_iob_label">IOB Bomba</string> <string name="danar_iob_label">IOB Bomba</string>
<string name="danar_dailyunits">Unidades diárias</string> <string name="danar_dailyunits">Unidades diárias</string>
<string name="pump_lastbolus_label">Último bólus</string> <string name="pump_lastbolus_label">Último bólus</string>
<string name="hoursago">%.1fh atrás</string> <string name="hoursago">%1$.1fh atrás</string>
<string name="danar_invalidinput">Entrada Inválida</string> <string name="danar_invalidinput">Entrada Inválida</string>
<string name="danar_valuenotsetproperly">Valor não definido corretamente</string> <string name="danar_valuenotsetproperly">Valor não definido corretamente</string>
<string name="reloadprofile">Recarregar perfil</string> <string name="reloadprofile">Recarregar perfil</string>
@ -313,6 +314,7 @@
<string name="overview_bolusprogress_stop">Parar</string> <string name="overview_bolusprogress_stop">Parar</string>
<string name="overview_bolusprogress_stoppressed">STOP PRESSIONADO</string> <string name="overview_bolusprogress_stoppressed">STOP PRESSIONADO</string>
<string name="waitingforpump">À espera da bomba</string> <string name="waitingforpump">À espera da bomba</string>
<string name="overview_bolusprogress_goingtodeliver">Vão ser administradas %1$.2fU</string>
<string name="objectives_0_objective">Configuração da visualização e monitoramento, e análise de rácios e basals</string> <string name="objectives_0_objective">Configuração da visualização e monitoramento, e análise de rácios e basals</string>
<string name="objectives_0_gate">Verificar se a BG está disponível no Nightscout, e se os dados de insulina da bomba estão a ser carregados</string> <string name="objectives_0_gate">Verificar se a BG está disponível no Nightscout, e se os dados de insulina da bomba estão a ser carregados</string>
<string name="objectives_1_objective">A iniciar um open loop</string> <string name="objectives_1_objective">A iniciar um open loop</string>
@ -335,11 +337,23 @@
<string name="smscommunicator_loopisdisabled">Loop desactivado</string> <string name="smscommunicator_loopisdisabled">Loop desactivado</string>
<string name="smscommunicator_loopisenabled">Loop activado</string> <string name="smscommunicator_loopisenabled">Loop activado</string>
<string name="valuelimitedto">%1$.2f limitado a %2$.2f</string> <string name="valuelimitedto">%1$.2f limitado a %2$.2f</string>
<string name="valueoutofrange">O valor %1$s está fora dos limites permitidos</string>
<string name="smscommunicator_remotecommandnotallowed">O comando remoto não é permitido</string> <string name="smscommunicator_remotecommandnotallowed">O comando remoto não é permitido</string>
<string name="smscommunicator_remotebolusnotallowed">O bólus remoto não está disponível. Tente novamente mais tarde.</string>
<string name="smscommunicator_basalreplywithcode">Para começar a basal %1$.2fU/h durante%2$d min responda com o código %3$s</string>
<string name="smscommunicator_profilereplywithcode">Para mudar o perfil para %1$s %2$d%% responda com o código %3$s</string>
<string name="smscommunicator_extendedreplywithcode">Para começar o bólus estendido %1$.2fU/h para %2$d min responda com o código %3$s</string>
<string name="smscommunicator_basalpctreplywithcode">Para começar a basal %1$d% U/h durante %2$d min responda com o código %3$s</string>
<string name="smscommunicator_suspendreplywithcode">Para suspender o loop por %1$d minutos resposta com código %2$s</string> <string name="smscommunicator_suspendreplywithcode">Para suspender o loop por %1$d minutos resposta com código %2$s</string>
<string name="smscommunicator_tempbasalset">Basal temporária %1$.2fU/h para %2$d min iniciada com êxito</string> <string name="smscommunicator_tempbasalset">Basal temporária %1$.2fU/h para %2$d min iniciada com êxito</string>
<string name="smscommunicator_extendedset">Bólus estendido %1$.2fU/h para %2$d min iniciado com êxito</string>
<string name="smscommunicator_tempbasalset_percent">Basal temporária %1$d% U/h durante%2$d min iniciada com êxito</string>
<string name="smscommunicator_tempbasalfailed">Início basal temp falhou </string> <string name="smscommunicator_tempbasalfailed">Início basal temp falhou </string>
<string name="smscommunicator_extendedfailed">Falha ao iniciar o bólus estendido</string>
<string name="smscommunicator_basalstopreplywithcode">Para parar a basal temporária responda com o código %1$s</string>
<string name="smscommunicator_extendedstopreplywithcode">Para parar o bólus temporário responda com o código %1$s</string>
<string name="smscommunicator_tempbasalcanceled">Basal temp cancelada</string> <string name="smscommunicator_tempbasalcanceled">Basal temp cancelada</string>
<string name="smscommunicator_extendedcanceled">Bólus estendido cancelado</string>
<string name="smscommunicator_tempbasalcancelfailed">Não foi possivel cancelar a basal temp</string> <string name="smscommunicator_tempbasalcancelfailed">Não foi possivel cancelar a basal temp</string>
<string name="smscommunicator_extendedcancelfailed">Falhou o cancelamento do bolus extendido</string> <string name="smscommunicator_extendedcancelfailed">Falhou o cancelamento do bolus extendido</string>
<string name="smscommunicator_unknowncommand">Comando desconhecido ou resposta errada</string> <string name="smscommunicator_unknowncommand">Comando desconhecido ou resposta errada</string>
@ -450,6 +464,7 @@
<string name="profile">Perfil</string> <string name="profile">Perfil</string>
<string name="openapsama_max_daily_safety_multiplier_summary">Valor padrão: 3 Por segurança é o valor limite estabelecido por OpenAPS. O que faz é limitar a basal a x3 a basal mázima. Se necessário modificar este valor, por favor ter em conta que os dados apontam para que os limites de segurança sejam - 3 x max diario ou 4x valor actual (qual seja menor) como valores máximos.</string> <string name="openapsama_max_daily_safety_multiplier_summary">Valor padrão: 3 Por segurança é o valor limite estabelecido por OpenAPS. O que faz é limitar a basal a x3 a basal mázima. Se necessário modificar este valor, por favor ter em conta que os dados apontam para que os limites de segurança sejam - 3 x max diario ou 4x valor actual (qual seja menor) como valores máximos.</string>
<string name="openapsama_current_basal_safety_multiplier_summary">Valor padrão: 4 Esta é a outra parte dos valores limites de segurança - 3 x max diário ou 4x valor actual - do OpenAPS. Isto define que não importa o valor da basal máxima definido na bomba, o valor máximo da basal temporária não pode ser maior que 4 x o valor da basal definida na bomba. O objectivo é evitar que sejam determinadas basais temporárias demasiado elevadas antes que se perceba como o algoritmo funciona. 4x é um valor que a maior parte das pessoas nunca necessitará de alterar pois o mais provável é necessitar de alterar outras definições para não necessitar de \"ultrapassar\" este limite de segurança.</string> <string name="openapsama_current_basal_safety_multiplier_summary">Valor padrão: 4 Esta é a outra parte dos valores limites de segurança - 3 x max diário ou 4x valor actual - do OpenAPS. Isto define que não importa o valor da basal máxima definido na bomba, o valor máximo da basal temporária não pode ser maior que 4 x o valor da basal definida na bomba. O objectivo é evitar que sejam determinadas basais temporárias demasiado elevadas antes que se perceba como o algoritmo funciona. 4x é um valor que a maior parte das pessoas nunca necessitará de alterar pois o mais provável é necessitar de alterar outras definições para não necessitar de \"ultrapassar\" este limite de segurança.</string>
<string name="openapsama_autosens_max_summary">Valor predefinido: 1.2\n Este é um multiplicador para autosens (e em breve autotune) que coloca um limite máximo de 20%% aos rácios superiores e inferiores de autosens, o que por sua vez calcula o quão alto autosens pode ajustar a basal, quão pode baixar o Factor de Sensibilidade (FSI) e baixar o valor alvo de glicose no sangue.</string>
<string name="openapsama_autosens_min_summary">Valor padrão: 0.7\nO outro lado dos limites de segurança do autosens. Coloca um tecto no quão baixo autosens pode ajustar as basais, e quão alto pode ajustar os valores de ISF e valor alvo de glucose no sangue (BG).</string> <string name="openapsama_autosens_min_summary">Valor padrão: 0.7\nO outro lado dos limites de segurança do autosens. Coloca um tecto no quão baixo autosens pode ajustar as basais, e quão alto pode ajustar os valores de ISF e valor alvo de glucose no sangue (BG).</string>
<string name="openapsama_autosens_adjusttargets">Autosens também ajusta os alvos</string> <string name="openapsama_autosens_adjusttargets">Autosens também ajusta os alvos</string>
<string name="openapsama_autosens_adjusttargets_summary">Valor padrão: true\nÉ usado para permitir que autosens possa ajustar os valores alvo de glucose no sangue (BG), além de ISF e basais.</string> <string name="openapsama_autosens_adjusttargets_summary">Valor padrão: true\nÉ usado para permitir que autosens possa ajustar os valores alvo de glucose no sangue (BG), além de ISF e basais.</string>
@ -462,6 +477,7 @@
<string name="error_phone_not_valid">Número de telefone não é válido</string> <string name="error_phone_not_valid">Número de telefone não é válido</string>
<string name="smscommunicator_invalidphonennumber">SMS número de telefone inválido</string> <string name="smscommunicator_invalidphonennumber">SMS número de telefone inválido</string>
<string name="overview_calibration">Calibração</string> <string name="overview_calibration">Calibração</string>
<string name="send_calibration">Enviar calibração %1$.1f para o xDrip?</string>
<string name="xdripnotinstalled">xDrip+ não está instalado</string> <string name="xdripnotinstalled">xDrip+ não está instalado</string>
<string name="calibrationsent">Calibração enviada para o xDrip</string> <string name="calibrationsent">Calibração enviada para o xDrip</string>
<string name="smscommunicator_calibrationsent">Calibração enviada. Recepção têm de estar activada no xDrip.</string> <string name="smscommunicator_calibrationsent">Calibração enviada. Recepção têm de estar activada no xDrip.</string>
@ -512,7 +528,7 @@
<string name="resistantadult">Adulto resistente insulina</string> <string name="resistantadult">Adulto resistente insulina</string>
<string name="patientage_summary">Por favor seleccione a idade do diabético para definir os limites de segurança</string> <string name="patientage_summary">Por favor seleccione a idade do diabético para definir os limites de segurança</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s necessita de autorizar a não optimização da bateria para assegurar a performance necessária</string> <string name="needwhitelisting">%1$s necessita de autorizar a não optimização da bateria para assegurar a performance necessária</string>
<string name="loopsuspended">Loop suspenso</string> <string name="loopsuspended">Loop suspenso</string>
<string name="loopsuspendedfor">Suspendido (%1$d m)</string> <string name="loopsuspendedfor">Suspendido (%1$d m)</string>
<string name="loopsuperbolusfor">Superbólus (%1$d m)</string> <string name="loopsuperbolusfor">Superbólus (%1$d m)</string>
@ -548,8 +564,8 @@
<string name="show_statuslights_summary">Ativar as luzes de status para idade da cânula, idade da insulina, idade do sensor, reservatório e bateria no ecrã inicial.</string> <string name="show_statuslights_summary">Ativar as luzes de status para idade da cânula, idade da insulina, idade do sensor, reservatório e bateria no ecrã inicial.</string>
<string name="statuslights_res_warning">Limite de aviso de nível de reservatório [U]</string> <string name="statuslights_res_warning">Limite de aviso de nível de reservatório [U]</string>
<string name="statuslights_res_critical">Limite crítico de nível de reservatório [U]</string> <string name="statuslights_res_critical">Limite crítico de nível de reservatório [U]</string>
<string name="statuslights_bat_warning">Limite de aviso de nível de bateria [%]</string> <string name="statuslights_bat_warning">Limite de aviso de nível de bateria [%%]</string>
<string name="statuslights_bat_critical">Limite crítico de nível de bateria [%]</string> <string name="statuslights_bat_critical">Limite crítico de nível de bateria [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -602,6 +618,7 @@
<string name="absorptionsettings_title">Configurações de absorção</string> <string name="absorptionsettings_title">Configurações de absorção</string>
<string name="absorption_maxtime_title">Tempo máx. absorção refeição [h]</string> <string name="absorption_maxtime_title">Tempo máx. absorção refeição [h]</string>
<string name="absorption_maxtime_summary">Tempo em horas, espectável para que todos os hidratos de carbono da refeição sejam absorvidos</string> <string name="absorption_maxtime_summary">Tempo em horas, espectável para que todos os hidratos de carbono da refeição sejam absorvidos</string>
<string name="danar_visualizeextendedaspercentage_title">Visualizar bólus prolongado como %%</string>
<string name="careportal_sensorage_label_short">SAGE</string> <string name="careportal_sensorage_label_short">SAGE</string>
<string name="careportal_insulinage_label_short">IAGE</string> <string name="careportal_insulinage_label_short">IAGE</string>
<string name="careportal_canulaage_label_short">CAGE</string> <string name="careportal_canulaage_label_short">CAGE</string>
@ -714,6 +731,8 @@
<string name="dexcomg5_xdripupload_title">Enviar dados Glic. para xDrip+</string> <string name="dexcomg5_xdripupload_title">Enviar dados Glic. para xDrip+</string>
<string name="dexcomg5_xdripupload_summary">Seleccionar 640g/Eversense como fonte no xDrip+</string> <string name="dexcomg5_xdripupload_summary">Seleccionar 640g/Eversense como fonte no xDrip+</string>
<string name="nsclientbg">Glic NSCliente</string> <string name="nsclientbg">Glic NSCliente</string>
<string name="minimalbasalvaluereplaced">Valor da basal alterado para o valor mínimo suportado: %1$s</string>
<string name="maximumbasalvaluereplaced">Valor da basal alterado para o valor máximo suportado: %1$s</string>
<string name="overview_editquickwizard_usebg">Cálculos Glic</string> <string name="overview_editquickwizard_usebg">Cálculos Glic</string>
<string name="overview_editquickwizard_usebolusiob">Cálculo de Bólus IOB</string> <string name="overview_editquickwizard_usebolusiob">Cálculo de Bólus IOB</string>
<string name="overview_editquickwizard_usebasaliob">Cálculo de Basal IOB</string> <string name="overview_editquickwizard_usebasaliob">Cálculo de Basal IOB</string>
@ -731,6 +750,8 @@
<string name="closedmodeenabled">Modo fechado ativado</string> <string name="closedmodeenabled">Modo fechado ativado</string>
<string name="maxiobset">IOB máxima definida correctamente</string> <string name="maxiobset">IOB máxima definida correctamente</string>
<string name="hasbgdata">Glicemia disponivel desde a fonte selecionada</string> <string name="hasbgdata">Glicemia disponivel desde a fonte selecionada</string>
<string name="basalprofilenotaligned">Valores das basais não definidos por horas: %1$s</string>
<string name="zerovalueinprofile">Perfil inválido: %1$s</string>
<string name="combo_programming_bolus">A programar a bomba para injectar o bolus</string> <string name="combo_programming_bolus">A programar a bomba para injectar o bolus</string>
<string name="combo_refresh">Actualizar</string> <string name="combo_refresh">Actualizar</string>
<string name="combo_pump_state_label">Estado</string> <string name="combo_pump_state_label">Estado</string>
@ -743,7 +764,7 @@
<string name="combo_pump_state_running">A correr</string> <string name="combo_pump_state_running">A correr</string>
<string name="combo_pump_action_cancelling_tbr">Cancelar TBR</string> <string name="combo_pump_action_cancelling_tbr">Cancelar TBR</string>
<string name="combo_pump_action_setting_tbr">A definir TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">A definir TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Injectando (%.1f U)</string> <string name="combo_pump_action_bolusing">Injectando (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">A actualizar</string> <string name="combo_pump_action_refreshing">A actualizar</string>
<string name="combo_pump_unsupported_operation">Operação solicitada não suportada pela bomba</string> <string name="combo_pump_unsupported_operation">Operação solicitada não suportada pela bomba</string>
<string name="combo_low_suspend_forced_notification">Ultilização nao segura: bolus estendudos ou multionda estão activos. Modo do loop foi alterado para apenas suspender em limite inferior por 6h. Apenas são suportados bolus normais em modo loop</string> <string name="combo_low_suspend_forced_notification">Ultilização nao segura: bolus estendudos ou multionda estão activos. Modo do loop foi alterado para apenas suspender em limite inferior por 6h. Apenas são suportados bolus normais em modo loop</string>
@ -1072,6 +1093,7 @@
<string name="log_operating_mode_changes">Alterações do modo de funcionamento de registo</string> <string name="log_operating_mode_changes">Alterações do modo de funcionamento de registo</string>
<string name="log_alerts">Alertas de registo</string> <string name="log_alerts">Alertas de registo</string>
<string name="enable_tbr_emulation">Ativar a emulação TBR</string> <string name="enable_tbr_emulation">Ativar a emulação TBR</string>
<string name="enable_tbr_emulation_summary">Usar bólus prolongados em vez de basais temporárias para contornar o limite de 250%%</string>
<string name="disconnect_delay">Atraso de desconexão [s]</string> <string name="disconnect_delay">Atraso de desconexão [s]</string>
<string name="serial_number">Número de série</string> <string name="serial_number">Número de série</string>
<string name="release_software_version">Lançar versão de software</string> <string name="release_software_version">Lançar versão de software</string>
@ -1107,15 +1129,17 @@
<string name="refresh">Actualizar</string> <string name="refresh">Actualizar</string>
<string name="description_pump_insight_local">Integração de bomba para bombas Accu-Chek Insight</string> <string name="description_pump_insight_local">Integração de bomba para bombas Accu-Chek Insight</string>
<string name="not_inserted">Não inserido</string> <string name="not_inserted">Não inserido</string>
<string name="short_status_last_connected">Última conexão:%1$d minutos atrás</string> <string name="short_status_last_connected">Última ligação:%1$d minutos atrás</string>
<string name="short_status_tbr">Basal temporária: %1$d%% para %2$d / %3$d minutos</string> <string name="short_status_tbr">Basal temporária: %1$d%% para %2$d / %3$d minutos</string>
<string name="short_status_extended">Estendido: %1$.2f / %2$.2f U por %3$d min</string> <string name="short_status_extended">Estendido: %1$.2f / %2$.2f U por %3$d min</string>
<string name="short_status_multiwave">Multionda: %1$.2f / %2$.2f U por %3$d min</string> <string name="short_status_multiwave">Multionda: %1$.2f / %2$.2f U por %3$d min</string>
<string name="short_status_tdd">TDD: %1$.2f</string>
<string name="short_status_reservoir">Reser:%1$.2fU</string> <string name="short_status_reservoir">Reser:%1$.2fU</string>
<string name="short_status_battery">Bat.: %1$d%%</string> <string name="short_status_battery">Bat.: %1$d%%</string>
<string name="max_recovery_duration">Duração máxima da recuperação [s]</string> <string name="max_recovery_duration">Duração máxima da recuperação [s]</string>
<string name="min_recovery_duration">Duração mínima da recuperação [s]</string> <string name="min_recovery_duration">Duração mínima da recuperação [s]</string>
<string name="recovery_duration">Duração da recuperação</string> <string name="recovery_duration">Duração da recuperação</string>
<string name="timeout_during_handshake">Tempo de operação excedido - reinicar bluetooth</string>
<string name="profile_total">== ∑ %1$s U</string> <string name="profile_total">== ∑ %1$s U</string>
<string name="profile_ins_units_per_hout">U/h</string> <string name="profile_ins_units_per_hout">U/h</string>
<string name="profile_carbs_per_unit">g/U</string> <string name="profile_carbs_per_unit">g/U</string>
@ -1124,12 +1148,18 @@
<string name="dexcom_lognssensorchange_summary">Criar evento \"Mudança de Sensor\" automaticamente no NS aquando do início do sensor</string> <string name="dexcom_lognssensorchange_summary">Criar evento \"Mudança de Sensor\" automaticamente no NS aquando do início do sensor</string>
<string name="tomato">Tomato (MiaoMiao)</string> <string name="tomato">Tomato (MiaoMiao)</string>
<string name="tomato_short">Tomato</string> <string name="tomato_short">Tomato</string>
<string name="dst_in_24h_warning">Horário de Verão em 24h ou menos</string>
<string name="dst_loop_disabled_warning">Horário de Verão a menos de 3 horas - Closed Loop desligado</string>
<string name="storage">restrição de armazenamento interno</string> <string name="storage">restrição de armazenamento interno</string>
<string name="diskfull">Liberte pelo menos %1$d MB do armazenamento interno! Loop desativado!</string> <string name="diskfull">Liberte pelo menos %1$d MB do armazenamento interno! Loop desativado!</string>
<string name="wrongformat">Formato incorrecto</string> <string name="wrongformat">Formato incorrecto</string>
<string name="sms_wrongcode">Código errado. Comando cancelado.</string> <string name="sms_wrongcode">Código errado. Comando cancelado.</string>
<string name="notconfigured">Não configurado</string> <string name="notconfigured">Não configurado</string>
<string name="profileswitchcreated">Troca de perfil criada</string> <string name="profileswitchcreated">Troca de perfil criada</string>
<string name="versionChecker">Verificador de Versão</string>
<string name="old_version">versão antiga</string>
<string name="very_old_version">versão muito antiga</string>
<string name="new_version_warning">Nova versão para pelo menos %1$d dias disponíveis! Voltar para o LGS após 60 dias, o loop será desativado após 90 dias</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d dia</item> <item quantity="one">%1$d dia</item>
<item quantity="other">%1$d dias</item> <item quantity="other">%1$d dias</item>

View file

@ -145,8 +145,6 @@
<string name="constraints_violation">Încălcare a unei limite</string> <string name="constraints_violation">Încălcare a unei limite</string>
<string name="treatmentdeliveryerror">Eroare la livrarea bolusului</string> <string name="treatmentdeliveryerror">Eroare la livrarea bolusului</string>
<string name="tempbasaldeliveryerror">Eroare la setare bazală temporară</string> <string name="tempbasaldeliveryerror">Eroare la setare bazală temporară</string>
<string name="overview_newtempbasal_basalpercent">Valoare bazală [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = curent)</string>
<string name="setbasalquestion">Acceptă noua bazală temporară:</string> <string name="setbasalquestion">Acceptă noua bazală temporară:</string>
<string name="overview_treatment_label">Tratament</string> <string name="overview_treatment_label">Tratament</string>
<string name="overview_calculator_label">Calculator</string> <string name="overview_calculator_label">Calculator</string>
@ -246,7 +244,6 @@
<string name="danar_iob_label">IOB din pompă</string> <string name="danar_iob_label">IOB din pompă</string>
<string name="danar_dailyunits">Unități zilnic</string> <string name="danar_dailyunits">Unități zilnic</string>
<string name="pump_lastbolus_label">Ultimul bolus</string> <string name="pump_lastbolus_label">Ultimul bolus</string>
<string name="hoursago">%.1f o în urmă</string>
<string name="danar_invalidinput">Date de intrare incorecte</string> <string name="danar_invalidinput">Date de intrare incorecte</string>
<string name="danar_valuenotsetproperly">Valoare setată incorect</string> <string name="danar_valuenotsetproperly">Valoare setată incorect</string>
<string name="reloadprofile">Reîncarcă profilul</string> <string name="reloadprofile">Reîncarcă profilul</string>
@ -505,7 +502,6 @@
<string name="resistantadult">Adult rezistent la insulină</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="patientage_summary">Vă rog să selectați vârsta pacientului în vederea stabilirii valorilor maxime admise de siguranță</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s necesită excluderea din lista de optimizare a bateriei pentru funcționare corespunzătoare</string>
<string name="loopsuspended">Buclă suspendată</string> <string name="loopsuspended">Buclă suspendată</string>
<string name="loopsuspendedfor">Suspendat (%1$d min)</string> <string name="loopsuspendedfor">Suspendat (%1$d min)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d min)</string> <string name="loopsuperbolusfor">Superbolus (%1$d min)</string>
@ -541,8 +537,6 @@
<string name="show_statuslights_summary">Activați indicatori pentru CAGE, IAGE, SAGE, nivel baterie și rezervor pe ecranul principal.</string> <string name="show_statuslights_summary">Activați indicatori pentru CAGE, IAGE, SAGE, nivel baterie și rezervor pe ecranul principal.</string>
<string name="statuslights_res_warning">Pragul de avertisment pentru insulina din rezervor [U]</string> <string name="statuslights_res_warning">Pragul de avertisment pentru insulina din rezervor [U]</string>
<string name="statuslights_res_critical">Pragul critic al nivelului insulinei în rezervor [U]</string> <string name="statuslights_res_critical">Pragul critic al nivelului insulinei în rezervor [U]</string>
<string name="statuslights_bat_warning">Pragul de avertizare nivel baterie [%]</string>
<string name="statuslights_bat_critical">Pragul critic al nivelului baterie [%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -736,7 +730,6 @@
<string name="combo_pump_state_running">Rulează</string> <string name="combo_pump_state_running">Rulează</string>
<string name="combo_pump_action_cancelling_tbr">Se oprește TBR</string> <string name="combo_pump_action_cancelling_tbr">Se oprește TBR</string>
<string name="combo_pump_action_setting_tbr">Se setează TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Se setează TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolusare (%.1f U)</string>
<string name="combo_pump_action_refreshing">Reîncărcare</string> <string name="combo_pump_action_refreshing">Reîncărcare</string>
<string name="combo_pump_unsupported_operation">Operațiunea nu este suportată de pompă</string> <string name="combo_pump_unsupported_operation">Operațiunea nu este suportată de pompă</string>
<string name="combo_low_suspend_forced_notification">Folosire nesigură: un bolus extins sau multiwave este activ. Modul buclă este setat să funcționeze în low-suspend pentru 6 ore. Doar bolusurile normale sunt posibile.</string> <string name="combo_low_suspend_forced_notification">Folosire nesigură: un bolus extins sau multiwave este activ. Modul buclă este setat să funcționeze în low-suspend pentru 6 ore. Doar bolusurile normale sunt posibile.</string>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com--> <!--Generated by crowdin.com-->
<resources> <resources>
<string name="treatmentssafety_title">Безопасность назначений</string> <string name="treatmentssafety_title">Безопасность терапии</string>
<string name="treatmentssafety_maxbolus_title">Макс разрешенный болюс [U] ед.</string> <string name="treatmentssafety_maxbolus_title">Макс разрешенный болюс [U] ед.</string>
<string name="treatmentssafety_maxcarbs_title">макс разрешенные углеводы (г)</string> <string name="treatmentssafety_maxcarbs_title">макс разрешенные углеводы (г)</string>
<string name="nav_preferences">опции</string> <string name="nav_preferences">опции</string>
<string name="nav_refreshtreatments">синхронисировать назначения с NS</string> <string name="nav_refreshtreatments">Синхронизировать назначения с NS</string>
<string name="nav_resetdb">обнулить базы</string> <string name="nav_resetdb">обнулить базы</string>
<string name="reset_db_confirm">Вы действительно хотите обнулить базы данных?</string> <string name="reset_db_confirm">Вы действительно хотите обнулить базы данных?</string>
<string name="nav_exit">Выход</string> <string name="nav_exit">Выход</string>
@ -116,7 +116,7 @@
<string name="nsprofile">профиль NS</string> <string name="nsprofile">профиль NS</string>
<string name="simpleprofile">простой профиль</string> <string name="simpleprofile">простой профиль</string>
<string name="tempbasal">ВремБазал</string> <string name="tempbasal">ВремБазал</string>
<string name="treatments">назначения</string> <string name="treatments">Терапия</string>
<string name="virtualpump">виртуальная помпа</string> <string name="virtualpump">виртуальная помпа</string>
<string name="careportal">Портал лечения / назначений</string> <string name="careportal">Портал лечения / назначений</string>
<string name="configbuilder_pump">помпа</string> <string name="configbuilder_pump">помпа</string>
@ -147,14 +147,14 @@
<string name="constraints_violation">ограничение нарушено</string> <string name="constraints_violation">ограничение нарушено</string>
<string name="treatmentdeliveryerror">Ошибка подачи болюса</string> <string name="treatmentdeliveryerror">Ошибка подачи болюса</string>
<string name="tempbasaldeliveryerror">Ошибка подачи врем базала</string> <string name="tempbasaldeliveryerror">Ошибка подачи врем базала</string>
<string name="overview_newtempbasal_basalpercent">величина базала (%)</string> <string name="overview_newtempbasal_basalpercent">Величина базала [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = текущий)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = текущее)</string>
<string name="setbasalquestion">принять новый врем базал:</string> <string name="setbasalquestion">принять новый врем базал:</string>
<string name="overview_treatment_label">болюс</string> <string name="overview_treatment_label">болюс</string>
<string name="overview_calculator_label">калькулятор</string> <string name="overview_calculator_label">калькулятор</string>
<string name="constraintapllied">применено ограничение!</string> <string name="constraintapllied">применено ограничение!</string>
<string name="confirmation">подтверждение</string> <string name="confirmation">подтверждение</string>
<string name="entertreatmentquestion">введите новое назначение</string> <string name="entertreatmentquestion">Ввести новое назначение:</string>
<string name="bolus">болюс</string> <string name="bolus">болюс</string>
<string name="sms_bolus">болюс:</string> <string name="sms_bolus">болюс:</string>
<string name="basal">базал</string> <string name="basal">базал</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">активный инсулин на помпе</string> <string name="danar_iob_label">активный инсулин на помпе</string>
<string name="danar_dailyunits">суточные единицы</string> <string name="danar_dailyunits">суточные единицы</string>
<string name="pump_lastbolus_label">предыдущий болюс</string> <string name="pump_lastbolus_label">предыдущий болюс</string>
<string name="hoursago">%.1fч назад</string> <string name="hoursago">%1$.1fч назад</string>
<string name="danar_invalidinput">введенные данные неверны</string> <string name="danar_invalidinput">введенные данные неверны</string>
<string name="danar_valuenotsetproperly">величина не задана должным образом</string> <string name="danar_valuenotsetproperly">величина не задана должным образом</string>
<string name="reloadprofile">обновить профиль</string> <string name="reloadprofile">обновить профиль</string>
@ -528,7 +528,7 @@
<string name="resistantadult">Инсулинорезистентный взрослый</string> <string name="resistantadult">Инсулинорезистентный взрослый</string>
<string name="patientage_summary">выберите возраст пациента для определения ограничителей безопасности</string> <string name="patientage_summary">выберите возраст пациента для определения ограничителей безопасности</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s необходимо включить в белый список для корректной работы</string> <string name="needwhitelisting">%1$s необходимо включить в белый список оптимизации батареи для корректной работы</string>
<string name="loopsuspended">ЗЦ остановлен</string> <string name="loopsuspended">ЗЦ остановлен</string>
<string name="loopsuspendedfor">Остановлен на(%1$d m)</string> <string name="loopsuspendedfor">Остановлен на(%1$d m)</string>
<string name="loopsuperbolusfor">Суперболюс(%1$d m)</string> <string name="loopsuperbolusfor">Суперболюс(%1$d m)</string>
@ -564,8 +564,8 @@
<string name="show_statuslights_summary">Включить на главном экране индикаторы отработанного времени для канюли помпы, инсулина, сенсора, резервуара, а также показать уровень аккумулятора.</string> <string name="show_statuslights_summary">Включить на главном экране индикаторы отработанного времени для канюли помпы, инсулина, сенсора, резервуара, а также показать уровень аккумулятора.</string>
<string name="statuslights_res_warning">Порог уровня наполненности резервуара для оповещения [ед.]</string> <string name="statuslights_res_warning">Порог уровня наполненности резервуара для оповещения [ед.]</string>
<string name="statuslights_res_critical">Порог критического уровня наполненности резервуара [U]</string> <string name="statuslights_res_critical">Порог критического уровня наполненности резервуара [U]</string>
<string name="statuslights_bat_warning">Порог предупреждения о разрядке батареи [%]</string> <string name="statuslights_bat_warning">Порог предупреждения о разрядке батареи [%%]</string>
<string name="statuslights_bat_critical">Порог предупреждения о критическом уровне разрядки батареи [%]</string> <string name="statuslights_bat_critical">Порог предупреждения о критическом уровне разрядки батареи [%%]</string>
<string name="iob">IOB акт инс</string> <string name="iob">IOB акт инс</string>
<string name="cob">акт углев</string> <string name="cob">акт углев</string>
<string name="virtualpump_firmware_label">прошивка</string> <string name="virtualpump_firmware_label">прошивка</string>
@ -690,7 +690,7 @@
<string name="gettingpumptime">Получение времени помпы</string> <string name="gettingpumptime">Получение времени помпы</string>
<string name="reuse">повторное использование</string> <string name="reuse">повторное использование</string>
<string name="wearcontrol_title">Контроль с часов</string> <string name="wearcontrol_title">Контроль с часов</string>
<string name="wearcontrol_summary">Поставить временные цели и ввести назначения с часов.</string> <string name="wearcontrol_summary">Ставить временные цели и вводить назначения с часов.</string>
<string name="connectiontimedout">Истекло время ожидания соединения</string> <string name="connectiontimedout">Истекло время ожидания соединения</string>
<string name="food">Еда</string> <string name="food">Еда</string>
<string name="shortgramm">грамм</string> <string name="shortgramm">грамм</string>
@ -764,7 +764,7 @@
<string name="combo_pump_state_running">Выполняется</string> <string name="combo_pump_state_running">Выполняется</string>
<string name="combo_pump_action_cancelling_tbr">Отмена врем базала TBR</string> <string name="combo_pump_action_cancelling_tbr">Отмена врем базала TBR</string>
<string name="combo_pump_action_setting_tbr">Установка врем базала TBR на (%1$d%% / %2$d мин)</string> <string name="combo_pump_action_setting_tbr">Установка врем базала TBR на (%1$d%% / %2$d мин)</string>
<string name="combo_pump_action_bolusing">Введение болюса (%.1f ед)</string> <string name="combo_pump_action_bolusing">Введение болюса (%1$.1f ед)</string>
<string name="combo_pump_action_refreshing">Обновление</string> <string name="combo_pump_action_refreshing">Обновление</string>
<string name="combo_pump_unsupported_operation">Запрашиваемая операция не поддерживается помпой</string> <string name="combo_pump_unsupported_operation">Запрашиваемая операция не поддерживается помпой</string>
<string name="combo_low_suspend_forced_notification">Небезопасное использование: Удлиненный или многоволновой болюс активны. Режим цикла Loop установлен на приостановку при низкой гликемии только на 6 часов. В режиме loop поддерживаются только обычные болюсы</string> <string name="combo_low_suspend_forced_notification">Небезопасное использование: Удлиненный или многоволновой болюс активны. Режим цикла Loop установлен на приостановку при низкой гликемии только на 6 часов. В режиме loop поддерживаются только обычные болюсы</string>
@ -1044,7 +1044,7 @@ Context | Edit Context</string>
<string name="careportal_removestartedevents">AndroidAPS перезапущен</string> <string name="careportal_removestartedevents">AndroidAPS перезапущен</string>
<string name="storedsettingsfound">Найдены сохраненные параметры</string> <string name="storedsettingsfound">Найдены сохраненные параметры</string>
<string name="allow_hardware_pump_text">Внимание: Если вы активируете подключение к невиртуальной помпе, AndroidAPS скопирует настройки базала в профиль помпы, перезаписывая существующие настройки, хранящиеся в ней. Убедитесь, что настройки базала в AndroidAPS корректны. Если вы не уверены или не хотите перезаписать настройки базала на помпу, нажмите отменить и повторите подключение в другое время.</string> <string name="allow_hardware_pump_text">Внимание: Если вы активируете подключение к невиртуальной помпе, AndroidAPS скопирует настройки базала в профиль помпы, перезаписывая существующие настройки, хранящиеся в ней. Убедитесь, что настройки базала в AndroidAPS корректны. Если вы не уверены или не хотите перезаписать настройки базала на помпу, нажмите отменить и повторите подключение в другое время.</string>
<string name="error_adding_treatment_title">Данные назначений неполные</string> <string name="error_adding_treatment_title">Данные терапии неполные</string>
<string name="maintenance_settings">Параметры обслуживания</string> <string name="maintenance_settings">Параметры обслуживания</string>
<string name="maintenance_email">Адрес электронной почты</string> <string name="maintenance_email">Адрес электронной почты</string>
<string name="invalid_email_message">Недопустимый e-mail</string> <string name="invalid_email_message">Недопустимый e-mail</string>
@ -1158,4 +1158,8 @@ Context | Edit Context</string>
<string name="sms_wrongcode">Неверный код. Команда отменена.</string> <string name="sms_wrongcode">Неверный код. Команда отменена.</string>
<string name="notconfigured">Не сконфигурировано</string> <string name="notconfigured">Не сконфигурировано</string>
<string name="profileswitchcreated">Переключатель профиля создан</string> <string name="profileswitchcreated">Переключатель профиля создан</string>
<string name="versionChecker">Проверка версии</string>
<string name="old_version">старая версия</string>
<string name="very_old_version">очень старая версия</string>
<string name="new_version_warning">Новая версия доступна не менее %1$d дней! После 60 дней переход на остановку при низкой гликемии LGS, замкнутый цикл будет отключен через 90 дней</string>
</resources> </resources>

View file

@ -147,8 +147,8 @@
<string name="constraints_violation">Mimo povolený rozsah</string> <string name="constraints_violation">Mimo povolený rozsah</string>
<string name="treatmentdeliveryerror">Chyba podania bolusu</string> <string name="treatmentdeliveryerror">Chyba podania bolusu</string>
<string name="tempbasaldeliveryerror">Chyba podávania dočasného bazálu</string> <string name="tempbasaldeliveryerror">Chyba podávania dočasného bazálu</string>
<string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%]</string> <string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = aktuálny)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = aktuálny)</string>
<string name="setbasalquestion">Povoliť nový dočasný bazál:</string> <string name="setbasalquestion">Povoliť nový dočasný bazál:</string>
<string name="overview_treatment_label">Bolus</string> <string name="overview_treatment_label">Bolus</string>
<string name="overview_calculator_label">Kalkulačka</string> <string name="overview_calculator_label">Kalkulačka</string>
@ -248,7 +248,7 @@
<string name="danar_iob_label">IOB z pumpy</string> <string name="danar_iob_label">IOB z pumpy</string>
<string name="danar_dailyunits">Jednotiek za deň</string> <string name="danar_dailyunits">Jednotiek za deň</string>
<string name="pump_lastbolus_label">Posledný bolus</string> <string name="pump_lastbolus_label">Posledný bolus</string>
<string name="hoursago">pred %.1fh</string> <string name="hoursago">pred %1$.1fh</string>
<string name="danar_invalidinput">Chybné vstupné dáta</string> <string name="danar_invalidinput">Chybné vstupné dáta</string>
<string name="danar_valuenotsetproperly">Hodnota nenastavená správne</string> <string name="danar_valuenotsetproperly">Hodnota nenastavená správne</string>
<string name="reloadprofile">Obnoviť profil</string> <string name="reloadprofile">Obnoviť profil</string>
@ -528,7 +528,7 @@
<string name="resistantadult">Dospelý z nízkou citlivosťou</string> <string name="resistantadult">Dospelý z nízkou citlivosťou</string>
<string name="patientage_summary">Vyberte vek pacienta pre nastavenie bezpečnostných limitov</string> <string name="patientage_summary">Vyberte vek pacienta pre nastavenie bezpečnostných limitov</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s potrebuje vypnúť optimalizáciu baterie pre optimálny výkon</string> <string name="needwhitelisting">%1$s potrebuje vypnúť optimalizáciu batérie pre optimálny výkon</string>
<string name="loopsuspended">Uzavretý okruh pozastavený</string> <string name="loopsuspended">Uzavretý okruh pozastavený</string>
<string name="loopsuspendedfor">Pozastavený (%1$d min)</string> <string name="loopsuspendedfor">Pozastavený (%1$d min)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -564,8 +564,8 @@
<string name="show_statuslights_summary">Povoliť indikátory stavu pre CAGE, IAGE, SAGE, Reservoir a Battery Level na domovskej obrazovke.</string> <string name="show_statuslights_summary">Povoliť indikátory stavu pre CAGE, IAGE, SAGE, Reservoir a Battery Level na domovskej obrazovke.</string>
<string name="statuslights_res_warning">Prah upozornenia na úroveň hladiny zásobníka [U]</string> <string name="statuslights_res_warning">Prah upozornenia na úroveň hladiny zásobníka [U]</string>
<string name="statuslights_res_critical">Prah kritickej úrovne hladiny zásobníka [U]</string> <string name="statuslights_res_critical">Prah kritickej úrovne hladiny zásobníka [U]</string>
<string name="statuslights_bat_warning">Prah upozornenia na úroveň batérie [%]</string> <string name="statuslights_bat_warning">Prah upozornenia na úroveň batérie [%%]</string>
<string name="statuslights_bat_critical">Prah kritickej úrovne batérie [%]</string> <string name="statuslights_bat_critical">Prah kritickej úrovne batérie [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -764,7 +764,7 @@
<string name="combo_pump_state_running">V prevádzke</string> <string name="combo_pump_state_running">V prevádzke</string>
<string name="combo_pump_action_cancelling_tbr">Rušenie dočasného bazálu</string> <string name="combo_pump_action_cancelling_tbr">Rušenie dočasného bazálu</string>
<string name="combo_pump_action_setting_tbr">Nastavovanie doč. bazálu (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Nastavovanie doč. bazálu (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Podávanie bolusu (%.1f U)</string> <string name="combo_pump_action_bolusing">Podávanie bolusu (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">Aktualizuje sa stav</string> <string name="combo_pump_action_refreshing">Aktualizuje sa stav</string>
<string name="combo_pump_unsupported_operation">Požadovaná operácia nie je pumpou podporovaná</string> <string name="combo_pump_unsupported_operation">Požadovaná operácia nie je pumpou podporovaná</string>
<string name="combo_low_suspend_forced_notification">Nebezpečné použitie: predĺžený alebo multiwave bolus je aktívny. Pumpa bola vypnutá len na 6 hodín. Povolené sú iba normálne bolusy.</string> <string name="combo_low_suspend_forced_notification">Nebezpečné použitie: predĺžený alebo multiwave bolus je aktívny. Pumpa bola vypnutá len na 6 hodín. Povolené sú iba normálne bolusy.</string>
@ -1156,6 +1156,10 @@
<string name="sms_wrongcode">Nesprávný kód. Príkaz zrušený.</string> <string name="sms_wrongcode">Nesprávný kód. Príkaz zrušený.</string>
<string name="notconfigured">Nie je nakonfigurované</string> <string name="notconfigured">Nie je nakonfigurované</string>
<string name="profileswitchcreated">Prepnutie profilu vytvorené</string> <string name="profileswitchcreated">Prepnutie profilu vytvorené</string>
<string name="versionChecker">Kontrola verzie</string>
<string name="old_version">stará verzia</string>
<string name="very_old_version">veľmi stará verzia</string>
<string name="new_version_warning">Nová verzia dostupná najmenej %1$d dní! Návrat k liečbe inzulínovou pumpou s podporou senzora po 60 dňoch, okruh bude deaktivovaný po 90 dňoch.</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d deň</item> <item quantity="one">%1$d deň</item>
<item quantity="few">%1$d dní</item> <item quantity="few">%1$d dní</item>

View file

@ -148,8 +148,6 @@ Eversense-appen.</string>
<string name="constraints_violation">Begränsning nådd</string> <string name="constraints_violation">Begränsning nådd</string>
<string name="treatmentdeliveryerror">Fel vid bolusleverans</string> <string name="treatmentdeliveryerror">Fel vid bolusleverans</string>
<string name="tempbasaldeliveryerror">Fel vid justering av temp basal</string> <string name="tempbasaldeliveryerror">Fel vid justering av temp basal</string>
<string name="overview_newtempbasal_basalpercent">Basal [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = profilens värde)</string>
<string name="setbasalquestion">Acceptera ny temp basal:</string> <string name="setbasalquestion">Acceptera ny temp basal:</string>
<string name="overview_treatment_label">Behandling</string> <string name="overview_treatment_label">Behandling</string>
<string name="overview_calculator_label">Kalkylator</string> <string name="overview_calculator_label">Kalkylator</string>
@ -249,7 +247,6 @@ Eversense-appen.</string>
<string name="danar_iob_label">Pumpens IOB</string> <string name="danar_iob_label">Pumpens IOB</string>
<string name="danar_dailyunits">Enheter per dag</string> <string name="danar_dailyunits">Enheter per dag</string>
<string name="pump_lastbolus_label">Senaste bolus</string> <string name="pump_lastbolus_label">Senaste bolus</string>
<string name="hoursago">%.1f tim sedan</string>
<string name="danar_invalidinput">Fel på inmatning</string> <string name="danar_invalidinput">Fel på inmatning</string>
<string name="danar_valuenotsetproperly">Misslyckades med inställning</string> <string name="danar_valuenotsetproperly">Misslyckades med inställning</string>
<string name="reloadprofile">Ladda om profil</string> <string name="reloadprofile">Ladda om profil</string>
@ -529,7 +526,6 @@ Eversense-appen.</string>
<string name="resistantadult">Insulinresistent vuxen</string> <string name="resistantadult">Insulinresistent vuxen</string>
<string name="patientage_summary">Vg ange personens ålder för inställningar av gränser</string> <string name="patientage_summary">Vg ange personens ålder för inställningar av gränser</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s behöver kunna kringgå batterisparfunktionerna för att fungera korrekt</string>
<string name="loopsuspended">Loop pausad</string> <string name="loopsuspended">Loop pausad</string>
<string name="loopsuspendedfor">Pausad (%1$d min)</string> <string name="loopsuspendedfor">Pausad (%1$d min)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d min)</string> <string name="loopsuperbolusfor">Superbolus (%1$d min)</string>
@ -565,8 +561,6 @@ Eversense-appen.</string>
<string name="show_statuslights_summary">Aktivera statusindikationerna för cage, iage, sage, reservoar och batterinivå på hemskärmen.</string> <string name="show_statuslights_summary">Aktivera statusindikationerna för cage, iage, sage, reservoar och batterinivå på hemskärmen.</string>
<string name="statuslights_res_warning">Varningsnivå för reservoar [U]</string> <string name="statuslights_res_warning">Varningsnivå för reservoar [U]</string>
<string name="statuslights_res_critical">Akut varningsnivå för reservoar [U]</string> <string name="statuslights_res_critical">Akut varningsnivå för reservoar [U]</string>
<string name="statuslights_bat_warning">Varningsnivå för batteri [%]</string>
<string name="statuslights_bat_critical">Akut varningsnivå för batteri [%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmwareversion</string> <string name="virtualpump_firmware_label">Firmwareversion</string>
@ -765,7 +759,6 @@ Eversense-appen.</string>
<string name="combo_pump_state_running">Körs</string> <string name="combo_pump_state_running">Körs</string>
<string name="combo_pump_action_cancelling_tbr">Avbryter temp basal</string> <string name="combo_pump_action_cancelling_tbr">Avbryter temp basal</string>
<string name="combo_pump_action_setting_tbr">Sätter temp basal (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Sätter temp basal (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Levererar bolus (%.1f enheter)</string>
<string name="combo_pump_action_refreshing">Uppdaterar</string> <string name="combo_pump_action_refreshing">Uppdaterar</string>
<string name="combo_pump_unsupported_operation">Önskad åtgärd stöds inte av pumpen</string> <string name="combo_pump_unsupported_operation">Önskad åtgärd stöds inte av pumpen</string>
<string name="combo_low_suspend_forced_notification">Osäker användning: Förlängd- eller kombibolus är aktiv. Loop mode är satt till att bromsa vid lågt BG i 6 timmar. Endast normala bolusar tillåtna i loopläge.</string> <string name="combo_low_suspend_forced_notification">Osäker användning: Förlängd- eller kombibolus är aktiv. Loop mode är satt till att bromsa vid lågt BG i 6 timmar. Endast normala bolusar tillåtna i loopläge.</string>

View file

@ -143,8 +143,6 @@
<string name="constraints_violation">Kısıtlamalar ihlali</string> <string name="constraints_violation">Kısıtlamalar ihlali</string>
<string name="treatmentdeliveryerror">Bolus teslimat hatası</string> <string name="treatmentdeliveryerror">Bolus teslimat hatası</string>
<string name="tempbasaldeliveryerror">Geçici Bazal teslimat hatası</string> <string name="tempbasaldeliveryerror">Geçici Bazal teslimat hatası</string>
<string name="overview_newtempbasal_basalpercent">Bazal değeri [%]</string>
<string name="overview_newtempbasal_percent_label">% ( 100% = aktuel)</string>
<string name="setbasalquestion">Yeni geçici bazal oranını kabul et:</string> <string name="setbasalquestion">Yeni geçici bazal oranını kabul et:</string>
<string name="overview_treatment_label">Tedavi</string> <string name="overview_treatment_label">Tedavi</string>
<string name="overview_calculator_label">Hesap makinesi</string> <string name="overview_calculator_label">Hesap makinesi</string>
@ -244,7 +242,6 @@
<string name="danar_iob_label">IOB(Aktif insülin) pompa</string> <string name="danar_iob_label">IOB(Aktif insülin) pompa</string>
<string name="danar_dailyunits">Günlük birimleri</string> <string name="danar_dailyunits">Günlük birimleri</string>
<string name="pump_lastbolus_label">Son bolus</string> <string name="pump_lastbolus_label">Son bolus</string>
<string name="hoursago">%.1fs önce</string>
<string name="danar_invalidinput">Geçersiz bilgi girişi</string> <string name="danar_invalidinput">Geçersiz bilgi girişi</string>
<string name="danar_valuenotsetproperly">Değer düzgün ayarlanmamış</string> <string name="danar_valuenotsetproperly">Değer düzgün ayarlanmamış</string>
<string name="reloadprofile">Dosyayı yeniden yükle</string> <string name="reloadprofile">Dosyayı yeniden yükle</string>
@ -503,7 +500,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="resistantadult">Yetişkin İnsülin direnci</string> <string name="resistantadult">Yetişkin İnsülin direnci</string>
<string name="patientage_summary">Güvenlik sınırlarını ayarlamak için lütfen hasta yaşını seçiniz</string> <string name="patientage_summary">Güvenlik sınırlarını ayarlamak için lütfen hasta yaşını seçiniz</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s, düzgün bir şekilde çalışması için devre dışı bırakılmış pil performans ayarlaması gerektirir</string>
<string name="loopsuspended">Döngü durduldu</string> <string name="loopsuspended">Döngü durduldu</string>
<string name="loopsuspendedfor">Askıya alındı (%1$d m)</string> <string name="loopsuspendedfor">Askıya alındı (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -725,7 +721,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
<string name="combo_pump_state_running">Çalışıyor</string> <string name="combo_pump_state_running">Çalışıyor</string>
<string name="combo_pump_action_cancelling_tbr">TBR (Geçici Bazal Oranı) İptal ediliyor</string> <string name="combo_pump_action_cancelling_tbr">TBR (Geçici Bazal Oranı) İptal ediliyor</string>
<string name="combo_pump_action_setting_tbr">TBR(Geçici Bazal Oranı) ayarı (%1$d%% / %2$d dak)</string> <string name="combo_pump_action_setting_tbr">TBR(Geçici Bazal Oranı) ayarı (%1$d%% / %2$d dak)</string>
<string name="combo_pump_action_bolusing">Bolus (%.1f U) teslim ediliyor</string>
<string name="combo_pump_action_refreshing">Yenileniyor...</string> <string name="combo_pump_action_refreshing">Yenileniyor...</string>
<string name="combo_pump_unsupported_operation">İstenen işlem pompası tarafından desteklenmiyor</string> <string name="combo_pump_unsupported_operation">İstenen işlem pompası tarafından desteklenmiyor</string>
<string name="combo_low_suspend_forced_notification">Güvensiz kullanım: yayım veya çoklu dalgalı (kare dalgalı) boluslar aktiftir. Döngü modu 6 saat içinde ekstra insülin vermeyecektir. Döngü modunda sadece normal boluslar desteklenir</string> <string name="combo_low_suspend_forced_notification">Güvensiz kullanım: yayım veya çoklu dalgalı (kare dalgalı) boluslar aktiftir. Döngü modu 6 saat içinde ekstra insülin vermeyecektir. Döngü modunda sadece normal boluslar desteklenir</string>

View file

@ -53,6 +53,7 @@
<string name="description_wear">使用您的 WearOS 手表监视和控制 AndroidAPS。</string> <string name="description_wear">使用您的 WearOS 手表监视和控制 AndroidAPS。</string>
<string name="description_xdrip_status_line">在 xDrip + 表盘上显示有关闭环的信息。</string> <string name="description_xdrip_status_line">在 xDrip + 表盘上显示有关闭环的信息。</string>
<string name="description_sms_communicator">远程控制 AndroidAPS 使用 SMS 短信命令。</string> <string name="description_sms_communicator">远程控制 AndroidAPS 使用 SMS 短信命令。</string>
<string name="objectives_button_back">返回</string>
<string name="objectives_button_start">开始</string> <string name="objectives_button_start">开始</string>
<string name="objectives_button_verify">校验</string> <string name="objectives_button_verify">校验</string>
<string name="nsprofileview_units_label">单位</string> <string name="nsprofileview_units_label">单位</string>
@ -145,8 +146,6 @@
<string name="constraints_violation">违反约束条件</string> <string name="constraints_violation">违反约束条件</string>
<string name="treatmentdeliveryerror">大剂量输注错误</string> <string name="treatmentdeliveryerror">大剂量输注错误</string>
<string name="tempbasaldeliveryerror">临时基础输注错误</string> <string name="tempbasaldeliveryerror">临时基础输注错误</string>
<string name="overview_newtempbasal_basalpercent">基础率数值 [%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = 当前)</string>
<string name="setbasalquestion">接受新的临时基础率</string> <string name="setbasalquestion">接受新的临时基础率</string>
<string name="overview_treatment_label">治疗</string> <string name="overview_treatment_label">治疗</string>
<string name="overview_calculator_label">计算器</string> <string name="overview_calculator_label">计算器</string>
@ -246,7 +245,6 @@
<string name="danar_iob_label">泵 IOB</string> <string name="danar_iob_label">泵 IOB</string>
<string name="danar_dailyunits">每日单位数</string> <string name="danar_dailyunits">每日单位数</string>
<string name="pump_lastbolus_label">上次大剂量</string> <string name="pump_lastbolus_label">上次大剂量</string>
<string name="hoursago">%.1fh 前</string>
<string name="danar_invalidinput">无效的输入数据</string> <string name="danar_invalidinput">无效的输入数据</string>
<string name="danar_valuenotsetproperly">数值设定的不正确</string> <string name="danar_valuenotsetproperly">数值设定的不正确</string>
<string name="reloadprofile">重新加载配置文件</string> <string name="reloadprofile">重新加载配置文件</string>
@ -264,6 +262,10 @@
<string name="smscommunicator_bolusreplywithcode">要输注大剂量胰岛素%1$.2fU 回复如下代码 %2$s</string> <string name="smscommunicator_bolusreplywithcode">要输注大剂量胰岛素%1$.2fU 回复如下代码 %2$s</string>
<string name="smscommunicator_calibrationreplywithcode">要发送校准值 %1$.2f 回复如下代码 %2$s</string> <string name="smscommunicator_calibrationreplywithcode">要发送校准值 %1$.2f 回复如下代码 %2$s</string>
<string name="smscommunicator_bolusfailed">大剂量输注失败</string> <string name="smscommunicator_bolusfailed">大剂量输注失败</string>
<string name="bolusdelivered">已经成功输注大剂量%1$.2fU</string>
<string name="bolusrequested">将要输注 %1$.2fU</string>
<string name="smscommunicator_bolusdelivered">已经成功输注大剂量%1$.2fU</string>
<string name="bolusdelivering">正在输注 %1$.2fU</string>
<string name="smscommunicator_remotecommandsallowed">通过SMS短信允许远程命令</string> <string name="smscommunicator_remotecommandsallowed">通过SMS短信允许远程命令</string>
<string name="glucosetype_finger">手指</string> <string name="glucosetype_finger">手指</string>
<string name="glucosetype_sensor">传感器</string> <string name="glucosetype_sensor">传感器</string>
@ -331,11 +333,24 @@
<string name="smscommunicator_loopisenabled">闭环被启用</string> <string name="smscommunicator_loopisenabled">闭环被启用</string>
<string name="valuelimitedto">%1$.2f 超过 %2$.2f的限制</string> <string name="valuelimitedto">%1$.2f 超过 %2$.2f的限制</string>
<string name="smscommunicator_remotecommandnotallowed">远程命令没有被允许</string> <string name="smscommunicator_remotecommandnotallowed">远程命令没有被允许</string>
<string name="smscommunicator_remotebolusnotallowed">远程大剂量不可用。请稍后再试。</string>
<string name="smscommunicator_basalreplywithcode">要开始基础率 %1$.2fU/h 持续时间%2$d 分钟,请回复如下代码 %3$s</string>
<string name="smscommunicator_profilereplywithcode">要切换配置文件到 %1$s %2$d%% 请回复代码 %3$s</string>
<string name="smscommunicator_extendedreplywithcode">要开始扩展大剂量 %1$.2fU/h 持续时间%2$d 分钟,请回复如下代码 %3$s</string>
<string name="smscommunicator_basalpctreplywithcode">要开始基础率 %1$d%% 持续时间%2$d 分钟,请回复如下代码 %3$s</string>
<string name="smscommunicator_suspendreplywithcode">要暂停闭环 %1$d 分钟请回复如下代码 %2$s</string> <string name="smscommunicator_suspendreplywithcode">要暂停闭环 %1$d 分钟请回复如下代码 %2$s</string>
<string name="smscommunicator_tempbasalset">临时基础率 %1$.2fU/h 持续 %2$d 分钟启用成功了</string> <string name="smscommunicator_tempbasalset">临时基础率 %1$.2fU/h 持续 %2$d 分钟启用成功了</string>
<string name="smscommunicator_extendedset">扩展大剂量 %1$.2fU/h 持续时间 %2$d 分钟已经启用成功了</string>
<string name="smscommunicator_tempbasalset_percent">临时基础率 %1$d%% 持续时间 %2$d 分钟 启用成功了</string>
<string name="smscommunicator_tempbasalfailed">开始临时基础率失败了</string> <string name="smscommunicator_tempbasalfailed">开始临时基础率失败了</string>
<string name="smscommunicator_extendedfailed">开始扩展大剂量失败了</string>
<string name="smscommunicator_basalstopreplywithcode">要停止临时基础率,请回复如下代码 %1$s</string>
<string name="smscommunicator_extendedstopreplywithcode">要停止扩展大剂量,请回复如下代码 %1$s</string>
<string name="smscommunicator_tempbasalcanceled">临时基础率取消了</string> <string name="smscommunicator_tempbasalcanceled">临时基础率取消了</string>
<string name="smscommunicator_extendedcanceled">扩展大剂量已经取消了</string>
<string name="smscommunicator_tempbasalcancelfailed">取消临时基础率失败</string> <string name="smscommunicator_tempbasalcancelfailed">取消临时基础率失败</string>
<string name="smscommunicator_extendedcancelfailed">取消扩展大剂量失败</string>
<string name="smscommunicator_unknowncommand">未知的命令或者错误的回复</string>
<string name="quickwizard">快速向导</string> <string name="quickwizard">快速向导</string>
<string name="quickwizardsettings">快速向导设置</string> <string name="quickwizardsettings">快速向导设置</string>
<string name="overview_editquickwizard_buttontext">按钮文本:</string> <string name="overview_editquickwizard_buttontext">按钮文本:</string>
@ -505,7 +520,6 @@
<string name="resistantadult">胰岛素抵抗成人</string> <string name="resistantadult">胰岛素抵抗成人</string>
<string name="patientage_summary">请选择患者年龄以设置安全限制</string> <string name="patientage_summary">请选择患者年龄以设置安全限制</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s 需要加入电池优化白名单才能正常运行</string>
<string name="loopsuspended">闭环暂停了</string> <string name="loopsuspended">闭环暂停了</string>
<string name="loopsuspendedfor">暂停了 (%1$d m)</string> <string name="loopsuspendedfor">暂停了 (%1$d m)</string>
<string name="loopsuperbolusfor">超级大剂量 (%1$d m)</string> <string name="loopsuperbolusfor">超级大剂量 (%1$d m)</string>
@ -541,8 +555,6 @@
<string name="show_statuslights_summary">在主屏幕上启用cage(碳水时间)、iage(胰岛素时间)、sage(探头使用时间)、储药器和电池电量的状态指示灯。</string> <string name="show_statuslights_summary">在主屏幕上启用cage(碳水时间)、iage(胰岛素时间)、sage(探头使用时间)、储药器和电池电量的状态指示灯。</string>
<string name="statuslights_res_warning">储药器药量低于阈值[U] 警告</string> <string name="statuslights_res_warning">储药器药量低于阈值[U] 警告</string>
<string name="statuslights_res_critical">储药器药量低于阈值[U] 严重警告</string> <string name="statuslights_res_critical">储药器药量低于阈值[U] 严重警告</string>
<string name="statuslights_bat_warning">电池电量低于阈值[%] 警告</string>
<string name="statuslights_bat_critical">电池电量低于阈值[%] 严重警告</string>
<string name="iob">IOB活性胰岛素</string> <string name="iob">IOB活性胰岛素</string>
<string name="cob">COB活性碳水</string> <string name="cob">COB活性碳水</string>
<string name="virtualpump_firmware_label">固件</string> <string name="virtualpump_firmware_label">固件</string>
@ -550,6 +562,7 @@
<string name="danar_bluetooth_status">蓝牙状态</string> <string name="danar_bluetooth_status">蓝牙状态</string>
<string name="nav_about">关于</string> <string name="nav_about">关于</string>
<string name="smscommunicator_missingsmspermission">缺少 SMS 短信权限</string> <string name="smscommunicator_missingsmspermission">缺少 SMS 短信权限</string>
<string name="smscommunicator_missingphonestatepermission">缺少手机状态权限</string>
<string name="xdripstatus_settings">xDrip 状态 (手表)</string> <string name="xdripstatus_settings">xDrip 状态 (手表)</string>
<string name="xdripstatus">xDrip 状态线 (手表)</string> <string name="xdripstatus">xDrip 状态线 (手表)</string>
<string name="xdripstatus_shortname">xdrip</string> <string name="xdripstatus_shortname">xdrip</string>
@ -735,7 +748,6 @@
<string name="combo_pump_state_running">正在运行</string> <string name="combo_pump_state_running">正在运行</string>
<string name="combo_pump_action_cancelling_tbr">正在取消临时基础率</string> <string name="combo_pump_action_cancelling_tbr">正在取消临时基础率</string>
<string name="combo_pump_action_setting_tbr">正在设置临时基础率 (%1$d%% / %2$d 分钟)</string> <string name="combo_pump_action_setting_tbr">正在设置临时基础率 (%1$d%% / %2$d 分钟)</string>
<string name="combo_pump_action_bolusing">正在输注大剂量 (%.1f U)</string>
<string name="combo_pump_action_refreshing">正在刷新</string> <string name="combo_pump_action_refreshing">正在刷新</string>
<string name="combo_pump_unsupported_operation">泵不支持请求的操作</string> <string name="combo_pump_unsupported_operation">泵不支持请求的操作</string>
<string name="combo_low_suspend_forced_notification">不安全的用法: 扩展大剂量(方波) 或者双波被启用了,闭环只支持常规大剂量, 闭环已经被设置为6个小时的低血糖暂停模式(low-suspend only 6 hours).</string> <string name="combo_low_suspend_forced_notification">不安全的用法: 扩展大剂量(方波) 或者双波被启用了,闭环只支持常规大剂量, 闭环已经被设置为6个小时的低血糖暂停模式(low-suspend only 6 hours).</string>
@ -1001,6 +1013,7 @@
<string name="nth_objective">%1$d目标</string> <string name="nth_objective">%1$d目标</string>
<string name="poctech">Poctech</string> <string name="poctech">Poctech</string>
<string name="description_source_poctech">从 Poctech app 接收血糖值。</string> <string name="description_source_poctech">从 Poctech app 接收血糖值。</string>
<string name="description_source_tomato">从番茄app(喵喵设备) 接收血糖值</string>
<string name="high_temptarget_raises_sensitivity_title">高临时目标增加灵敏度</string> <string name="high_temptarget_raises_sensitivity_title">高临时目标增加灵敏度</string>
<string name="high_temptarget_raises_sensitivity_summary"><![CDATA[当临时目标 >=100 mg/dl (5.5 mmol/l) 时提高灵敏度]]></string> <string name="high_temptarget_raises_sensitivity_summary"><![CDATA[当临时目标 >=100 mg/dl (5.5 mmol/l) 时提高灵敏度]]></string>
<string name="low_temptarget_lowers_sensitivity_title">低临时目标降低灵敏度</string> <string name="low_temptarget_lowers_sensitivity_title">低临时目标降低灵敏度</string>
@ -1057,6 +1070,7 @@
<string name="mute_alert">静音</string> <string name="mute_alert">静音</string>
<string name="pump_alert">泵警报</string> <string name="pump_alert">泵警报</string>
<string name="log_site_changes">记录位置更换</string> <string name="log_site_changes">记录位置更换</string>
<string name="log_reservoir_changes">记录储药器更换</string>
<string name="log_tube_changes">记录管路更换</string> <string name="log_tube_changes">记录管路更换</string>
<string name="log_battery_changes">记录电池更换</string> <string name="log_battery_changes">记录电池更换</string>
<string name="log_operating_mode_changes">记录操作模式更改</string> <string name="log_operating_mode_changes">记录操作模式更改</string>
@ -1100,6 +1114,7 @@
<string name="short_status_last_connected">最后一次连接: %1$d 分钟前</string> <string name="short_status_last_connected">最后一次连接: %1$d 分钟前</string>
<string name="short_status_tbr">临时基础率: %1$d%% for %2$d / %3$d 分钟</string> <string name="short_status_tbr">临时基础率: %1$d%% for %2$d / %3$d 分钟</string>
<string name="short_status_extended">扩展: %1$.2f / %2$.2f U 为 %3$d 分钟</string> <string name="short_status_extended">扩展: %1$.2f / %2$.2f U 为 %3$d 分钟</string>
<string name="short_status_multiwave">多波: %1$.2f / %2$.2f U 持续时间 %3$d 分钟</string>
<string name="short_status_tdd">TDD(日输注总量): %1$.2f</string> <string name="short_status_tdd">TDD(日输注总量): %1$.2f</string>
<string name="short_status_reservoir">Reser.: %1$.2fU</string> <string name="short_status_reservoir">Reser.: %1$.2fU</string>
<string name="short_status_battery">电池: %1$d%%</string> <string name="short_status_battery">电池: %1$d%%</string>
@ -1113,6 +1128,16 @@
<string name="profile_per_unit">/U</string> <string name="profile_per_unit">/U</string>
<string name="dexcom_lognssensorchange_title">记录传感器更换至NS服务器</string> <string name="dexcom_lognssensorchange_title">记录传感器更换至NS服务器</string>
<string name="dexcom_lognssensorchange_summary">在传感器启动时在 NS服务器 自动创建事件 \"传感器更改\"</string> <string name="dexcom_lognssensorchange_summary">在传感器启动时在 NS服务器 自动创建事件 \"传感器更改\"</string>
<string name="tomato">番茄(喵喵)</string>
<string name="tomato_short">番茄</string>
<string name="dst_in_24h_warning">在24小时内或更少时间内更夏令时时间</string>
<string name="dst_loop_disabled_warning">不到3小时前夏令时时间变化了-已禁用闭环</string>
<string name="storage">内部储存空间不足</string>
<string name="diskfull">至少 剩余%1$d MB 内部存储!闭环已禁用!</string>
<string name="wrongformat">格式错误</string>
<string name="sms_wrongcode">错误的代码。命令取消</string>
<string name="notconfigured">未配置</string>
<string name="profileswitchcreated">配置文件切换已创建</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="other">%1$d </item> <item quantity="other">%1$d </item>
</plurals> </plurals>

View file

@ -152,8 +152,8 @@
<string name="constraints_violation">Constraints violation</string> <string name="constraints_violation">Constraints violation</string>
<string name="treatmentdeliveryerror">Bolus delivery error</string> <string name="treatmentdeliveryerror">Bolus delivery error</string>
<string name="tempbasaldeliveryerror">Tempbasal delivery error</string> <string name="tempbasaldeliveryerror">Tempbasal delivery error</string>
<string name="overview_newtempbasal_basalpercent">Basal value [%]</string> <string name="overview_newtempbasal_basalpercent">Basal value [%%]</string>
<string name="overview_newtempbasal_percent_label">% (100% = current)</string> <string name="overview_newtempbasal_percent_label">%% (100%% = current)</string>
<string name="setbasalquestion">Accept new temp basal:</string> <string name="setbasalquestion">Accept new temp basal:</string>
<string name="overview_treatment_label">Treatment</string> <string name="overview_treatment_label">Treatment</string>
<string name="overview_calculator_label">Calculator</string> <string name="overview_calculator_label">Calculator</string>
@ -276,7 +276,7 @@
<string name="danar_iob_label">Pump IOB</string> <string name="danar_iob_label">Pump IOB</string>
<string name="danar_dailyunits">Daily units</string> <string name="danar_dailyunits">Daily units</string>
<string name="pump_lastbolus_label">Last bolus</string> <string name="pump_lastbolus_label">Last bolus</string>
<string name="hoursago">%.1fh ago</string> <string name="hoursago">%1$.1fh ago</string>
<string name="danar_invalidinput">Invalid input data</string> <string name="danar_invalidinput">Invalid input data</string>
<string name="danar_valuenotsetproperly">Value not set properly</string> <string name="danar_valuenotsetproperly">Value not set properly</string>
<string name="reloadprofile">Reload profile</string> <string name="reloadprofile">Reload profile</string>
@ -582,7 +582,7 @@
<string name="patientage_summary">Please select patient age to setup safety limits</string> <string name="patientage_summary">Please select patient age to setup safety limits</string>
<string name="key_i_understand" translatable="false">I_understand</string> <string name="key_i_understand" translatable="false">I_understand</string>
<string name="Glimp">Glimp</string> <string name="Glimp">Glimp</string>
<string name="needwhitelisting">%s needs battery optimalization whitelisting for proper performance</string> <string name="needwhitelisting">%1$s needs battery optimalization whitelisting for proper performance</string>
<string name="loopsuspended">Loop suspended</string> <string name="loopsuspended">Loop suspended</string>
<string name="loopsuspendedfor">Suspended (%1$d m)</string> <string name="loopsuspendedfor">Suspended (%1$d m)</string>
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string> <string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
@ -624,9 +624,9 @@
<string name="key_statuslights_res_critical" translatable="false">key_statuslights_res_critical</string> <string name="key_statuslights_res_critical" translatable="false">key_statuslights_res_critical</string>
<string name="statuslights_res_critical">Threshold critical reservoir level [U]</string> <string name="statuslights_res_critical">Threshold critical reservoir level [U]</string>
<string name="key_statuslights_bat_warning" translatable="false">key_statuslights_bat_warning</string> <string name="key_statuslights_bat_warning" translatable="false">key_statuslights_bat_warning</string>
<string name="statuslights_bat_warning">Threshold warning battery level [%]</string> <string name="statuslights_bat_warning">Threshold warning battery level [%%]</string>
<string name="key_statuslights_bat_critical" translatable="false">key_statuslights_bat_critical</string> <string name="key_statuslights_bat_critical" translatable="false">key_statuslights_bat_critical</string>
<string name="statuslights_bat_critical">Threshold critical battery level [%]</string> <string name="statuslights_bat_critical">Threshold critical battery level [%%]</string>
<string name="iob">IOB</string> <string name="iob">IOB</string>
<string name="cob">COB</string> <string name="cob">COB</string>
<string name="virtualpump_firmware_label">Firmware</string> <string name="virtualpump_firmware_label">Firmware</string>
@ -869,7 +869,7 @@
<string name="combo_pump_state_running">Running</string> <string name="combo_pump_state_running">Running</string>
<string name="combo_pump_action_cancelling_tbr">Cancelling TBR</string> <string name="combo_pump_action_cancelling_tbr">Cancelling TBR</string>
<string name="combo_pump_action_setting_tbr">Setting TBR (%1$d%% / %2$d min)</string> <string name="combo_pump_action_setting_tbr">Setting TBR (%1$d%% / %2$d min)</string>
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string> <string name="combo_pump_action_bolusing">Bolusing (%1$.1f U)</string>
<string name="combo_pump_action_refreshing">Refreshing</string> <string name="combo_pump_action_refreshing">Refreshing</string>
<string name="combo_pump_unsupported_operation">Requested operation not supported by pump</string> <string name="combo_pump_unsupported_operation">Requested operation not supported by pump</string>
<string name="combo_low_suspend_forced_notification">Unsafe usage: extended or multiwave boluses are active. Loop mode has been set to low-suspend only 6 hours. Only normal boluses are supported in loop mode</string> <string name="combo_low_suspend_forced_notification">Unsafe usage: extended or multiwave boluses are active. Loop mode has been set to low-suspend only 6 hours. Only normal boluses are supported in loop mode</string>
@ -1326,6 +1326,15 @@
<string name="sms_wrongcode">Wrong code. Command cancelled.</string> <string name="sms_wrongcode">Wrong code. Command cancelled.</string>
<string name="notconfigured">Not configured</string> <string name="notconfigured">Not configured</string>
<string name="profileswitchcreated">Profile switch created</string> <string name="profileswitchcreated">Profile switch created</string>
<string name="versionChecker">Version Checker</string>
<string name="key_last_time_this_version_detected" translatable="false">last_time_this_version_detected</string>
<string name="key_last_versionchecker_warning" translatable="false">last_versionchecker_waring</string>
<string name="key_last_versionchecker_plugin_warning" translatable="false">last_versionchecker_plugin_waring</string>
<string name="old_version">old version</string>
<string name="very_old_version">very old version</string>
<string name="new_version_warning">New version for at least %1$d days available! Fallback to LGS after 60 days, loop will be disabled after 90 days</string>
<plurals name="objective_days"> <plurals name="objective_days">
<item quantity="one">%1$d day</item> <item quantity="one">%1$d day</item>
<item quantity="other">%1$d days</item> <item quantity="other">%1$d days</item>

View file

@ -282,10 +282,13 @@ public class AAPSMocker {
PowerMockito.when(ProfileFunctions.getInstance().getProfileName()).thenReturn(TESTPROFILENAME); PowerMockito.when(ProfileFunctions.getInstance().getProfileName()).thenReturn(TESTPROFILENAME);
} }
public static void mockIobCobCalculatorPlugin() { public static IobCobCalculatorPlugin mockIobCobCalculatorPlugin() {
PowerMockito.mockStatic(IobCobCalculatorPlugin.class); PowerMockito.mockStatic(IobCobCalculatorPlugin.class);
IobCobCalculatorPlugin iobCobCalculatorPlugin = PowerMockito.mock(IobCobCalculatorPlugin.class); IobCobCalculatorPlugin iobCobCalculatorPlugin = PowerMockito.mock(IobCobCalculatorPlugin.class);
PowerMockito.when(IobCobCalculatorPlugin.getPlugin()).thenReturn(iobCobCalculatorPlugin); PowerMockito.when(IobCobCalculatorPlugin.getPlugin()).thenReturn(iobCobCalculatorPlugin);
Object dataLock = new Object();
PowerMockito.when(iobCobCalculatorPlugin.getDataLock()).thenReturn(dataLock);
return iobCobCalculatorPlugin;
} }
private static MockedBus bus = new MockedBus(); private static MockedBus bus = new MockedBus();

View file

@ -289,7 +289,7 @@ public class ConstraintsCheckerTest {
//SafetyPlugin //SafetyPlugin
when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(pump); when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(pump);
constraintChecker = new ConstraintChecker(mainApp); constraintChecker = new ConstraintChecker();
safetyPlugin = SafetyPlugin.getPlugin(); safetyPlugin = SafetyPlugin.getPlugin();
objectivesPlugin = ObjectivesPlugin.getPlugin(); objectivesPlugin = ObjectivesPlugin.getPlugin();

View file

@ -0,0 +1,230 @@
package info.nightscout.androidaps.plugins.general.versionChecker
import com.squareup.otto.Bus
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.logging.L
import info.nightscout.androidaps.utils.SP
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers
import org.mockito.Mockito.*
import org.powermock.api.mockito.PowerMockito
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.modules.junit4.PowerMockRunner
@RunWith(PowerMockRunner::class)
class VersionCheckerUtilsKtTest {
@Test
fun findVersionMatchesRegularVersion() {
val buildGradle = """blabla
| android {
| aosenuthoae
| }
| version = "2.2.2"
| appName = "Aaoeu"
""".trimMargin()
val detectedVersion: String? = buildGradle.byteInputStream().findVersion()
assertEquals("2.2.2", detectedVersion)
}
// In case we merge a "x.x.x-dev" into master, don't see it as update.
@Test
fun `should return null on non-digit versions on master`() {
val buildGradle = """blabla
| android {
| aosenuthoae
| }
| version = "2.2.2-nefarious-underground-mod"
| appName = "Aaoeu"
""".trimMargin()
val detectedVersion: String? = buildGradle.byteInputStream().findVersion()
assertEquals(null, detectedVersion)
}
@Test
fun findVersionMatchesDoesNotMatchErrorResponse() {
val buildGradle = """<html><body>Balls! No build.gradle here. Move along</body><html>"""
val detectedVersion: String? = buildGradle.byteInputStream().findVersion()
assertEquals(null, detectedVersion)
}
@Test
fun testVersionStrip() {
assertEquals("2.2.2", "2.2.2".versionStrip())
assertEquals("2.2.2", "2.2.2-dev".versionStrip())
assertEquals("2.2.2", "2.2.2dev".versionStrip())
assertEquals("2.2.2", """"2.2.2"""".versionStrip())
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `should find update1`() {
val bus = prepareBus()
compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `should find update2`() {
val bus = prepareBus()
compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1-dev")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `should find update3`() {
val bus = prepareBus()
compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.1")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `should find update4`() {
val bus = prepareBus()
compareWithCurrentVersion(newVersion = "2.2", currentVersion = "2.1.1")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `should find update5`() {
val bus = prepareBus()
compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2-dev")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `should find update6`() {
val bus = prepareBus()
compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2dev")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `find same version`() {
val buildGradle = """blabla
| android {
| aosenuthoae
| }
| version = "2.2.2"
| appName = "Aaoeu"
""".trimMargin()
val bus = prepareBus()
compareWithCurrentVersion(buildGradle.byteInputStream().findVersion(), currentVersion = "2.2.2")
verify(bus, times(0)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(MainApp::class, L::class, SP::class)
fun `find higher version`() {
val buildGradle = """blabla
| android {
| aosenuthoae
| }
| version = "3.0"
| appName = "Aaoeu"
""".trimMargin()
val bus = prepareBus()
compareWithCurrentVersion(buildGradle.byteInputStream().findVersion(), currentVersion = "2.2.2")
verify(bus, times(1)).post(any())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyStatic(SP::class.java, times(1))
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
PowerMockito.verifyNoMoreInteractions(SP::class.java)
}
@Test
@PrepareForTest(System::class)
fun `set time`() {
PowerMockito.spy(System::class.java)
PowerMockito.`when`(System.currentTimeMillis()).thenReturn(100L)
assertEquals(100L, System.currentTimeMillis())
}
private fun prepareBus(): Bus {
PowerMockito.mockStatic(MainApp::class.java)
val mainApp = mock<MainApp>(MainApp::class.java)
`when`(MainApp.instance()).thenReturn(mainApp)
val bus = mock(Bus::class.java)
`when`(MainApp.bus()).thenReturn(bus)
`when`(MainApp.gs(ArgumentMatchers.anyInt())).thenReturn("some dummy string")
prepareSP()
return bus
}
private fun prepareSP() {
PowerMockito.mockStatic(SP::class.java)
}
private fun prepareLogging() {
PowerMockito.mockStatic(L::class.java)
`when`(L.isEnabled(any())).thenReturn(true)
}
}

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.data; package info.nightscout.androidaps.plugins.iob.iobCobCalculatorPlugin;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
@ -16,6 +16,7 @@ import java.util.List;
import info.AAPSMocker; import info.AAPSMocker;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.BgReading;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSgv; import info.nightscout.androidaps.plugins.general.nsclient.data.NSSgv;
import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DateUtil;
@ -133,10 +134,7 @@ public class GlucoseStatusTest {
public void initMocking() { public void initMocking() {
AAPSMocker.mockMainApp(); AAPSMocker.mockMainApp();
AAPSMocker.mockStrings(); AAPSMocker.mockStrings();
iobCobCalculatorPlugin = AAPSMocker.mockIobCobCalculatorPlugin();
PowerMockito.mockStatic(IobCobCalculatorPlugin.class);
iobCobCalculatorPlugin = mock(IobCobCalculatorPlugin.class);
when(IobCobCalculatorPlugin.getPlugin()).thenReturn(iobCobCalculatorPlugin);
PowerMockito.mockStatic(DateUtil.class); PowerMockito.mockStatic(DateUtil.class);
when(DateUtil.now()).thenReturn(1514766900000L + T.mins(1).msecs()); when(DateUtil.now()).thenReturn(1514766900000L + T.mins(1).msecs());

View file

@ -9,7 +9,7 @@ import org.powermock.modules.junit4.PowerMockRunner;
import info.AAPSMocker; import info.AAPSMocker;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;

View file

@ -1,6 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.3.21'
repositories { repositories {
google() google()
jcenter() jcenter()
@ -16,6 +17,7 @@ buildscript {
// in the individual module build.gradle files // in the individual module build.gradle files
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT' classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} }
} }