Compare commits

...
25 Commits
Author SHA1 Message Date
darken b02b31043b Release: 2.18.0-rc1 2025-09-03 19:41:29 +02:00
darken 6786b5aa8a Remove Norwegian (Bokmål) from supported languages. 2025-09-03 19:41:12 +02:00
darken 8577e7bae8 Release: 2.18.0-rc0 2025-09-03 19:08:48 +02:00
darken df88399e7a Remove BUILDTIME BuildConfig field
This commit removes the `BUILDTIME` field from `BuildConfig` across all modules. This change improves build caching and reproducibility by eliminating a value that changed with every build.

The `BUILDTIME` was previously used in `VERSION_DESCRIPTION_LONG` but is no longer included.
2025-08-31 15:30:12 +02:00
darken 16392d5721 Refactor buildSrc and update dependencies
This commit refactors the `buildSrc` module by:
- Removing the `setupLibraryDefaults()` extension function from `ProjectConfig.kt` as its functionality is largely covered by standard Gradle plugin configurations.
- Inlining version numbers for Moshi and various testing libraries directly into `Dependencies.kt`, removing them from `Versions.kt`. This simplifies version management for these specific libraries.
- Removing unused version declarations from `Versions.kt`.

Additionally, this commit updates the following dependencies:
- Kotlin from 2.1.21 to 2.2.10
- Android Gradle Plugin from 8.11.0 to 8.12.2
- KSP from 2.1.21-2.0.1 to 2.2.10-2.0.2
- Dagger from 2.56.2 to 2.57.1
- AndroidX Navigation from 2.8.9 to 2.9.3

The `targetSdk` was also removed from the `app-common` module's `defaultConfig` as it's typically inherited or set at the app level.
2025-08-31 15:30:12 +02:00
darken 2edf5411ce Allow keeping "connected" notification after disconnect
This commit introduces a new setting that allows users to keep the "connected" notification visible even after the monitored device disconnects.

When this setting is enabled and the "Extra notification" is also active, the `MonitorWorker` will no longer cancel the connected notification upon finishing. This provides users with the option to see the last known battery levels after disconnection.

A new preference `keepConnectedNotificationAfterDisconnect` is added to `GeneralSettings` and the UI.
2025-08-31 10:11:45 +02:00
darken 89e46d3858 Update translations 2025-08-30 17:12:36 +02:00
darken da45eb5dda Update translations 2025-08-30 17:12:36 +02:00
darken a1868f495d Update translations 2025-08-30 17:12:36 +02:00
darken ceb5034c3b Update translations 2025-08-30 17:12:36 +02:00
darken 02ff7089c0 Refactor GPlay billing error handling and translations
This commit introduces localized error messages for Google Play billing issues and refactors the error handling in `UpgradeRepoGplay`.

- `BillingException` and `BillingResultException` now implement `HasLocalizedError` to provide user-friendly error messages.
- New string translations for billing error labels and descriptions have been added for various languages.
- `UpgradeRepoGplay` now includes an `error` field in its `Info` state to propagate billing errors.
- The `upgradeInfo` flow in `UpgradeRepoGplay` has been updated with a `retryWhen` operator to handle errors more gracefully. If an error occurs but the pro state was recent, it emits a grace period state. Otherwise, it emits the error.
- `OverviewFragmentVM` now observes `upgradeState` and posts any non-pro errors to `errorEvents` for display.
2025-08-30 17:12:36 +02:00
darken 2fa33b13a3 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	.claude/settings.json
2025-08-30 16:48:41 +02:00
darken 96a654638a Claude settings 2025-08-30 16:48:22 +02:00
darken b4aa7b0815 Claude settings 2025-08-30 16:48:04 +02:00
darken df5389c27e Configure Jekyll include and exclude settings
This commit updates the Jekyll configuration file (`_config.yml`) to:
- Include `README.md` and `CHANGELOG.md` in the site build.
- Exclude `CONTRIBUTING.md` and `CLAUDE.md` from the site build.
2025-08-30 16:44:26 +02:00
darken 0611ec0e08 Add CLAUDE.md to guide AI code generation
This commit introduces a `CLAUDE.md` file.
This file contains instructions and context for the Claude AI to assist with development in this repository. It includes:
- Common build, test, and code quality commands.
- An overview of the project's multi-module architecture, core patterns (MVVM, DI with Hilt, Coroutines, Repository), and key components like `PodMonitor` and the reaction system.
- Details on build flavors (FOSS, Google Play) and build types (debug, beta, release).
- A description of the data flow architecture.
- Information on the testing strategy and key dependencies.
- Development notes regarding Bluetooth LE implementation and multi-platform considerations for phone and Wear OS.
2025-08-30 16:42:28 +02:00
darken c325112b44 Apply translation updates and add Norwegian Bokmål
This commit incorporates various translation improvements across multiple languages (Ukrainian, Greek, French, Turkish, Spanish (Mexico), Arabic, Korean, Urdu (India), Indonesian, Romanian, Zulu) for UI strings and Play Store metadata.

Additionally, this commit introduces new translations for Norwegian Bokmål (nb) for the Play Store listing (title, short description, full description) and adds initial string resources for Romansh (rm).
2025-08-30 16:42:28 +02:00
darken 65f9e1d9db Release: 2.17.6-rc0 2025-07-03 00:19:40 +02:00
darken c97c8f4852 Refactor: Introduce EdgeToEdgeHelper for consistent inset handling
This commit introduces an `EdgeToEdgeHelper` class to centralize and simplify the application of window insets for edge-to-edge display.

Key changes:
- Created `EdgeToEdgeHelper` to manage padding based on system bar insets.
- Migrated various Fragments (`OverviewFragment`, `OnboardingFragment`, `SettingsFragment`, `TroubleShooterFragment`) to use `EdgeToEdgeHelper` for consistent padding.
- Removed manual inset handling from `Activity2` and `Fragment2` as `EdgeToEdgeHelper` now manages this.
- Enabled edge-to-edge display in `MainActivity`.
- Minor updates to `BillingClientConnection` for product details fetching and `build.gradle.kts` for configuration.
2025-07-03 00:14:58 +02:00
darken 6b2073eff2 Update AGP, SDK, and BillingClient
This commit updates:
- Android Gradle Plugin to 8.11.0
- Compile/Target SDK to 36
- Google Play Billing Library to 8.0.0

The `BillingClient` is updated to use the new `PendingPurchasesParams` and `QueryPurchasesParams` APIs.
2025-07-03 00:14:58 +02:00
darken 2b08d9a4d0 Release: 2.17.5-rc0 2025-06-30 14:13:41 +02:00
darken 977f135c50 Allow empty keys to clear IRK/EncKey
This commit modifies the handling of Identity Resolving Key (IRK) and Encryption Key (EncKey) to allow users to clear these values by providing an empty input.

Specifically:
- In `GeneralSettingsFragment.kt`, the `onKey` callbacks for both IRK and EncKey dialogs now use `takeIf { it.isNotEmpty() }` after converting the input hex string to a byte array. This ensures that an empty input results in `null` being set for the respective key.
- In `PodMonitor.kt`, when determining the main device, `mainDeviceIdentityKey.value` is now checked with `takeIf { it.isNotEmpty() }` to ensure an empty IRK is treated as no IRK being configured.
- In `AppleFactory.kt`, when attempting to decrypt the private payload, `mainDeviceEncryptionKey.value` is now checked with `takeIf { it.isNotEmpty() }` to ensure an empty EncKey prevents decryption attempts.
2025-06-30 14:12:32 +02:00
darken 3c777d377e Only use IRK match for main device if IRK is configured
This commit modifies `PodMonitor.kt` to ensure that the `isIRKMatch` flag is only used to determine the main device if an Identity Resolving Key (IRK) is actually configured in the general settings.

If no IRK is set, the main device determination will fall back to other logic, preventing a device from being incorrectly selected as "main" solely based on an IRK match when no specific IRK is being looked for.
2025-06-30 14:12:32 +02:00
darken b98994f2f1 Revert "Fix IRK-only mode to prevent heuristic fallback + auto battery optimization"
This reverts commit ca5041b27d.
2025-06-30 14:12:32 +02:00
wnerhs 85860a53bf Fix IRK-only mode to prevent heuristic fallback + auto battery optimization
- Prevent heuristic device detection when IRK/ENC keys are configured
- Maintain last IRK-matched device state instead of fallback
- Auto-enable LOW_POWER scan mode when IRK device is found
- Fixes false positives in crowded places
2025-06-30 14:12:32 +02:00
143 changed files with 816 additions and 256 deletions
+21
View File
@@ -0,0 +1,21 @@
{
"permissions": {
"allow": [
"mcp__ide__getDiagnostics",
"Bash(./gradlew tasks:*)",
"Bash(./gradlew:*)",
"Bash(find:*)",
"Bash(ls:*)",
"Bash(grep:*)",
"Bash(rg:*)",
"WebSearch",
"WebFetch(domain:support.google.com)",
"WebFetch(domain:github.com)",
"WebFetch(domain:mvnrepository.com)",
"WebFetch(domain:kotlinlang.org)",
"WebFetch(domain:developer.android.com)",
"WebFetch(domain:issuetracker.google.com)"
],
"deny": []
}
}
+144
View File
@@ -0,0 +1,144 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Commands
### Build Commands
```bash
# Build debug version
./gradlew assembleDebug
# Build all variants (FOSS and Google Play flavors)
./gradlew assemble
# Build specific flavor and type
./gradlew assembleFossDebug
./gradlew assembleGplayRelease
# Build app bundles for Play Store
./gradlew bundleGplayRelease
```
### Testing Commands
```bash
# Run all unit tests
./gradlew test
# Run unit tests for specific variant
./gradlew testFossDebugUnitTest
# Run instrumentation tests (requires connected device/emulator)
./gradlew connectedAndroidTest
./gradlew connectedFossDebugAndroidTest
# Run all checks (lint + tests)
./gradlew check
```
### Code Quality Commands
```bash
# Run lint for all variants
./gradlew lint
# Run lint for specific variant
./gradlew lintFossDebug
# Auto-fix lint issues where possible
./gradlew lintFix
# Update lint baseline
./gradlew updateLintBaseline
```
### Release Commands
```bash
./gradlew assembleFossRelease assembleGplayRelease
```
## Architecture Overview
### Multi-Module Structure
- **app/**: Main Android application with FOSS and Google Play flavors
- **app-common/**: Shared code between main app and Wear OS
- **app-wear/**: Dedicated Wear OS companion application
### Core Architecture Patterns
- **MVVM**: ViewModels with LiveData/StateFlow for UI state management
- **Dependency Injection**: Hilt/Dagger for dependency management
- **Coroutines**: Extensive use of Kotlin coroutines for async operations
- **Repository Pattern**: Data layer abstraction for monitoring and settings
### Key Components
#### PodMonitor System
- `PodMonitor`: Core service that detects and tracks AirPods via Bluetooth LE
- `MonitorControl`: Manages background monitoring worker lifecycle
- `MonitorWorker`: Background worker that continuously scans for AirPods
- `BluetoothEventReceiver`: Handles system Bluetooth events
#### Reaction System
- `ReactionSettingsFragment`: Configuration for popup notifications
- `PopUpWindow`: Displays AirPods status when case is opened
- `PopUpPodViewFactory`: Creates UI components for different pod models
#### Common Utilities
- `EdgeToEdgeHelper`: Handles Android edge-to-edge display insets
### Build Configuration
#### Flavors
- **FOSS**: Open-source version without Google Play dependencies
- **Google Play**: Version with billing client for in-app purchases
#### Build Types
- **debug**: Unobfuscated, full logging, no minification
- **beta**: Obfuscated, production-ready with strict lint checks
- **release**: Fully optimized for production distribution
### Data Flow Architecture
The app follows a unidirectional data flow:
1. `BluetoothEventReceiver` detects Bluetooth events
2. `MonitorWorker` scans for AirPods beacon data
3. `PodMonitor` processes and stores device information
4. ViewModels observe monitor data via repositories
5. UI components react to ViewModel state changes
6. `ReactionSystem` triggers popups and notifications
### Testing Strategy
- **Unit Tests**: Located in `app-common/src/test/` for shared logic
- **Test Flavors**: Separate test configurations for FOSS and Google Play variants
### Key Dependencies
- **Hilt**: Dependency injection framework
- **AndroidX Navigation**: Fragment navigation with SafeArgs
- **WorkManager**: Background task scheduling for monitoring
- **Moshi**: JSON serialization for configuration and debugging
- **Material Design**: UI components following Material Design guidelines
## Development Notes
### Bluetooth LE Implementation
The app uses Android's Bluetooth LE APIs to scan for Apple device advertisements. The core scanning logic is in
`MonitorWorker` which runs as a long-lived background task.
### Multi-Platform Considerations
Code shared between phone and Wear OS apps is placed in `app-common`. When modifying shared functionality, ensure
compatibility across both platforms.
+1 -1
View File
@@ -1 +1 @@
2.17.4-rc0 21704000
2.18.0-rc1 21800010
+4
View File
@@ -14,6 +14,8 @@ author: "by Matthias Urhahn"
include:
- PRIVACY_POLICY.md
- README.md
- CHANGELOG.md
exclude:
- buildSrc
- gradle/wrapper
@@ -24,3 +26,5 @@ exclude:
- app
- app-common
- app-wear
- CONTRIBUTING.md
- CLAUDE.md
+1 -2
View File
@@ -13,7 +13,6 @@ android {
defaultConfig {
minSdk = ProjectConfig.minSdk
targetSdk = ProjectConfig.targetSdk
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
@@ -22,7 +21,6 @@ android {
buildConfigField("String", "VERSION_NAME", "\"${ProjectConfig.Version.name}\"")
buildConfigField("String", "APPLICATION_ID", "\"${ProjectConfig.packageName}\"")
buildConfigField("String", "GITSHA", "\"${lastCommitHash()}\"")
buildConfigField("String", "BUILDTIME", "\"${buildTime()}\"")
}
buildFeatures {
@@ -78,6 +76,7 @@ android {
unitTests {
isIncludeAndroidResources = true
}
//noinspection WrongGradleMethod
tasks.withType<Test> {
useJUnitPlatform()
}
@@ -37,7 +37,6 @@ object BuildConfigWrap {
val VERSION_CODE: Long = BuildConfig.VERSION_CODE.toLong()
val VERSION_NAME: String = BuildConfig.VERSION_NAME
val GIT_SHA: String = BuildConfig.GITSHA
val BUILDTIME: String = BuildConfig.BUILDTIME
val VERSION_DESCRIPTION_LONG: String = "v$VERSION_NAME ($VERSION_CODE) [$GIT_SHA] ${FLAVOR}_$BUILD_TYPE"
val VERSION_DESCRIPTION_SHORT: String = "v$VERSION_NAME [$GIT_SHA] $FLAVOR"
@@ -3,7 +3,6 @@ package eu.darken.capod.common.uix
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowCompat
import androidx.lifecycle.LiveData
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.log
@@ -16,8 +15,6 @@ abstract class Activity2 : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
log(tag, VERBOSE) { "onCreate(savedInstanceState=$savedInstanceState)" }
super.onCreate(savedInstanceState)
WindowCompat.setDecorFitsSystemWindows( window, false )
}
override fun onResume() {
@@ -7,8 +7,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.LayoutRes
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import eu.darken.capod.common.debug.logging.Logging.Priority.VERBOSE
import eu.darken.capod.common.debug.logging.log
@@ -42,17 +40,6 @@ abstract class Fragment2(@LayoutRes val layoutRes: Int?) : Fragment(layoutRes ?:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
log(tag, VERBOSE) { "onViewCreated(view=$view, savedInstanceState=$savedInstanceState)" }
super.onViewCreated(view, savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets ->
val systemWindowInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(
v.paddingLeft,
systemWindowInsets.top,
v.paddingRight,
0
)
insets
}
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
@@ -17,6 +17,8 @@ interface UpgradeRepo {
val isPro: Boolean
val upgradedAt: Instant?
val error: Throwable?
}
enum class Type {
@@ -30,6 +30,9 @@ class GeneralSettings @Inject constructor(
val useExtraMonitorNotification = preferences.createFlowPreference("core.monitor.notification.connected", false)
val keepConnectedNotificationAfterDisconnect =
preferences.createFlowPreference("core.monitor.notification.connected.keepafterdisconnected", false)
val scannerMode = preferences.createFlowPreference("core.scanner.mode", ScannerMode.BALANCED, moshi)
val showAll = preferences.createFlowPreference("core.showall.enabled", true)
@@ -61,6 +64,7 @@ class GeneralSettings @Inject constructor(
override val preferenceDataStore: PreferenceDataStore = PreferenceStoreMapper(
monitorMode,
useExtraMonitorNotification,
keepConnectedNotificationAfterDisconnect,
scannerMode,
showAll,
minimumSignalQuality,
@@ -198,9 +198,10 @@ class PodMonitor @Inject constructor(
}
private fun determineMainDevice(pods: List<PodDevice>): PodDevice? {
val irkHit = pods.filterIsInstance<ApplePods>().firstOrNull { it.flags.isIRKMatch }
if (irkHit != null) {
log(TAG) { "Main device determined via IRK: $irkHit" }
val identityKey = generalSettings.mainDeviceIdentityKey.value?.takeIf { it.isNotEmpty() }
if (identityKey != null) {
val irkHit = pods.filterIsInstance<ApplePods>().firstOrNull { it.flags.isIRKMatch }
log(TAG) { "IRK is configured, main device irkHit=$irkHit" }
return irkHit
}
@@ -71,7 +71,7 @@ class AppleFactory @Inject constructor(
if (!isIrkMatch) return@run null
if (proximityMessage.data.size != ProximityPairing.PAIRING_MESSAGE_LENGTH) return@run null
val encKey = generalSettings.mainDeviceEncryptionKey.value
val encKey = generalSettings.mainDeviceEncryptionKey.value?.takeIf { it.isNotEmpty() }
if (encKey == null) return@run null
val encrypted = proximityMessage.data.takeLast(16).toUByteArray().toByteArray()
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_name">CAPod</string>
<string name="app_name_pro">CAPod Pro</string>
<string name="app_name_pro">CAPod et Pro</string>
<string name="app_name_foss">CAPod FOSS</string>
<string name="general_value_not_available_label">غير متوفر</string>
<string name="general_error_label">خطأ</string>
@@ -51,7 +51,7 @@
<string name="pods_unknown_contact_dev">هذا جهاز غير معروف لكنه يستخدم صيغة رسالة مشابهة. دعنا نضيف دعما لها. اتصل بي :)</string>
<string name="pods_none_label_short">لا يوجد جهاز</string>
<string name="pods_charging_label">في حالة الشحن</string>
<string name="pods_inear_label">في الأذن</string>
<string name="pods_inear_label">في الأذن نعم</string>
<string name="pods_microphone_label">ميكروفون</string>
<string name="pods_yours">الخاصة بك</string>
<string name="headset_being_worn_label">يتم ارتداؤها</string>
@@ -21,7 +21,7 @@
<string name="permission_background_location_label">Πρόσβαση τοποθεσίας στο παρασκήνιο</string>
<string name="permission_background_location_description">Το CAPod χρησιμοποιεί \"Πρόσβαση τοποθεσίας στο παρασκήνιο\" για να ενεργοποιεί λειτουργίες όπως \"Εμφάνιση αναδυόμενου\" και \"Αυτόματη σύνδεση\" ενώ η εφαρμογή είναι κλειστή. Η πρόσβαση τοποθεσίας στο παρασκήνιο επιτρέπει στην εφαρμογή να λαμβάνει δεδομένα χαμηλής ενέργειας Bluetooth ενώ βρίσκεται στο παρασκήνιο. Αυτή η εφαρμογή ΔΕΝ θα χρησιμοποιεί δεδομένα Bluetooth για τον προσδιορισμό της τοποθεσία σας.</string>
<string name="permission_ignore_battery_optimizations_label">Απενεργοποίηση βελτιστοποιήσεων μπαταρίας</string>
<string name="permission_ignore_battery_optimizations_description">Οι βελτιστοποιήσεις μπαταρίας εμποδίζουν αυτήν την εφαρμογή να λαμβάνει αξιόπιστα δεδομένα Bluetooth ενώ η εφαρμογή βρίσκεται στο παρασκήνιο.</string>
<string name="permission_ignore_battery_optimizations_description">Οι βελτιστοποιήσεις μπαταρίας εμποδίζουν αυτήν την εφαρμογή από το να λαμβάνει αξιόπιστα δεδομένα Bluetooth ενώ η εφαρμογή βρίσκεται στο παρασκήνιο.</string>
<string name="permission_required_title">Η ακόλουθη άδεια είναι απαραίτητη:</string>
<string name="permission_system_alert_window_label">Παράθυρο Ειδοποίησης Συστήματος</string>
<string name="permission_system_alert_window_description">Επιτρέψτε στο CAPod να εμφανίζεται πάνω από άλλες εφαρμογές για να είναι δυνατή η λειτουργία \"Εμφάνιση αναδυόμενου\".</string>
@@ -60,5 +60,5 @@
<string name="last_seen_x">Τελευταία εμφάνιση: %s</string>
<string name="first_seen_x">Πρώτη εμφάνιση: %s</string>
<string name="permission_post_notifications_label">Εμφάνιση ειδοποιήσεων</string>
<string name="permission_post_notifications_description">"Επιτρέψτε στην εφαρμογή να εμφανίζει ειδοποιήσεις σχετικά με τα AirPods σας, π.χ. την τρέχουσα κατάστασή τους ενώ είστε συνδεδεμένοι."</string>
<string name="permission_post_notifications_description">"Επιτρέψτε στην εφαρμογή να εμφανίζει ειδοποιήσεις σχετικά με τα AirPods σας, π.χ. την τρέχουσα κατάστασή τους ενώ είναι συνδεδεμένα."</string>
</resources>
@@ -3,11 +3,17 @@
<string name="app_name">CAPod</string>
<string name="app_name_pro">CAPod Pro</string>
<string name="app_name_foss">CAPod FOSS</string>
<string name="general_value_not_available_label">N/D</string>
<string name="general_grant_permission_action">Conceder permiso</string>
<string name="overview_nomaindevice_label">Ningún dispositivo principal</string>
<string name="overview_nomaindevice_description">Es poco probable que todos los dispositivos detectados sean tuyos. Enciende y conecta tu dispositivo o ajusta la configuración.</string>
<string name="overview_bluetooth_disabled_label">Bluetooth desactivado</string>
<string name="overview_bluetooth_disabled_description">Bluetooth está desactivado, actívalo ;)</string>
<string name="permission_bluetooth_connect_label">Conexión Bluetooth</string>
<string name="permission_bluetooth_connect_description">Esta aplicacion requiere el permiso \"Conexión Bluetooth\" para interactuar con los dispositivos vinculados e iniciar las conexiones.</string>
<string name="permission_bluetooth_scan_label">Escaneo Bluetooth</string>
<string name="permission_bluetooth_scan_description">El permiso \"Escaneo Bluetooth\" permite que esta aplicación descubra y reciba datos de Bluetooth de dispositivos cercanos como tus AirPods.</string>
<string name="permission_bluetooth_label">Bluetooth</string>
<string name="permission_bluetooth_description">Esta aplicacion requiere el permiso \"Bluetooth\" para conectarse a los dispositivos vinculados.</string>
<string name="permission_access_fine_location_label">Acceso a la ubicación precisa</string>
<string name="permission_access_fine_location_description">CAPod utiliza el permiso de \"ubicación precisa\" para recibir Datos de Bluetooth de bajo consumo. Sus auriculares utilizan la tecnología Datos de Bluetooth de bajo consumo para transmitir su estado. Esta aplicación NO utilizará datos de Bluetooth para determinar su ubicación.</string>
@@ -15,6 +21,18 @@
<string name="permission_background_location_description">CAPod usa el \"acceso a la ubicación en segundo plano\" para habilitar funciones como \"Mostrar ventana emergente\" y \"Conexión automática\" mientras la aplicación está cerrada. El acceso a la ubicación en segundo plano permite que la aplicación reciba datos de Bluetooth de bajo consumo mientras está en segundo plano. Esta aplicación NO utilizará datos de Bluetooth para determinar su ubicación.</string>
<string name="permission_ignore_battery_optimizations_label">Deshabilitar optimizaciones de batería</string>
<string name="permission_ignore_battery_optimizations_description">Las optimizaciones de la batería evitan que esta aplicación reciba datos de Bluetooth de manera confiable mientras la aplicación está en segundo plano.</string>
<string name="permission_required_title">Se requiere el siguiente permiso:</string>
<string name="permission_system_alert_window_label">Ventana de alerta del sistema</string>
<string name="permission_system_alert_window_description">Permitir que CAPod se dibuje sobre otras aplicaciones para hacer posible la función \"Mostrar PopUp\".</string>
<string name="settings_scanner_mode_lowpower_label">Bajo consumo</string>
<string name="settings_scanner_mode_balanced_label">Equilibrado</string>
<string name="settings_scanner_mode_lowlatency_label">Baja latencia</string>
<string name="settings_monitor_mode_manual_label">Cuando la app está abierta</string>
<string name="settings_monitor_mode_automatic_label">Cuando el dispositivo está conectado</string>
<string name="settings_monitor_mode_always_label">Siempre</string>
<string name="settings_reaction_autoconnect_whenseen_label">Al verse</string>
<string name="settings_reaction_autoconnect_caseopen_label">Estuche abierto</string>
<string name="settings_reaction_autoconnect_inear_label">En el oído</string>
<string name="pods_dual_left_label">Audífono izquierdo</string>
<string name="pods_dual_right_label">Audífono derecho</string>
<string name="pods_case_label">Estuche</string>
@@ -36,29 +54,10 @@
<string name="pods_microphone_label">Micrófono</string>
<string name="pods_yours">Tuyos</string>
<string name="headset_being_worn_label">En uso</string>
<string name="general_value_not_available_label">N/D</string>
<string name="general_error_label">Error</string>
<string name="overview_nomaindevice_label">Ningún dispositivo principal</string>
<string name="overview_nomaindevice_description">Es poco probable que todos los dispositivos detectados sean tuyos. Enciende y conecta tu dispositivo o ajusta la configuración.</string>
<string name="overview_bluetooth_disabled_label">Bluetooth desactivado</string>
<string name="overview_bluetooth_disabled_description">Bluetooth está desactivado, actívalo ;)</string>
<string name="permission_bluetooth_label">Bluetooth</string>
<string name="permission_required_title">Se requiere el siguiente permiso:</string>
<string name="permission_system_alert_window_label">Ventana de alerta del sistema</string>
<string name="permission_system_alert_window_description">Permitir que CAPod se dibuje sobre otras aplicaciones para hacer posible la función \"Mostrar PopUp\".</string>
<string name="settings_scanner_mode_lowpower_label">Bajo consumo</string>
<string name="settings_scanner_mode_balanced_label">Equilibrado</string>
<string name="settings_scanner_mode_lowlatency_label">Baja latencia</string>
<string name="settings_monitor_mode_manual_label">Cuando la app está abierta</string>
<string name="settings_monitor_mode_automatic_label">Cuando el dispositivo está conectado</string>
<string name="settings_monitor_mode_always_label">Siempre</string>
<string name="settings_reaction_autoconnect_whenseen_label">Al verse</string>
<string name="settings_reaction_autoconnect_caseopen_label">Estuche abierto</string>
<string name="settings_reaction_autoconnect_inear_label">En el oído</string>
<string name="headset_not_being_worn_label">No se está usando</string>
<string name="pods_case_unknown_state">Estado desconocido</string>
<string name="last_seen_x">Visto por última vez: %s</string>
<string name="first_seen_x">Visto por primera vez: %s</string>
<string name="permission_post_notifications_label">Mostrar notificaciones</string>
<string name="permission_post_notifications_description">Permitir que CAPod muestre notificaciones sobre tus AirPods, p. ej., su estado actual mientras están conectados.</string>
<string name="permission_post_notifications_description">"Permitir que CAPod muestre notificaciones sobre tus AirPods, p. ej., su estado actual mientras están conectados."</string>
</resources>
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_name">CAPod</string>
<string name="app_name_pro">CAPod </string>
<string name="app_name">CCAPod</string>
<string name="app_name_pro">CAPod Profesyonel de</string>
<string name="app_name_foss">CAPod FOSS</string>
<string name="general_value_not_available_label">Kapalı</string>
<string name="general_error_label">Hata</string>
<string name="general_grant_permission_action">İzin ver</string>
<string name="overview_nomaindevice_label">Birincil aygıt yok</string>
<string name="overview_nomaindevice_description">Tespit edilen tüm aygıtların sizin olması muhtemel değildir. Aygıtınızı açın ve bağlayın veya ayarları yapın.</string>
<string name="overview_nomaindevice_description">Tespit edilen tüm aygıtların sizin olmayabilir. Aygıtınızı açıp bağlayın veya ayarları düzenleyin.</string>
<string name="overview_bluetooth_disabled_label">Bluetooth kapalı</string>
<string name="overview_bluetooth_disabled_description">Lütfen etkinleştirin ;)</string>
<string name="permission_bluetooth_connect_label">Bluetooth bağlantısı</string>
@@ -15,7 +15,7 @@
<string name="permission_bluetooth_scan_label">Bluetooth taraması</string>
<string name="permission_bluetooth_scan_description">\"Bluetooth tarama\" izni, bu uygulamanın AirPod\'larınız gibi yakınınızdaki aygıtlardan Bluetooth verilerini keşfetmesine ve almasına olanak tanır.</string>
<string name="permission_bluetooth_label">Bluetooth</string>
<string name="permission_bluetooth_description">Bu uygulama, eşleştirilmiş bluetooth aygıtlarına bağlanmak için \"Bluetooth\" izni gerektirir.</string>
<string name="permission_bluetooth_description">Bu uygulama, eşleştirilmiş Bluetooth aygıtlarına bağlanmak için \"Bluetooth\" izni gerektirir.</string>
<string name="permission_access_fine_location_label">Tam konuma erişim</string>
<string name="permission_access_fine_location_description">CAPod, Bluetooth Düşük Enerji verilerini almak için \"tam konum\" iznini kullanır. Kulaklığınız, durumlarını yayınlamak için Bluetooth Düşük Enerji teknolojisini kullanır. Bu uygulama, konumunuzu belirlemek için Bluetooth verilerini KULLANMAZ.</string>
<string name="permission_background_location_label">Arka planda konum erişimi</string>
@@ -3,16 +3,12 @@
<string name="app_name">سی اے پوڈ</string>
<string name="app_name_pro">سی اے پوڈ پرو</string>
<string name="app_name_foss">سی اے پوڈ FOSS</string>
<string name="general_value_not_available_label">N/A</string>
<string name="general_error_label">خرابی</string>
<string name="general_grant_permission_action">اجازت دیں</string>
<string name="overview_nomaindevice_label">کوئی بنیادی ڈیوائس نہیں</string>
<string name="overview_nomaindevice_description">تمام پتہ چلنے والی ڈیوائسز ممکنہ طور پر آپ کی نہیں ہیں۔ اپنی ڈیوائس کو پاور آن کریں اور جوڑیں یا سیٹنگز کو ایڈجسٹ کریں۔</string>
<string name="overview_bluetooth_disabled_label">بلوٹوتھ غیر فعال ہے</string>
<string name="overview_bluetooth_disabled_description">بلوٹوتھ غیر فعال ہے، اسے فعال کریں ؛)</string>
<string name="permission_bluetooth_connect_label">بلوٹوتھ کنیکٹ</string>
<string name="permission_bluetooth_connect_description">اس ایپ کو جوڑی والی ڈیوائسز کے ساتھ تعامل کرنے اور کنکشن شروع کرنے کے لیے \"بلوٹوتھ کنیکٹ\" کی اجازت درکار ہے۔</string>
<string name="permission_bluetooth_scan_label">بلوٹوتھ اسکیننگ</string>
@@ -28,19 +24,15 @@
<string name="permission_required_title">درج ذیل اجازت درکار ہے:</string>
<string name="permission_system_alert_window_label">سسٹم الرٹ ونڈو</string>
<string name="permission_system_alert_window_description">سی اے پوڈ کو دیگر ایپس پر ڈرا کرنے کی اجازت دیں تاکہ \"پاپ اپ دکھائیں\" کی خصوصیت ممکن ہو سکے۔</string>
<string name="settings_scanner_mode_lowpower_label">کم پاور</string>
<string name="settings_scanner_mode_balanced_label">متوازن</string>
<string name="settings_scanner_mode_lowlatency_label">کم تاخیر</string>
<string name="settings_monitor_mode_manual_label">جب ایپ کھلی ہو</string>
<string name="settings_monitor_mode_automatic_label">جب ڈیوائس منسلک ہو</string>
<string name="settings_monitor_mode_always_label">ہمیشہ</string>
<string name="settings_reaction_autoconnect_whenseen_label">جب دیکھا جائے</string>
<string name="settings_reaction_autoconnect_caseopen_label">کیس کھلا ہے</string>
<string name="settings_reaction_autoconnect_inear_label">کان میں</string>
<string name="pods_dual_left_label">بایاں پوڈ</string>
<string name="pods_dual_right_label">دایاں پوڈ</string>
<string name="pods_case_label">کیس</string>
@@ -64,7 +56,6 @@
<string name="headset_being_worn_label">پہنا ہوا ہے</string>
<string name="headset_not_being_worn_label">نہیں پہنا ہوا</string>
<string name="pods_case_unknown_state">نامعلوم حالت</string>
<string name="last_seen_x">آخری بار دیکھا گیا: %s</string>
<string name="first_seen_x">پہلی بار دیکھا گیا: %s</string>
<string name="permission_post_notifications_label">اطلاعات دکھائیں</string>
+3 -4
View File
@@ -9,7 +9,7 @@ apply(plugin = "androidx.navigation.safeargs.kotlin")
android {
compileSdk = ProjectConfig.compileSdk
namespace = "${ProjectConfig.packageName}"
namespace = ProjectConfig.packageName
defaultConfig {
applicationId = ProjectConfig.packageName
@@ -23,7 +23,6 @@ android {
testInstrumentationRunner = "eu.darken.capod.HiltTestRunner"
buildConfigField("String", "GITSHA", "\"${lastCommitHash()}\"")
buildConfigField("String", "BUILDTIME", "\"${buildTime()}\"")
}
signingConfigs {
@@ -85,10 +84,10 @@ android {
val variantOutputImpl = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
val variantName: String = variantOutputImpl.name
if (listOf("release", "beta").any { variantName.toLowerCase().contains(it) }) {
if (listOf("release", "beta").any { variantName.lowercase().contains(it) }) {
val outputFileName = ProjectConfig.packageName + "-WEAROS" +
"-v${defaultConfig.versionName}-${defaultConfig.versionCode}" +
"-${variantName.toUpperCase()}.apk"
"-${variantName.uppercase()}.apk"
variantOutputImpl.outputFileName = outputFileName
}
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
+8 -8
View File
@@ -10,7 +10,7 @@ apply(plugin = "androidx.navigation.safeargs.kotlin")
android {
compileSdk = ProjectConfig.compileSdk
namespace = "${ProjectConfig.packageName}"
namespace = ProjectConfig.packageName
defaultConfig {
applicationId = ProjectConfig.packageName
@@ -88,10 +88,10 @@ android {
val variantOutputImpl = this as com.android.build.gradle.internal.api.BaseVariantOutputImpl
val variantName: String = variantOutputImpl.name
if (listOf("release", "beta").any { variantName.toLowerCase().contains(it) }) {
if (listOf("release", "beta").any { variantName.lowercase().contains(it) }) {
val outputFileName = ProjectConfig.packageName +
"-v${defaultConfig.versionName}-${defaultConfig.versionCode}" +
"-${variantName.toUpperCase()}.apk"
"-${variantName.uppercase()}.apk"
variantOutputImpl.outputFileName = outputFileName
}
@@ -122,9 +122,9 @@ android {
unitTests {
isIncludeAndroidResources = true
}
tasks.withType<Test> {
useJUnitPlatform()
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
}
@@ -151,6 +151,6 @@ dependencies {
addTesting()
"gplayImplementation"("com.android.billingclient:billing:7.1.1")
"gplayImplementation"("com.android.billingclient:billing-ktx:7.1.1")
"gplayImplementation"("com.android.billingclient:billing:8.0.0")
"gplayImplementation"("com.android.billingclient:billing-ktx:8.0.0")
}
@@ -64,6 +64,7 @@ class UpgradeControlFoss @Inject constructor(
override val isPro: Boolean = false,
override val upgradedAt: Instant? = null,
val upgradeReason: FossUpgrade.Reason? = null,
override val error: Throwable? = null,
) : UpgradeRepo.Info {
override val type: UpgradeRepo.Type = UpgradeRepo.Type.FOSS
}
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="foss_upgrade_donate_label">Far ina donaziun</string>
<string name="foss_upgrade_alreadydonated_label">Jau hai gia fatg ina donaziun</string>
<string name="foss_upgrade_no_money_label">Jau dov mes daners per AirPods</string>
</resources>
@@ -17,14 +17,16 @@ import eu.darken.capod.common.upgrade.core.data.BillingData
import eu.darken.capod.common.upgrade.core.data.BillingDataRepo
import eu.darken.capod.common.upgrade.core.data.PurchasedSku
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.retryWhen
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.time.Instant
import javax.inject.Inject
import javax.inject.Singleton
import kotlin.math.pow
@Singleton
class UpgradeRepoGplay @Inject constructor(
@@ -49,25 +51,28 @@ class UpgradeRepoGplay @Inject constructor(
lastProStateAt = now
Info(billingData = data)
}
(now - lastProStateAt) < 6 * 60 * 60 * 1000L -> { // 6 hours
log(TAG, VERBOSE) { "We are not pro, but were recently, did GPlay try annoy us again?" }
Info(gracePeriod = true, billingData = null)
}
else -> {
Info(billingData = data)
}
}
}
.catch {
// Ignore Google Play errors if the last pro state was recent
.retryWhen { error, attempt ->
val now = System.currentTimeMillis()
log(TAG) { "now=$now, lastProStateAt=$lastProStateAt, error=$it" }
log(TAG) { "now=$now, lastProStateAt=$lastProStateAt, attempt=$attempt, error=$error" }
if ((now - lastProStateAt) < 24 * 60 * 60 * 1000L) { // 24 hours
log(TAG, VERBOSE) { "We are not pro, but were recently, and just and an error, what is GPlay doing???" }
emit(Info(gracePeriod = true, billingData = null))
} else {
throw it
emit(Info(billingData = null, error = if (attempt == 0L) error else null))
}
delay(30_000L * 2.0.pow(attempt.toDouble()).toLong())
true
}
.replayingShare(scope)
@@ -117,6 +122,7 @@ class UpgradeRepoGplay @Inject constructor(
data class Info(
private val gracePeriod: Boolean = false,
private val billingData: BillingData?,
override val error: Throwable? = null,
) : UpgradeRepo.Info {
override val type: UpgradeRepo.Type
@@ -8,6 +8,7 @@ import com.android.billingclient.api.BillingResult
import com.android.billingclient.api.ProductDetails
import com.android.billingclient.api.Purchase
import com.android.billingclient.api.QueryProductDetailsParams
import com.android.billingclient.api.QueryPurchasesParams
import eu.darken.capod.common.debug.logging.Logging.Priority.INFO
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
import eu.darken.capod.common.debug.logging.log
@@ -39,8 +40,12 @@ data class BillingClientConnection(
.setupCommonEventHandlers(TAG) { "purchases" }
suspend fun queryPurchases(): Collection<Purchase> {
val params = QueryPurchasesParams.newBuilder()
.setProductType(BillingClient.ProductType.INAPP)
.build()
val (result: BillingResult, purchases) = suspendCoroutine<Pair<BillingResult, Collection<Purchase>?>> { continuation ->
client.queryPurchasesAsync(BillingClient.SkuType.INAPP) { result, purchases ->
client.queryPurchasesAsync(params) { result, purchases ->
continuation.resume(result to purchases)
}
}
@@ -80,9 +85,10 @@ data class BillingClientConnection(
val params = QueryProductDetailsParams.newBuilder().setProductList(listOf(productDetails)).build()
val (result, details) = suspendCoroutine<Pair<BillingResult, Collection<ProductDetails>?>> { continuation ->
client.queryProductDetailsAsync(params) { result, skuDetails ->
continuation.resume(result to skuDetails)
val (result, details) = suspendCoroutine<Pair<BillingResult, List<ProductDetails>>> { continuation ->
client.queryProductDetailsAsync(params) { billingResult, queryResult ->
val productDetailsList = queryResult.productDetailsList ?: emptyList()
continuation.resume(billingResult to productDetailsList)
}
}
@@ -92,7 +98,7 @@ data class BillingClientConnection(
if (!result.isSuccess) throw BillingResultException(result)
if (details.isNullOrEmpty()) throw IllegalStateException("Unknown SKU, no details available.")
if (details.isEmpty()) throw IllegalStateException("Unknown SKU, no details available.")
return Sku.Details(sku, details)
}
@@ -5,6 +5,7 @@ import com.android.billingclient.api.BillingClient.BillingResponseCode
import com.android.billingclient.api.BillingClient.newBuilder
import com.android.billingclient.api.BillingClientStateListener
import com.android.billingclient.api.BillingResult
import com.android.billingclient.api.PendingPurchasesParams
import com.android.billingclient.api.Purchase
import dagger.hilt.android.qualifiers.ApplicationContext
import eu.darken.capod.common.debug.logging.Logging.Priority.*
@@ -33,7 +34,11 @@ class BillingClientConnectionProvider @Inject constructor(
val purchasePublisher = MutableStateFlow<Collection<Purchase>>(emptySet())
val client = newBuilder(context).apply {
enablePendingPurchases()
enablePendingPurchases(
PendingPurchasesParams.newBuilder()
.enableOneTimeProducts()
.build()
)
setListener { result, purchases ->
if (result.isSuccess) {
log(TAG) {
@@ -1,3 +1,15 @@
package eu.darken.capod.common.upgrade.core.client
open class BillingException(override val message: String) : Exception()
import android.content.Context
import eu.darken.capod.R
import eu.darken.capod.common.error.HasLocalizedError
import eu.darken.capod.common.error.LocalizedError
open class BillingException(override val message: String) : Exception(), HasLocalizedError {
override fun getLocalizedError(context: Context): LocalizedError = LocalizedError(
throwable = this,
label = context.getString(R.string.upgrades_gplay_billing_error_label),
description = context.getString(R.string.upgrades_gplay_billing_error_description, message)
)
}
@@ -1,9 +1,18 @@
package eu.darken.capod.common.upgrade.core.client
import android.content.Context
import com.android.billingclient.api.BillingResult
import eu.darken.capod.R
import eu.darken.capod.common.error.LocalizedError
class BillingResultException(val result: BillingResult) : BillingException(result.debugMessage) {
override fun toString(): String =
"BillingResultException(code=${result.responseCode}, message=${result.debugMessage})"
override fun getLocalizedError(context: Context): LocalizedError = LocalizedError(
throwable = this,
label = context.getString(R.string.upgrades_gplay_billing_result_error_label),
description = context.getString(R.string.upgrades_gplay_billing_result_error_description, result)
)
}
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play-dienste is nie beskikbaar nie.</string>
<string name="upgrades_no_purchases_found_check_account">Geen aankope gevind nie. Gebruik jy die regte rekening?</string>
<string name="upgrades_gplay_billing_error_label">Google Play-fout</string>
<string name="upgrades_gplay_billing_error_description">Daar was \'n fout in Google Play. Probeer asseblief later weer of herbegin jou foon.\n\nFout: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play-faktureringsfout</string>
<string name="upgrades_gplay_billing_result_error_description">Daar was \'n fout toe Google Play vir jou aankoopbesonderhede gevra is. Maak Google Play-kas skoon en herbegin jou foon.\n\nFout %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">የGoogle Play አገልግሎቶች አይገኙም።</string>
<string name="upgrades_no_purchases_found_check_account">ምንም ግዢዎች አልተገኙም። ትክክለኛውን መለያ እየተጠቀሙ ነው?</string>
<string name="upgrades_gplay_billing_error_label">Google Play ስህተት</string>
<string name="upgrades_gplay_billing_error_description">በGoogle Play ላይ ስህተት ተከስቷል። እባክዎ በኋላ ይሞክሩ ወይም ስልክዎን እንደገና ያስጀምሩ።\n\nስህተት፡ %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play ክፍያ ስህተት</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play የግዢ ዝርዝሮችዎን ሲጠይቅ ስህተት ተከስቷል። Google Play መሸጎጫ ያጽዱ እና ስልክዎን እንደገና ያስጀምሩ።\n\nስህተት %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">خدمات Google Play غير متاحة.</string>
<string name="upgrades_no_purchases_found_check_account">لم يتم العثور على أي مشتريات. هل تستخدم الحساب الصحيح؟</string>
<string name="upgrades_gplay_billing_error_label">خطأ في Google Play</string>
<string name="upgrades_gplay_billing_error_description">حدث خطأ في Google Play. يرجى المحاولة مرة أخرى لاحقاً أو إعادة تشغيل هاتفك.\n\nالخطأ: %s</string>
<string name="upgrades_gplay_billing_result_error_label">خطأ في فوترة Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">حدث خطأ عند طلب تفاصيل الشراء من Google Play. امسح ذاكرة التخزين المؤقت لـ Google Play وأعد تشغيل هاتفك.\n\nالخطأ %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play xidmətləri əlçatmazdır.</string>
<string name="upgrades_no_purchases_found_check_account">Heç bir satın alma tapılmadı. Doğru hesabı istifadə edirsiniz?</string>
<string name="upgrades_gplay_billing_error_label">Google Play Xətası</string>
<string name="upgrades_gplay_billing_error_description">Google Play-də xəta baş verdi. Zəhmət olmasa daha sonra yenidən cəhd edin və ya telefonunuzu yenidən başladın.\n\nXəta: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play Ödəniş Xətası</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play-dən satın alma məlumatlarınızı istəyərkən xəta baş verdi. Google Play keşini təmizləyin və telefonunuzu yenidən başladın.\n\nXəta %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Службы Google Play недаступныя.</string>
<string name="upgrades_no_purchases_found_check_account">Пакупак не знойдзена. Вы выкарыстоўваеце правільны ўліковы запіс?</string>
<string name="upgrades_gplay_billing_error_label">Памылка Google Play</string>
<string name="upgrades_gplay_billing_error_description">У Google Play адбылася памылка. Калі ласка, паспрабуйце пазней або перазагрузіце тэлефон.\n\nПамылка: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Памылка аплаты Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Памылка пры запыце дэталяў пакупкі ад Google Play. Ачысціце кэш Google Play і перазагрузіце тэлефон.\n\nПамылка %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Услугите на Google Play не са налични.</string>
<string name="upgrades_no_purchases_found_check_account">Няма намерени покупки. Правилния акаунт ли използвате?</string>
<string name="upgrades_gplay_billing_error_label">Грешка в Google Play</string>
<string name="upgrades_gplay_billing_error_description">Имаше грешка в Google Play. Моля, опитайте отново по-късно или рестартирайте телефона си.\n\nГрешка: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Грешка при фактуриране в Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Имаше грешка при заявката към Google Play за данни за покупката. Изчистете кеша на Google Play и рестартирайте телефона си.\n\nГрешка %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play পরিষেবাগুলি উপলব্ধ নেই৷</string>
<string name="upgrades_no_purchases_found_check_account">কোনও কেনাকাটা খুঁজে পাওয়া যায়নি। আপনি কি সঠিক অ্যাকাউন্ট ব্যবহার করছেন?</string>
<string name="upgrades_gplay_billing_error_label">Google Play ত্রুটি</string>
<string name="upgrades_gplay_billing_error_description">Google Play-এ একটি ত্রুটি হয়েছে। অনুগ্রহ করে পরে আবার চেষ্টা করুন বা আপনার ফোন রিবুট করুন।\n\nত্রুটি: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play বিলিং ত্রুটি</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play কে আপনার ক্রয়ের বিবরণ জিজ্ঞাসা করার সময় একটি ত্রুটি হয়েছে। Google Play ক্যাশে সাফ করুন এবং আপনার ফোন রিবুট করুন।\n\nত্রুটি %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Els serveis de Google Play no estan disponibles.</string>
<string name="upgrades_no_purchases_found_check_account">No s\'ha trobat cap compra. Esteu utilitzant el compte correcte?</string>
<string name="upgrades_gplay_billing_error_label">Error de Google Play</string>
<string name="upgrades_gplay_billing_error_description">S\'ha produït un error a Google Play. Si us plau, torneu-ho a provar més tard o reinicieu el telèfon.\n\nError: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Error de facturació de Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">S\'ha produït un error en demanar a Google Play els detalls de la vostra compra. Esborreu la memòria cau de Google Play i reinicieu el telèfon.\n\nError %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Služby Google Play nejsou k dispozici.</string>
<string name="upgrades_no_purchases_found_check_account">Nebyly nalezeny žádné nákupy. Používáte správný účet?</string>
<string name="upgrades_gplay_billing_error_label">Chyba Google Play</string>
<string name="upgrades_gplay_billing_error_description">V Google Play došlo k chybě. Zkuste to prosím později nebo restartujte telefon.\n\nChyba: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Chyba fakturace Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Při žádosti o podrobnosti nákupu od Google Play došlo k chybě. Vymažte mezipaměť Google Play a restartujte telefon.\n\nChyba %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play-tjenester er ikke tilgængelige.</string>
<string name="upgrades_no_purchases_found_check_account">Ingen køb fundet. Bruger du den rigtige konto?</string>
<string name="upgrades_gplay_billing_error_label">Google Play-fejl</string>
<string name="upgrades_gplay_billing_error_description">Der var en fejl i Google Play. Prøv venligst igen senere eller genstart din telefon.\n\nFejl: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play-faktureringsfejl</string>
<string name="upgrades_gplay_billing_result_error_description">Der opstod en fejl ved forespørgsel om dine købsoplysninger fra Google Play. Ryd Google Play-cachen og genstart din telefon.\n\nFejl %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play-Dienste sind nicht verfügbar.</string>
<string name="upgrades_no_purchases_found_check_account">Keine Käufe gefunden. Verwenden Sie das richtige Konto?</string>
<string name="upgrades_gplay_billing_error_label">Google Play Fehler</string>
<string name="upgrades_gplay_billing_error_description">Es ist ein Fehler bei Google Play aufgetreten. Bitte versuchen Sie es später erneut oder starten Sie Ihr Telefon neu.\n\nFehler: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play Abrechnungsfehler</string>
<string name="upgrades_gplay_billing_result_error_description">Es ist ein Fehler aufgetreten, als Google Play nach Ihren Kaufdetails gefragt wurde. Löschen Sie den Google Play Cache und starten Sie Ihr Telefon neu.\n\nFehler %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Οι υπηρεσίες Google Play δεν είναι διαθέσιμες.</string>
<string name="upgrades_no_purchases_found_check_account">Δε βρέθηκαν αγορές. Χρησιμοποιείτε τον σωστό λογαριασμό;</string>
<string name="upgrades_gplay_billing_error_label">Σφάλμα Google Play</string>
<string name="upgrades_gplay_billing_error_description">Παρουσιάστηκε σφάλμα στο Google Play. Παρακαλώ δοκιμάστε ξανά αργότερα ή επανεκκινήστε το τηλέφωνό σας.\n\nΣφάλμα: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Σφάλμα Χρέωσης Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Παρουσιάστηκε σφάλμα όταν ζητήθηκαν από το Google Play τα στοιχεία της αγοράς σας. Καθαρίστε την προσωρινή μνήμη του Google Play και επανεκκινήστε το τηλέφωνό σας.\n\nΣφάλμα %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Los servicios de Google Play no están disponibles.</string>
<string name="upgrades_no_purchases_found_check_account">No se encontraron compras. ¿Está usando la cuenta correcta?</string>
<string name="upgrades_gplay_billing_error_label">Error de Google Play</string>
<string name="upgrades_gplay_billing_error_description">Hubo un error en Google Play. Por favor, intentá de nuevo más tarde o reiniciá tu teléfono.\n\nError: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Error de facturación de Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Hubo un error al solicitar a Google Play los detalles de tu compra. Limpiá el caché de Google Play y reiniciá tu teléfono.\n\nError %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Los servicios de Google Play no están disponibles.</string>
<string name="upgrades_no_purchases_found_check_account">No se han encontrado compras. ¿Estás usando la cuenta correcta?</string>
<string name="upgrades_gplay_billing_error_label">Error de Google Play</string>
<string name="upgrades_gplay_billing_error_description">Hubo un error en Google Play. Por favor, intenta de nuevo más tarde o reinicia tu teléfono.\n\nError: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Error de facturación de Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Hubo un error al solicitar a Google Play los detalles de tu compra. Limpia el caché de Google Play y reinicia tu teléfono.\n\nError %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Los servicios de Google Play no están disponibles.</string>
<string name="upgrades_no_purchases_found_check_account">No se encontraron compras. ¿Está usando la cuenta correcta?</string>
<string name="upgrades_gplay_billing_error_label">Error de Google Play</string>
<string name="upgrades_gplay_billing_error_description">Se produjo un error en Google Play. Por favor, inténtelo de nuevo más tarde o reinicie su teléfono.\n\nError: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Error de facturación de Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Se produjo un error al solicitar a Google Play los detalles de su compra. Limpie el caché de Google Play y reinicie su teléfono.\n\nError %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play teenused pole saadaval.</string>
<string name="upgrades_no_purchases_found_check_account">Ühtki ostu ei leitud. Kasutate õiget kontot?</string>
<string name="upgrades_gplay_billing_error_label">Google Play viga</string>
<string name="upgrades_gplay_billing_error_description">Google Play\'s tekkis viga. Palun proovige hiljem uuesti või taaskäivitage telefon.\n\nViga: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play arvelduse viga</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play\'lt ostu üksikasjade küsimisel tekkis viga. Tühjendage Google Play vahemälu ja taaskäivitage telefon.\n\nViga %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play zerbitzuak ez daude erabilgarri.</string>
<string name="upgrades_no_purchases_found_check_account">Ez da erosketarik aurkitu. Kontu egokia erabiltzen ari zara?</string>
<string name="upgrades_gplay_billing_error_label">Google Play errorea</string>
<string name="upgrades_gplay_billing_error_description">Errore bat gertatu da Google Play-n. Mesedez, saiatu berriro beranduago edo berrabiarazi telefonoa.\n\nErrorea: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play fakturazio errorea</string>
<string name="upgrades_gplay_billing_result_error_description">Errore bat gertatu da Google Play-ri erosketaren xehetasunak eskatzean. Garbitu Google Play-ren cachea eta berrabiarazi telefonoa.\n\nErrorea %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">سرویس‌های Google Play در دسترس نیستند.</string>
<string name="upgrades_no_purchases_found_check_account">خریدی یافت نشد. آیا از حساب درستی استفاده می‌کنید؟</string>
<string name="upgrades_gplay_billing_error_label">خطای Google Play</string>
<string name="upgrades_gplay_billing_error_description">در Google Play خطایی رخ داد. لطفاً بعداً دوباره تلاش کنید یا تلفن خود را راه‌اندازی مجدد کنید.\n\nخطا: %s</string>
<string name="upgrades_gplay_billing_result_error_label">خطای صورتحساب Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">هنگام درخواست جزئیات خرید شما از Google Play خطایی رخ داد. حافظه نهان Google Play را پاک کنید و تلفن خود را راه‌اندازی مجدد کنید.\n\nخطا %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play -palvelut eivät ole käytettävissä.</string>
<string name="upgrades_no_purchases_found_check_account">Ostoksia ei löytynyt. Käytätkö oikeaa tiliä?</string>
<string name="upgrades_gplay_billing_error_label">Google Play -virhe</string>
<string name="upgrades_gplay_billing_error_description">Google Playssa tapahtui virhe. Yritä uudelleen myöhemmin tai käynnistä puhelimesi uudelleen.\n\nVirhe: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play -laskutusvirhe</string>
<string name="upgrades_gplay_billing_result_error_description">Google Playltä ostotietoja pyydettäessä tapahtui virhe. Tyhjennä Google Playn välimuisti ja käynnistä puhelimesi uudelleen.\n\nVirhe %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Hindi available ang mga serbisyo ng Google Play.</string>
<string name="upgrades_no_purchases_found_check_account">Walang nakitang binili. Tamang account ba ang gamit mo?</string>
<string name="upgrades_gplay_billing_error_label">Error sa Google Play</string>
<string name="upgrades_gplay_billing_error_description">May error sa Google Play. Mangyaring subukan muli mamaya o i-reboot ang iyong telepono.\n\nError: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Error sa Pagsingil ng Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">May error nang hingin sa Google Play ang mga detalye ng iyong pagbili. I-clear ang cache ng Google Play at i-reboot ang iyong telepono.\n\nError %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Les services Google Play ne sont pas accessibles.</string>
<string name="upgrades_no_purchases_found_check_account">Aucun achat na été trouvé. Utilisez-vous le bon compte?</string>
<string name="upgrades_gplay_billing_error_label">Erreur Google Play</string>
<string name="upgrades_gplay_billing_error_description">Une erreur s\'est produite dans Google Play. Veuillez réessayer plus tard ou redémarrer votre téléphone.\n\nErreur : %s</string>
<string name="upgrades_gplay_billing_result_error_label">Erreur de facturation Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Une erreur s\'est produite lors de la demande des détails de votre achat à Google Play. Effacez le cache de Google Play et redémarrez votre téléphone.\n\nErreur %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Os servizos de Google Play non están dispoñibles.</string>
<string name="upgrades_no_purchases_found_check_account">Non se atoparon compras. Estás a usar a conta correcta?</string>
<string name="upgrades_gplay_billing_error_label">Erro de Google Play</string>
<string name="upgrades_gplay_billing_error_description">Produciuse un erro en Google Play. Téntao de novo máis tarde ou reinicia o teu teléfono.\n\nErro: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Erro de facturación de Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Produciuse un erro ao solicitar a Google Play os detalles da túa compra. Borra a caché de Google Play e reinicia o teu teléfono.\n\nErro %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play सेवाएं अनुपलब्ध हैं।</string>
<string name="upgrades_no_purchases_found_check_account">कोई खरीदारी नहीं मिली, क्या आप सही खाते का उपयोग कर रहे हैं?</string>
<string name="upgrades_gplay_billing_error_label">Google Play त्रुटि</string>
<string name="upgrades_gplay_billing_error_description">Google Play में कोई त्रुटि हुई थी। कृपया बाद में पुनः प्रयास करें या अपना फ़ोन रीबूट करें।\n\nत्रुटि: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play बिलिंग त्रुटि</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play से आपकी खरीदारी का विवरण मांगते समय कोई त्रुटि हुई थी। Google Play कैश साफ़ करें और अपना फ़ोन रीबूट करें।\n\nत्रुटि %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Usluge Google Playa nisu dostupne.</string>
<string name="upgrades_no_purchases_found_check_account">Nisu pronađene kupnje. Koristite li pravi račun?</string>
<string name="upgrades_gplay_billing_error_label">Google Play pogreška</string>
<string name="upgrades_gplay_billing_error_description">Dogodila se pogreška u Google Playu. Pokušajte ponovno kasnije ili ponovno pokrenite telefon.\n\nPogreška: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play pogreška naplaćivanja</string>
<string name="upgrades_gplay_billing_result_error_description">Dogodila se pogreška prilikom traženja detalja vaše kupnje od Google Playa. Očistite predmemoriju Google Playa i ponovno pokrenite telefon.\n\nPogreška %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">A Google Play szolgáltatások nem érhetők el.</string>
<string name="upgrades_no_purchases_found_check_account">Nem található vásárlás. A megfelelő fiókot használja?</string>
<string name="upgrades_gplay_billing_error_label">Google Play hiba</string>
<string name="upgrades_gplay_billing_error_description">Hiba történt a Google Play-ben. Próbálja újra később, vagy indítsa újra a telefont.\n\nHiba: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play számlázási hiba</string>
<string name="upgrades_gplay_billing_result_error_description">Hiba történt a vásárlási adatok lekérdezésekor a Google Play-től. Törölje a Google Play gyorsítótárát és indítsa újra a telefont.\n\nHiba %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play ծառայությունները հասանելի չեն:</string>
<string name="upgrades_no_purchases_found_check_account">Գնումներ չեն գտնվել: Արդյո՞ք ճիշտ հաշիվն եք օգտագործում:</string>
<string name="upgrades_gplay_billing_error_label">Google Play սխալ</string>
<string name="upgrades_gplay_billing_error_description">Google Play-ում սխալ է տեղի ունեցել: Խնդրում ենք փորձել ավելի ուշ կամ վերագործարկել հեռախոսը:\n\nՍխալ՝ %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play վճարման սխալ</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play-ից ձեր գնումների մանրամասները հարցնելիս սխալ է տեղի ունեցել: Մաքրեք Google Play-ի քեշը և վերագործարկեք հեռախոսը:\n\nՍխալ %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Layanan Google Play tidak tersedia.</string>
<string name="upgrades_no_purchases_found_check_account">Tidak ada pembelian yang ditemukan. Apakah Anda menggunakan akun yang benar?</string>
<string name="upgrades_gplay_billing_error_label">Kesalahan Google Play</string>
<string name="upgrades_gplay_billing_error_description">Terjadi kesalahan di Google Play. Silakan coba lagi nanti atau mulai ulang ponsel Anda.\n\nKesalahan: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Kesalahan Penagihan Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Terjadi kesalahan saat meminta detail pembelian Anda dari Google Play. Hapus cache Google Play dan mulai ulang ponsel Anda.\n\nKesalahan %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play þjónustur eru ekki tiltækar.</string>
<string name="upgrades_no_purchases_found_check_account">Engin kaup fundust. Ertu að nota réttan aðgang?</string>
<string name="upgrades_gplay_billing_error_label">Google Play villa</string>
<string name="upgrades_gplay_billing_error_description">Villa kom upp í Google Play. Vinsamlegast reyndu aftur síðar eða endurræstu símann.\n\nVilla: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play reikningsvilla</string>
<string name="upgrades_gplay_billing_result_error_description">Villa kom upp við að sækja kaupupplýsingar frá Google Play. Hreinsaðu Google Play skyndiminni og endurræstu símann.\n\nVilla %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">I servizi di Google Play non sono disponibili.</string>
<string name="upgrades_no_purchases_found_check_account">Nessun acquisto trovato. Stai usando l\'account giusto?</string>
<string name="upgrades_gplay_billing_error_label">Errore Google Play</string>
<string name="upgrades_gplay_billing_error_description">Si è verificato un errore in Google Play. Riprova più tardi o riavvia il telefono.\n\nErrore: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Errore di fatturazione Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Si è verificato un errore durante la richiesta dei dettagli dell\'acquisto a Google Play. Cancella la cache di Google Play e riavvia il telefono.\n\nErrore %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">שירותי Google Play אינם זמינים.</string>
<string name="upgrades_no_purchases_found_check_account">לא נמצאו רכישות. האם אתה משתמש בחשבון הנכון?</string>
<string name="upgrades_gplay_billing_error_label">שגיאת Google Play</string>
<string name="upgrades_gplay_billing_error_description">אירעה שגיאה ב-Google Play. אנא נסה שוב מאוחר יותר או הפעל מחדש את הטלפון.\n\nשגיאה: %s</string>
<string name="upgrades_gplay_billing_result_error_label">שגיאת חיוב Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">אירעה שגיאה בעת בקשת פרטי הרכישה מ-Google Play. נקה את המטמון של Google Play והפעל מחדש את הטלפון.\n\nשגיאה %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Playサービスが利用できません。</string>
<string name="upgrades_no_purchases_found_check_account">購入履歴がありません。正しいアカウントを使用していますか?</string>
<string name="upgrades_gplay_billing_error_label">Google Playエラー</string>
<string name="upgrades_gplay_billing_error_description">Google Playでエラーが発生しました。しばらくしてから再度お試しいただくか、携帯電話を再起動してください。\n\nエラー: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play請求エラー</string>
<string name="upgrades_gplay_billing_result_error_description">Google Playに購入詳細を問い合わせる際にエラーが発生しました。Google Playのキャッシュをクリアして、携帯電話を再起動してください。\n\nエラー %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play სერვისები მიუწვდომელია.</string>
<string name="upgrades_no_purchases_found_check_account">შენაძენები ვერ მოიძებნა. იყენებთ სწორ ანგარიშს?</string>
<string name="upgrades_gplay_billing_error_label">Google Play შეცდომა</string>
<string name="upgrades_gplay_billing_error_description">Google Play-ში შეცდომა მოხდა. გთხოვთ სცადოთ მოგვიანებით ან გადატვირთეთ თელეფონი.\n\nშეცდომა: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play გადახდის შეცდომა</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play-ს თქვენი შეძენის დეტალების კითხვისას შეცდომა მოხდა. გაასუფთავეთ Google Play-ის ქეში და გადატვირთეთ თელეფონი.\n\nშეცდომა %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">សេវាកម្ម Google Play មិនអាចប្រើបានទេ</string>
<string name="upgrades_no_purchases_found_check_account">រកមិនឃើញការទិញទេ។ តើអ្នកកំពុងប្រើគណនីត្រឹមត្រូវទេ?</string>
<string name="upgrades_gplay_billing_error_label">កំហុស Google Play</string>
<string name="upgrades_gplay_billing_error_description">មានកំហុសនៅក្នុង Google Play។ សូមព្យាយាមម្តងទៀតពេលក្រោយ ឬចាប់ផ្តើមទូរស័ព្ទរបស់អ្នកឡើងវិញ។\n\nកំហុស: %s</string>
<string name="upgrades_gplay_billing_result_error_label">កំហុសការគិតថ្លៃ Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">មានកំហុសនៅពេលសួរ Google Play អំពីព័ត៌មានលម្អិតនៃការទិញរបស់អ្នក។ សម្អាតឯកសារ គាំងស្ទុះ Google Play ហើយចាប់ផ្តើមទូរស័ព្ទរបស់អ្នកឡើងវិញ។\n\nកំហុស %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Xizmetên Google Play ne berdest in.</string>
<string name="upgrades_no_purchases_found_check_account">Kirîn nehatin dîtin. Hûn hesabê rast bikar tînin?</string>
<string name="upgrades_gplay_billing_error_label">Çewtiya Google Play</string>
<string name="upgrades_gplay_billing_error_description">Li Google Play çewtiyek çêbû. Ji kerema xwe paşê dîsa biceribînin an telefona xwe ji nû ve bidin destpekirin.\n\nÇewtî: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Çewtiya Fatureykirina Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Dema ku ji Google Play hurgiliyên kirîna we hat xwestin çewtiyek çêbû. Cache\'ya Google Play pak bikin û telefona xwe ji nû ve bidin destpekirin.\n\nÇewtî %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play ಸೇವೆಗಳು ಲಭ್ಯವಿಲ್ಲ.</string>
<string name="upgrades_no_purchases_found_check_account">ಯಾವುದೇ ಖರೀದಿಗಳು ಕಂಡುಬಂದಿಲ್ಲ. ನೀವು ಸರಿಯಾದ ಖಾತೆಯನ್ನು ಬಳಸುತ್ತಿದ್ದೀರಾ?</string>
<string name="upgrades_gplay_billing_error_label">Google Play ದೋಷ</string>
<string name="upgrades_gplay_billing_error_description">Google Playನಲ್ಲಿ ದೋಷವಾಗಿದೆ. ದಯವಿಟ್ಟು ನಂತರ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ನಿಮ್ಮ ಫೋನ್ ರೀಬೂಟ್ ಮಾಡಿ.\n\nದೋಷ: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play ಬಿಲ್ಲಿಂಗ್ ದೋಷ</string>
<string name="upgrades_gplay_billing_result_error_description">Google Playಗೆ ನಿಮ್ಮ ಖರೀದಿ ವಿವರಗಳನ್ನು ಕೇಳುವಾಗ ದೋಷವಾಗಿದೆ. Google Play ಕ್ಯಾಶ್ ಕ್ಲಿಯರ್ ಮಾಡಿ ನಿಮ್ಮ ಫೋನ್ ರೀಬೂಟ್ ಮಾಡಿ.\n\nದೋಷ %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play 서비스를 사용할 수 없습니다.</string>
<string name="upgrades_no_purchases_found_check_account">구매 내역을 찾지 못했습니다. 결제했던 계정이 맞나요?</string>
<string name="upgrades_gplay_billing_error_label">Google Play 오류</string>
<string name="upgrades_gplay_billing_error_description">Google Play에서 오류가 발생했습니다. 나중에 다시 시도하거나 휴대폰을 재부팅해 주세요.\n\n오류: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play 결제 오류</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play에 구매 세부 정보를 요청하는 중 오류가 발생했습니다. Google Play 캐시를 지우고 휴대폰을 재부팅해 주세요.\n\n오류 %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play кызматтары жеткиликсиз.</string>
<string name="upgrades_no_purchases_found_check_account">Эч кандай сатып алуулар табылган жок. Туура каттоо эсебин колдонуп жатасызбы?</string>
<string name="upgrades_gplay_billing_error_label">Google Play катасы</string>
<string name="upgrades_gplay_billing_error_description">Google Playде ката кетти. Сураныч, кийинчереек кайра аракет кылыңыз же телефонуңузду өчүрүп күйгүзүңүз.\n\nКата: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play төлөм катасы</string>
<string name="upgrades_gplay_billing_result_error_description">Google Playден сатып алуу маалыматын сураганда ката кетти. Google Play кэшин тазалап, телефонуңузду өчүрүп күйгүзүңүз.\n\nКата %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">ບໍລິການ Google Play ບໍ່ສາມາດໃຊ້ໄດ້.</string>
<string name="upgrades_no_purchases_found_check_account">ບໍ່ພົບການຊື້. ທ່ານກຳລັງໃຊ້ບັນຊີທີ່ຖືກຕ້ອງບໍ?</string>
<string name="upgrades_gplay_billing_error_label">ຂໍ້ຜິດພາດ Google Play</string>
<string name="upgrades_gplay_billing_error_description">ເກີດຂໍ້ຜິດພາດໃນ Google Play. ກະລຸນາລອງໃໝ່ອີກຄັ້ງພາຍຫຼັງ ຫຼື ຣີບູດໂທລະສັບຂອງທ່ານ.\n\nຂໍ້ຜິດພາດ: %s</string>
<string name="upgrades_gplay_billing_result_error_label">ຂໍ້ຜິດພາດການເກັບເງິນ Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">ເກີດຂໍ້ຜິດພາດໃນຂະນະຖາມ Google Play ເພື່ອຂໍລາຍລະອຽດການຊື້ຂອງທ່ານ. ລ້າງກາກເກັບ Google Play ແລະຣີບູດໂທລະສັບຂອງທ່ານ.\n\nຂໍ້ຜິດພາດ %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">„Google Play“ paslaugos nepasiekiamos.</string>
<string name="upgrades_no_purchases_found_check_account">Nerasta jokių pirkinių. Ar naudojate tinkamą paskyrą?</string>
<string name="upgrades_gplay_billing_error_label">„Google Play“ klaida</string>
<string name="upgrades_gplay_billing_error_description">„Google Play“ įvyko klaida. Prašome pabandyti vėliau arba paleisti telefoną iš naujo.\n\nKlaida: %s</string>
<string name="upgrades_gplay_billing_result_error_label">„Google Play“ atsiskaitymo klaida</string>
<string name="upgrades_gplay_billing_result_error_description">Klausiant „Google Play“ apie jūsų pirkimo informaciją įvyko klaida. Išvalykite „Google Play“ podėlį ir paleiskite telefoną iš naujo.\n\nKlaida %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play pakalpojumi nav pieejami.</string>
<string name="upgrades_no_purchases_found_check_account">Nav atrasts neviens pirkums. Vai izmantojat pareizo kontu?</string>
<string name="upgrades_gplay_billing_error_label">Google Play kļūda</string>
<string name="upgrades_gplay_billing_error_description">Google Play radās kļūda. Lūdzu, mēģiniet vēlreiz vēlāk vai resteartējiet tālruni.\n\nKļūda: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play norēķinu kļūda</string>
<string name="upgrades_gplay_billing_result_error_description">Radās kļūda, jautājot Google Play par jūsu pirkuma informāciju. Notīriet Google Play kešatmiņu un resteartējiet tālruni.\n\nKļūda %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Услугите на Google Play не се достапни.</string>
<string name="upgrades_no_purchases_found_check_account">Не се пронајдени купувања. Дали ја користите вистинската сметка?</string>
<string name="upgrades_gplay_billing_error_label">Грешка на Google Play</string>
<string name="upgrades_gplay_billing_error_description">Се појави грешка во Google Play. Обидете се повторно подоцна или рестартирајте го телефонот.\n\nГрешка: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Грешка при наплата на Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Се појави грешка при барањето детали за вашата купувачка од Google Play. Исчистете ја кеш меморијата на Google Play и рестартирајте го телефонот.\n\nГрешка %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play സേവനങ്ങൾ ലഭ്യമല്ല.</string>
<string name="upgrades_no_purchases_found_check_account">വാങ്ങലുകളൊന്നും കണ്ടെത്തിയില്ല. നിങ്ങൾ ശരിയായ അക്കൗണ്ട് ആണോ ഉപയോഗിക്കുന്നത്?</string>
<string name="upgrades_gplay_billing_error_label">Google Play പിഴവ്</string>
<string name="upgrades_gplay_billing_error_description">Google Play-യിൽ ഒരു പിഴവ് സംഭവിച്ചു. ദയവായി പിന്നീട് ശ്രമിക്കുക അല്ലെങ്കിൽ നിങ്ങളുടെ ഫോൺ റീബൂട്ട് ചെയ്യുക.\n\nപിഴവ്: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play ബില്ലിംഗ് പിഴവ്</string>
<string name="upgrades_gplay_billing_result_error_description">നിങ്ങളുടെ വാങ്ങൽ വിശദാംശങ്ങൾക്കായി Google Play-യോട് ചോദിക്കുമ്പോൾ ഒരു പിഴവ് സംഭവിച്ചു. Google Play ക്യാഷ് ക്ലിയർ ചെയ്ത് നിങ്ങളുടെ ഫോൺ റീബൂട്ട് ചെയ്യുക.\n\nപിഴവ് %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play үйлчилгээ боломжгүй байна.</string>
<string name="upgrades_no_purchases_found_check_account">Худалдан авалт олдсонгүй. Та зөв бүртгэл ашиглаж байна уу?</string>
<string name="upgrades_gplay_billing_error_label">Google Play алдаа</string>
<string name="upgrades_gplay_billing_error_description">Google Play-д алдаа гарлаа. Дараа дахин оролдож үзнэ үү эсвэл утсаа дахин асаана уу.\n\nАлдаа: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play төлбөрийн алдаа</string>
<string name="upgrades_gplay_billing_result_error_description">Таны худалдан авалтын дэлгэрэнгүй мэдээллийг Google Play-ээс асуухад алдаа гарсан. Google Play-н кэшийг цэвэрлээд утсаа дахин асаана уу.\n\nАлдаа %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play सेवा अनुपलब्ध आहेत.</string>
<string name="upgrades_no_purchases_found_check_account">कोणतीही खरेदी आढळली नाही. तुम्ही योग्य खाते वापरत आहात का?</string>
<string name="upgrades_gplay_billing_error_label">Google Play त्रुटी</string>
<string name="upgrades_gplay_billing_error_description">Google Play मध्ये त्रुटी झाली. कृपया नंतर पुन्हा प्रयत्न करा किंवा तुमचा फोन रीबूट करा.\n\nत्रुटी: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play बिलिंग त्रुटी</string>
<string name="upgrades_gplay_billing_result_error_description">तुमच्या खरेदी तपशीलांसाठी Google Play ला विचारताना त्रुटी झाली. Google Play कॅश साफ करा आणि तुमचा फोन रीबूट करा.\n\nत्रुटी %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Perkhidmatan Google Play tidak tersedia.</string>
<string name="upgrades_no_purchases_found_check_account">Tiada pembelian ditemui. Adakah anda menggunakan akaun yang betul?</string>
<string name="upgrades_gplay_billing_error_label">Ralat Google Play</string>
<string name="upgrades_gplay_billing_error_description">Terdapat ralat dalam Google Play. Sila cuba lagi kemudian atau boot semula telefon anda.\n\nRalat: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Ralat Pengebilan Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Terdapat ralat semasa meminta butiran pembelian anda daripada Google Play. Kosongkan cache Google Play dan boot semula telefon anda.\n\nRalat %s</string>
</resources>
+5 -1
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play ဝန်ဆောင်မှုများ မရရှိနိုင်ပါ။</string>
<string name="upgrades_no_purchases_found_check_account">ဝယ်ယူမှုများ မတွေ့ပါ။ သင်အသုံးပြုနေသော အကောင့်မှန်ကန်ပါသလား။</string>
</resources>
<string name="upgrades_gplay_billing_error_label">Google Play အမှား</string>
<string name="upgrades_gplay_billing_error_description">Google Play တွင် အမှားတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။ ကျေးဇူးပြု၍ နောင်မှ ထပ်ကြိုးစားပါ သို့မဟုတ် သင့်ဖုန်းကို ပြန်လည်စတင်ပါ။\n\nအမှား- %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play ငွေတောင်းမှု အမှား</string>
<string name="upgrades_gplay_billing_result_error_description">သင့်ဝယ်ယူမှု အသေးစိတ်များကို Google Play ထံမှ မေးမြန်းစဥ် အမှားတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။ Google Play cache ကို ရှင်းလင်းပြီး သင့်ဖုန်းကို ပြန်လည်စတင်ပါ။\n\nအမှား %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play-tjenester er utilgjengelige.</string>
<string name="upgrades_no_purchases_found_check_account">Ingen kjøp funnet. Bruker du riktig konto?</string>
<string name="upgrades_gplay_billing_error_label">Google Play-feil</string>
<string name="upgrades_gplay_billing_error_description">Det oppstod en feil i Google Play. Vennligst prøv igjen senere eller start telefonen på nytt.\n\nFeil: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play-faktureringsfeil</string>
<string name="upgrades_gplay_billing_result_error_description">Det oppstod en feil da Google Play ble spurt om kjøpsdetaljene dine. Tøm Google Play-hurtigbufferen og start telefonen på nytt.\n\nFeil %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play सेवाहरू अनुपलब्ध छन्।</string>
<string name="upgrades_no_purchases_found_check_account">कुनै खरिदहरू फेला परेनन्। के तपाईंले सही खाता प्रयोग गरिरहनुभएको छ?</string>
<string name="upgrades_gplay_billing_error_label">Google Play त्रुटि</string>
<string name="upgrades_gplay_billing_error_description">Google Play मा एक त्रुटि भयो। कृपया पछि फेरि प्रयास गर्नुहोस् वा आफ्नो फोन पुनः सुरु गर्नुहोस्।\n\nत्रुटि: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play बिलिङ त्रुटि</string>
<string name="upgrades_gplay_billing_result_error_description">तपाईंको खरिद विवरणका लागि Google Play लाई सोध्दा एक त्रुटि भयो। Google Play क्यास सफा गर्नुहोस् र आफ्नो फोन पुनः सुरु गर्नुहोस्।\n\nत्रुटि %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">De Google Play-diensten zijn niet beschikbaar.</string>
<string name="upgrades_no_purchases_found_check_account">Geen aankopen gevonden. Gebruikt u de juiste rekening?</string>
<string name="upgrades_gplay_billing_error_label">Google Play-fout</string>
<string name="upgrades_gplay_billing_error_description">Er is een fout opgetreden in Google Play. Probeer het later opnieuw of start uw telefoon opnieuw op.\n\nFout: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play-factureringsfout</string>
<string name="upgrades_gplay_billing_result_error_description">Er is een fout opgetreden bij het opvragen van uw aankoopgegevens bij Google Play. Wis de Google Play-cache en start uw telefoon opnieuw op.\n\nFout %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Usługi Google Play nie są dostępne.</string>
<string name="upgrades_no_purchases_found_check_account">Nie znaleziono zakupu. Czy na pewno korzystasz z poprawnego konta?</string>
<string name="upgrades_gplay_billing_error_label">Błąd Google Play</string>
<string name="upgrades_gplay_billing_error_description">Wystąpił błąd w Google Play. Spróbuj ponownie później lub uruchom ponownie telefon.\n\nBłąd: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Błąd rozliczenia Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Wystąpił błąd podczas pobierania szczegółów zakupu z Google Play. Wyczyść pamięć podręczną Google Play i uruchom ponownie telefon.\n\nBłąd %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Os serviços do Google Play não estão disponíveis.</string>
<string name="upgrades_no_purchases_found_check_account">Nenhuma compra encontrada. Você está usando a conta certa?</string>
<string name="upgrades_gplay_billing_error_label">Erro do Google Play</string>
<string name="upgrades_gplay_billing_error_description">Ocorreu um erro no Google Play. Tente novamente mais tarde ou reinicie seu telefone.\n\nErro: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Erro de Faturamento do Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Ocorreu um erro ao solicitar os detalhes da sua compra ao Google Play. Limpe o cache do Google Play e reinicie seu telefone.\n\nErro %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Os serviços do Google Play estão indisponíveis.</string>
<string name="upgrades_no_purchases_found_check_account">Nenhuma compra encontrada. Está a usar a conta correta?</string>
<string name="upgrades_gplay_billing_error_label">Erro do Google Play</string>
<string name="upgrades_gplay_billing_error_description">Ocorreu um erro no Google Play. Tente novamente mais tarde ou reinicie o seu telemóvel.\n\nErro: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Erro de Faturamento do Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Ocorreu um erro ao solicitar os detalhes da sua compra ao Google Play. Limpe a cache do Google Play e reinicie o seu telemóvel.\n\nErro %s</string>
</resources>
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="upgrades_gplay_unavailable_error">Ils servezzans da Google Play n\'èn betg disponibels.</string>
<string name="upgrades_no_purchases_found_check_account">Nagins acquists chattads. Utiliseschas ti il conto gist?</string>
<string name="upgrades_gplay_billing_error_label">Errur da Google Play</string>
<string name="upgrades_gplay_billing_error_description">Igl è succedida in\'errur en Google Play. Emprova p.pl. pli tard u reaviescha tes telefonin.\n\nErrur: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Errur da facturaziun da Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Igl è succedida in\'errur cun dumandar ils detagls da tes acquist da Google Play. Svidescha il cache da Google Play e reaviescha tes telefonin.\n\nErrur %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Serviciile Google Play nu sunt disponibile.</string>
<string name="upgrades_no_purchases_found_check_account">Nu s-au găsit achiziții. Folosești contul corect?</string>
<string name="upgrades_gplay_billing_error_label">Eroare Google Play</string>
<string name="upgrades_gplay_billing_error_description">A apărut o eroare în Google Play. Încearcă din nou mai târziu sau repornește telefonul.\n\nEroare: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Eroare de facturare Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">A apărut o eroare la solicitarea detaliilor achiziției de la Google Play. Șterge cache-ul Google Play și repornește telefonul.\n\nEroare %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Сервисы Google Play недоступны.</string>
<string name="upgrades_no_purchases_found_check_account">Покупки не найдены. Вы используете правильный аккаунт?</string>
<string name="upgrades_gplay_billing_error_label">Ошибка Google Play</string>
<string name="upgrades_gplay_billing_error_description">Произошла ошибка в Google Play. Повторите попытку позже или перезагрузите телефон.\n\nОшибка: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Ошибка оплаты Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Произошла ошибка при запросе деталей покупки в Google Play. Очистите кэш Google Play и перезагрузите телефон.\n\nОшибка %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Servìtzios Google Play non sunt disponìbiles.</string>
<string name="upgrades_no_purchases_found_check_account">Perunu achistu agatadu. Ses usende su contu giustu?</string>
<string name="upgrades_gplay_billing_error_label">Errore Google Play</string>
<string name="upgrades_gplay_billing_error_description">B\'est istadu un\'errore in Google Play. Prova torra prus tardu o torra a allui su telèfonu.\n\nErrore: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Errore de faturatzione Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">B\'est istadu un\'errore pedende sos detallios de s\'achistu tuo a Google Play. Lìmpia sa cache de Google Play e torra a allui su telèfonu.\n\nErrore %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">ගූගල් ප්ලේ සේවා නොතිබේ.</string>
<string name="upgrades_no_purchases_found_check_account">කිසිදු මිලදී ගැනීමක් හමු නොවීය. ඔබ ትክክለኛ ගිණුම භාවිතා කරනවාද?</string>
<string name="upgrades_gplay_billing_error_label">Google Play දෝෂය</string>
<string name="upgrades_gplay_billing_error_description">Google Play හි දෝෂයක් සිදු විය. කරුණාකර නැවත උත්සාහ කරන්න හෝ ඔබගේ දුරකථනය නැවත ආරම්භ කරන්න.\n\nදෝෂය: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play බිල් කිරීමේ දෝෂය</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play වෙතින් ඔබගේ මිලදී ගැනීමේ විස්තර ඉල්ලීමේදී දෝෂයක් සිදු විය. Google Play cache හිස් කර ඔබගේ දුරකථනය නැවත ආරම්භ කරන්න.\n\nදෝෂය %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Služby Google Play nie sú k dispozícii.</string>
<string name="upgrades_no_purchases_found_check_account">Nenašli sa žiadne nákupy. Používate správny účet?</string>
<string name="upgrades_gplay_billing_error_label">Chyba Google Play</string>
<string name="upgrades_gplay_billing_error_description">V Google Play sa vyskytla chyba. Skúste to neskôr alebo reštartujte telefón.\n\nChyba: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Chyba fakturácie Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Pri vyžiadaní podrobností o vašom nákupe z Google Play sa vyskytla chyba. Vymažte vyrovnávaciu pamäť Google Play a reštartujte telefón.\n\nChyba %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Storitve Google Play niso na voljo.</string>
<string name="upgrades_no_purchases_found_check_account">Ni najdenih nakupov. Ali uporabljate pravi račun?</string>
<string name="upgrades_gplay_billing_error_label">Napaka Google Play</string>
<string name="upgrades_gplay_billing_error_description">Prišlo je do napake v Google Play. Poskusite znova pozneje ali ponovno zaženite telefon.\n\nNapaka: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Napaka obračunavanja Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Prišlo je do napake pri zahtevanju podrobnosti vašega nakupa iz Google Play. Počistite predpomnilnik Google Play in ponovno zaženite telefon.\n\nNapaka %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Shërbimet e Google Play nuk janë të disponueshme.</string>
<string name="upgrades_no_purchases_found_check_account">Nuk u gjetën blerje. Po përdorni llogarinë e duhur?</string>
<string name="upgrades_gplay_billing_error_label">Gabim Google Play</string>
<string name="upgrades_gplay_billing_error_description">Ndodhi një gabim në Google Play. Ju lutemi provoni përsëri më vonë ose rindizni telefonin tuaj.\n\nGabim: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Gabim faturimi Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Ndodhi një gabim gjatë kërkimit të detajeve të blerjes suaj nga Google Play. Pastroni cache-n e Google Play dhe rindizni telefonin tuaj.\n\nGabim %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play услуге нису доступне.</string>
<string name="upgrades_no_purchases_found_check_account">Није пронађена ниједна куповина. Да ли користите прави налог?</string>
<string name="upgrades_gplay_billing_error_label">Google Play грешка</string>
<string name="upgrades_gplay_billing_error_description">Дошло је до грешке у Google Play-у. Покушајте поново касније или рестартујте телефон.\n\nГрешка: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Грешка наплате Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Дошло је до грешке приликом захтевања детаља ваше куповине од Google Play-а. Очистите кеш Google Play-а и рестартујте телефон.\n\nГрешка %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play-tjänster är inte tillgängliga.</string>
<string name="upgrades_no_purchases_found_check_account">Inga köp hittades. Använder du rätt konto?</string>
<string name="upgrades_gplay_billing_error_label">Google Play-fel</string>
<string name="upgrades_gplay_billing_error_description">Det uppstod ett fel i Google Play. Försök igen senare eller starta om telefonen.\n\nFel: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play faktureringsfel</string>
<string name="upgrades_gplay_billing_result_error_description">Det uppstod ett fel när Google Play tillfrågades om dina köpdetaljer. Rensa Google Play-cache och starta om telefonen.\n\nFel %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Huduma za Google Play hazipatikani.</string>
<string name="upgrades_no_purchases_found_check_account">Hakuna manunuzi yaliyopatikana. Je, unatumia akaunti sahihi?</string>
<string name="upgrades_gplay_billing_error_label">Hitilafu ya Google Play</string>
<string name="upgrades_gplay_billing_error_description">Kulikuwa na hitilafu katika Google Play. Tafadhali jaribu tena baadaye au anzisha upya simu yako.\n\nHitilafu: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Hitilafu ya Malipo ya Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Kulikuwa na hitilafu wakati wa kuuliza Google Play maelezo ya ununuzi wako. Futa cache ya Google Play na uanzishe upya simu yako.\n\nHitilafu %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play சேவைகள் கிடைக்கவில்லை.</string>
<string name="upgrades_no_purchases_found_check_account">வாங்குதல்கள் எதுவும் இல்லை. நீங்கள் சரியான கணக்கைப் பயன்படுத்துகிறீர்களா?</string>
<string name="upgrades_gplay_billing_error_label">Google Play பிழை</string>
<string name="upgrades_gplay_billing_error_description">Google Play இல் பிழை ஏற்பட்டது. பின்னர் மீண்டும் முயற்சிக்கவும் அல்லது உங்கள் தொலைபேசியை மறுதொடக்கம் செய்யவும்.\n\nபிழை: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play பில்லிங் பிழை</string>
<string name="upgrades_gplay_billing_result_error_description">உங்கள் கொள்முதல் விவரங்களை Google Play இடம் கேட்கும்போது பிழை ஏற்பட்டது. Google Play தற்காலிக சேமிப்பை அழித்து உங்கள் தொலைபேசியை மறுதொடக்கம் செய்யவும்.\n\nபிழை %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play సేవలు అందుబాటులో లేవు.</string>
<string name="upgrades_no_purchases_found_check_account">కొనుగోళ్లు ఏవీ కనుగొనబడలేదు. మీరు సరైన ఖాతాను ఉపయోగిస్తున్నారా?</string>
<string name="upgrades_gplay_billing_error_label">Google Play లోపం</string>
<string name="upgrades_gplay_billing_error_description">Google Play లో లోపం ఉంది. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి లేదా మీ ఫోన్ను రీబూట్ చేయండి.\n\nలోపం: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play బిల్లింగ్ లోపం</string>
<string name="upgrades_gplay_billing_result_error_description">మీ కొనుగోలు వివరాల కోసం Google Play ని అడగగానే లోపం ఉంది. Google Play క్యాషేను క్లియర్ చేసి మీ ఫోన్ను రీబూట్ చేయండి.\n\nలోపం %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">บริการ Google Play ไม่พร้อมใช้งาน</string>
<string name="upgrades_no_purchases_found_check_account">ไม่พบการสั่งซื้อ คุณใช้บัญชีที่ถูกต้องหรือไม่</string>
<string name="upgrades_gplay_billing_error_label">ข้อผิดพลาด Google Play</string>
<string name="upgrades_gplay_billing_error_description">เกิดข้อผิดพลาดใน Google Play โปรดลองอีกครั้งในภายหลังหรือรีบูตโทรศัพท์ของคุณ\n\nข้อผิดพลาด: %s</string>
<string name="upgrades_gplay_billing_result_error_label">ข้อผิดพลาดการเรียกเก็บเงิน Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">เกิดข้อผิดพลาดเมื่อขอรายละเอียดการซื้อของคุณจาก Google Play ล้างแคช Google Play และรีบูตโทรศัพท์ของคุณ\n\nข้อผิดพลาด %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play hizmetleri kullanılamıyor.</string>
<string name="upgrades_no_purchases_found_check_account">Satın alma bulunamadı. Doğru hesabı mı kullanıyorsunuz?</string>
<string name="upgrades_gplay_billing_error_label">Google Play Hatası</string>
<string name="upgrades_gplay_billing_error_description">Google Play\'de bir hata oluştu. Lütfen daha sonra tekrar deneyin veya telefonunuzu yeniden başlatın.\n\nHata: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play Faturalama Hatası</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play\'den satın alma ayrıntılarınızı alırken bir hata oluştu. Google Play önbelleğini temizleyin ve telefonunuzu yeniden başlatın.\n\nHata %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Сервіси Google Play недоступні.</string>
<string name="upgrades_no_purchases_found_check_account">Покупок не знайдено. Ви справді використовуєте правильний обліковий запис?</string>
<string name="upgrades_gplay_billing_error_label">Помилка Google Play</string>
<string name="upgrades_gplay_billing_error_description">Сталася помилка в Google Play. Будь ласка, спробуйте пізніше або перезавантажте телефон.\n\nПомилка: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Помилка розрахунків Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Сталася помилка при запиті даних про покупки у Google Play. Очистіть кеш Google Play та перезавантажте телефон.\n\nПомилка %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play کی سروسز دستیاب نہیں ہیں۔</string>
<string name="upgrades_no_purchases_found_check_account">کوئی خریداری نہیں ملی۔ کیا آپ درست اکاؤنٹ استعمال کر رہے ہیں؟</string>
<string name="upgrades_gplay_billing_error_label">Google Play کی خرابی</string>
<string name="upgrades_gplay_billing_error_description">Google Play میں خرابی تھی۔ برائے مہربانی بعد میں دوبارہ کوشش کریں یا اپنا فون ری بوٹ کریں۔\n\nخرابی: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play بلنگ کی خرابی</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play سے آپ کی خریداری کی تفصیلات مانگتے وقت خرابی ہوئی۔ Google Play کیش صاف کریں اور اپنا فون ری بوٹ کریں۔\n\nخرابی %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play xizmatlari mavjud emas.</string>
<string name="upgrades_no_purchases_found_check_account">Xaridlar topilmadi. Togri hisobdan foydalanayapsizmi?</string>
<string name="upgrades_gplay_billing_error_label">Google Play xatosi</string>
<string name="upgrades_gplay_billing_error_description">Google Play da xatolik yuz berdi. Iltimos, keyinroq qayta urinib ko\'ring yoki telefoningizni qayta ishga tushiring.\n\nXato: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play to\'lov xatosi</string>
<string name="upgrades_gplay_billing_result_error_description">Google Play dan xaridingiz tafsilotlarini so\'rashda xatolik yuz berdi. Google Play keshini tozalang va telefoningizni qayta ishga tushiring.\n\nXato %s</string>
</resources>
+4
View File
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Các dịch vụ của Google Play không khả dụng.</string>
<string name="upgrades_no_purchases_found_check_account">Không tìm thấy giao dịch mua nào. Bạn có đang sử dụng đúng tài khoản không?</string>
<string name="upgrades_gplay_billing_error_label">Lỗi Google Play</string>
<string name="upgrades_gplay_billing_error_description">Đã xảy ra lỗi trong Google Play. Vui lòng thử lại sau hoặc khởi động lại điện thoại của bạn.\n\nLỗi: %s</string>
<string name="upgrades_gplay_billing_result_error_label">Lỗi thanh toán Google Play</string>
<string name="upgrades_gplay_billing_result_error_description">Đã xảy ra lỗi khi yêu cầu Google Play cung cấp chi tiết giao dịch mua của bạn. Xóa bộ nhớ đệm Google Play và khởi động lại điện thoại.\n\nLỗi %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play 服务不可用</string>
<string name="upgrades_no_purchases_found_check_account">未找到购买记录,您使用的帐户正确吗?</string>
<string name="upgrades_gplay_billing_error_label">Google Play 错误</string>
<string name="upgrades_gplay_billing_error_description">Google Play 出现错误。请稍后再试或重启您的手机。\n\n错误:%s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play 计费错误</string>
<string name="upgrades_gplay_billing_result_error_description">向 Google Play 请求您的购买详情时出现错误。清除 Google Play 缓存并重启您的手机。\n\n错误 %s</string>
</resources>
@@ -2,4 +2,8 @@
<resources>
<string name="upgrades_gplay_unavailable_error">Google Play 服務無法使用。</string>
<string name="upgrades_no_purchases_found_check_account">未找到訂單,確定帳戶無誤?</string>
<string name="upgrades_gplay_billing_error_label">Google Play 錯誤</string>
<string name="upgrades_gplay_billing_error_description">Google Play 出現錯誤。請稍後再試或重新啟動您的手機。\n\n錯誤:%s</string>
<string name="upgrades_gplay_billing_result_error_label">Google Play 計費錯誤</string>
<string name="upgrades_gplay_billing_result_error_description">向 Google Play 請求您的購買詳情時出現錯誤。清除 Google Play 快取並重新啟動您的手機。\n\n錯誤 %s</string>
</resources>

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