v2
13
android/.gitignore
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
gradle-wrapper.jar
|
||||
/.gradle
|
||||
/captures/
|
||||
/gradlew
|
||||
/gradlew.bat
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
||||
|
||||
# Remember to never publicly share your keystore.
|
||||
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
|
||||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
||||
@@ -1,55 +0,0 @@
|
||||
# To learn about Buck see [Docs](https://buckbuild.com/).
|
||||
# To run your application with Buck:
|
||||
# - install Buck
|
||||
# - `npm start` - to start the packager
|
||||
# - `cd android`
|
||||
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
|
||||
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
|
||||
# - `buck install -r android/app` - compile, install and run application
|
||||
#
|
||||
|
||||
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
|
||||
|
||||
lib_deps = []
|
||||
|
||||
create_aar_targets(glob(["libs/*.aar"]))
|
||||
|
||||
create_jar_targets(glob(["libs/*.jar"]))
|
||||
|
||||
android_library(
|
||||
name = "all-libs",
|
||||
exported_deps = lib_deps,
|
||||
)
|
||||
|
||||
android_library(
|
||||
name = "app-code",
|
||||
srcs = glob([
|
||||
"src/main/java/**/*.java",
|
||||
]),
|
||||
deps = [
|
||||
":all-libs",
|
||||
":build_config",
|
||||
":res",
|
||||
],
|
||||
)
|
||||
|
||||
android_build_config(
|
||||
name = "build_config",
|
||||
package = "com.subtracks",
|
||||
)
|
||||
|
||||
android_resource(
|
||||
name = "res",
|
||||
package = "com.subtracks",
|
||||
res = "src/main/res",
|
||||
)
|
||||
|
||||
android_binary(
|
||||
name = "app",
|
||||
keystore = "//android/keystores:debug",
|
||||
manifest = "src/main/AndroidManifest.xml",
|
||||
package_type = "debug",
|
||||
deps = [
|
||||
":app-code",
|
||||
],
|
||||
)
|
||||
@@ -1,314 +1,71 @@
|
||||
apply plugin: "com.android.application"
|
||||
def localProperties = new Properties()
|
||||
def localPropertiesFile = rootProject.file('local.properties')
|
||||
if (localPropertiesFile.exists()) {
|
||||
localPropertiesFile.withReader('UTF-8') { reader ->
|
||||
localProperties.load(reader)
|
||||
}
|
||||
}
|
||||
|
||||
import com.android.build.OutputFile
|
||||
def flutterRoot = localProperties.getProperty('flutter.sdk')
|
||||
if (flutterRoot == null) {
|
||||
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
|
||||
}
|
||||
|
||||
/**
|
||||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
||||
* and bundleReleaseJsAndAssets).
|
||||
* These basically call `react-native bundle` with the correct arguments during the Android build
|
||||
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
|
||||
* bundle directly from the development server. Below you can see all the possible configurations
|
||||
* and their defaults. If you decide to add a configuration block, make sure to add it before the
|
||||
* `apply from: "../../node_modules/react-native/react.gradle"` line.
|
||||
*
|
||||
* project.ext.react = [
|
||||
* // the name of the generated asset file containing your JS bundle
|
||||
* bundleAssetName: "index.android.bundle",
|
||||
*
|
||||
* // the entry file for bundle generation. If none specified and
|
||||
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
|
||||
* // default. Can be overridden with ENTRY_FILE environment variable.
|
||||
* entryFile: "index.android.js",
|
||||
*
|
||||
* // https://reactnative.dev/docs/performance#enable-the-ram-format
|
||||
* bundleCommand: "ram-bundle",
|
||||
*
|
||||
* // whether to bundle JS and assets in debug mode
|
||||
* bundleInDebug: false,
|
||||
*
|
||||
* // whether to bundle JS and assets in release mode
|
||||
* bundleInRelease: true,
|
||||
*
|
||||
* // whether to bundle JS and assets in another build variant (if configured).
|
||||
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
|
||||
* // The configuration property can be in the following formats
|
||||
* // 'bundleIn${productFlavor}${buildType}'
|
||||
* // 'bundleIn${buildType}'
|
||||
* // bundleInFreeDebug: true,
|
||||
* // bundleInPaidRelease: true,
|
||||
* // bundleInBeta: true,
|
||||
*
|
||||
* // whether to disable dev mode in custom build variants (by default only disabled in release)
|
||||
* // for example: to disable dev mode in the staging build type (if configured)
|
||||
* devDisabledInStaging: true,
|
||||
* // The configuration property can be in the following formats
|
||||
* // 'devDisabledIn${productFlavor}${buildType}'
|
||||
* // 'devDisabledIn${buildType}'
|
||||
*
|
||||
* // the root of your project, i.e. where "package.json" lives
|
||||
* root: "../../",
|
||||
*
|
||||
* // where to put the JS bundle asset in debug mode
|
||||
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
|
||||
*
|
||||
* // where to put the JS bundle asset in release mode
|
||||
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
|
||||
*
|
||||
* // where to put drawable resources / React Native assets, e.g. the ones you use via
|
||||
* // require('./image.png')), in debug mode
|
||||
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
|
||||
*
|
||||
* // where to put drawable resources / React Native assets, e.g. the ones you use via
|
||||
* // require('./image.png')), in release mode
|
||||
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
|
||||
*
|
||||
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
|
||||
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
|
||||
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
|
||||
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
|
||||
* // for example, you might want to remove it from here.
|
||||
* inputExcludes: ["android/**", "ios/**"],
|
||||
*
|
||||
* // override which node gets called and with what additional arguments
|
||||
* nodeExecutableAndArgs: ["node"],
|
||||
*
|
||||
* // supply additional arguments to the packager
|
||||
* extraPackagerArgs: []
|
||||
* ]
|
||||
*/
|
||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
||||
if (flutterVersionCode == null) {
|
||||
flutterVersionCode = '1'
|
||||
}
|
||||
|
||||
project.ext.react = [
|
||||
enableHermes: true, // clean and rebuild if changing
|
||||
]
|
||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
||||
if (flutterVersionName == null) {
|
||||
flutterVersionName = '1.0'
|
||||
}
|
||||
|
||||
apply from: "../../node_modules/react-native/react.gradle"
|
||||
|
||||
/**
|
||||
* Set this to true to create two separate APKs instead of one:
|
||||
* - An APK that only works on ARM devices
|
||||
* - An APK that only works on x86 devices
|
||||
* The advantage is the size of the APK is reduced by about 4MB.
|
||||
* Upload all the APKs to the Play Store and people will download
|
||||
* the correct one based on the CPU architecture of their device.
|
||||
*/
|
||||
def enableSeparateBuildPerCPUArchitecture = false
|
||||
|
||||
/**
|
||||
* Run Proguard to shrink the Java bytecode in release builds.
|
||||
*/
|
||||
def enableProguardInReleaseBuilds = true
|
||||
|
||||
/**
|
||||
* The preferred build flavor of JavaScriptCore.
|
||||
*
|
||||
* For example, to use the international variant, you can use:
|
||||
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
|
||||
*
|
||||
* The international variant includes ICU i18n library and necessary data
|
||||
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
|
||||
* give correct results when using with locales other than en-US. Note that
|
||||
* this variant is about 6MiB larger per architecture than default.
|
||||
*/
|
||||
def jscFlavor = 'org.webkit:android-jsc:+'
|
||||
|
||||
/**
|
||||
* Whether to enable the Hermes VM.
|
||||
*
|
||||
* This should be set on project.ext.react and mirrored here. If it is not set
|
||||
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
|
||||
* and the benefits of using Hermes will therefore be sharply reduced.
|
||||
*/
|
||||
def enableHermes = project.ext.react.get("enableHermes", false);
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
|
||||
android {
|
||||
ndkVersion rootProject.ext.ndkVersion
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
compileSdkVersion flutter.compileSdkVersion
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.subtracks"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 9
|
||||
versionName '1.3.0'
|
||||
}
|
||||
splits {
|
||||
abi {
|
||||
reset()
|
||||
enable enableSeparateBuildPerCPUArchitecture
|
||||
universalApk false // If true, also generate a universal APK
|
||||
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
||||
}
|
||||
}
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile file('debug.keystore')
|
||||
storePassword 'android'
|
||||
keyAlias 'androiddebugkey'
|
||||
keyPassword 'android'
|
||||
}
|
||||
release {
|
||||
if (project.hasProperty("SUBTRACKS_UPLOAD_STORE_FILE")) {
|
||||
storeFile file(SUBTRACKS_UPLOAD_STORE_FILE)
|
||||
storePassword SUBTRACKS_UPLOAD_STORE_PASSWORD
|
||||
keyAlias SUBTRACKS_UPLOAD_KEY_ALIAS
|
||||
keyPassword SUBTRACKS_UPLOAD_KEY_PASSWORD
|
||||
}
|
||||
}
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "com.subtracks2"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||
minSdkVersion 19
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
release {
|
||||
if (project.hasProperty("signReleaseWithDebug")) {
|
||||
signingConfig signingConfigs.debug
|
||||
} else {
|
||||
signingConfig signingConfigs.release
|
||||
}
|
||||
minifyEnabled enableProguardInReleaseBuilds
|
||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// applicationVariants are e.g. debug, release
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.each { output ->
|
||||
// For each separate APK per architecture, set a unique version code as described here:
|
||||
// https://developer.android.com/studio/build/configure-apk-splits.html
|
||||
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
|
||||
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
|
||||
def abi = output.getFilter(OutputFile.ABI)
|
||||
if (abi != null) { // null for the universal-debug, universal-release variants
|
||||
output.versionCodeOverride =
|
||||
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
flutter {
|
||||
source '../..'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
//noinspection GradleDynamicVersion
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
|
||||
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
||||
|
||||
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.fbjni'
|
||||
}
|
||||
|
||||
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.flipper'
|
||||
exclude group:'com.squareup.okhttp3', module:'okhttp'
|
||||
}
|
||||
|
||||
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.flipper'
|
||||
}
|
||||
|
||||
if (enableHermes) {
|
||||
def hermesPath = "../../node_modules/hermes-engine/android/";
|
||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||
releaseImplementation files(hermesPath + "hermes-release.aar")
|
||||
} else {
|
||||
implementation jscFlavor
|
||||
}
|
||||
|
||||
implementation(project(":react-native-track-player")) {
|
||||
exclude group:'com.google.android.exoplayer'
|
||||
}
|
||||
implementation project(':exoplayer-library-core')
|
||||
implementation project(':exoplayer-extension-ffmpeg')
|
||||
compileOnly project(':exoplayer-library-dash')
|
||||
compileOnly project(':exoplayer-library-hls')
|
||||
compileOnly project(':exoplayer-library-smoothstreaming')
|
||||
}
|
||||
|
||||
// Run this once to be able to run the application with BUCK
|
||||
// puts all compile dependencies into folder libs for BUCK to use
|
||||
task copyDownloadableDepsToLibs(type: Copy) {
|
||||
from configurations.compile
|
||||
into 'libs'
|
||||
}
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
||||
class Version {
|
||||
|
||||
private int major
|
||||
private int minor
|
||||
private int patch
|
||||
private int code
|
||||
|
||||
Version(int code, String version) {
|
||||
this.code = code
|
||||
|
||||
def (major, minor, patch) = version.tokenize('.')
|
||||
this.major = major.toInteger()
|
||||
this.minor = minor.toInteger()
|
||||
this.patch = patch.toInteger()
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
void bumpMajor() {
|
||||
major += 1
|
||||
minor = 0
|
||||
patch = 0
|
||||
|
||||
code += 1
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
void bumpMinor() {
|
||||
minor += 1
|
||||
patch = 0
|
||||
|
||||
code += 1
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
void bumpPatch() {
|
||||
patch += 1
|
||||
code += 1
|
||||
}
|
||||
|
||||
String getName() { "$major.$minor.$patch" }
|
||||
|
||||
int getCode() { code }
|
||||
}
|
||||
|
||||
tasks.addRule("Pattern: bump<TYPE>Version") { String taskName ->
|
||||
if (taskName.matches("bump(Major|Minor|Patch)Version")) {
|
||||
task(taskName) {
|
||||
doLast {
|
||||
String type = (taskName - 'bump' - 'Version')
|
||||
|
||||
println "Bumping ${type.toLowerCase()} version…"
|
||||
|
||||
int oldVersionCode = android.defaultConfig.versionCode
|
||||
String oldVersionName = android.defaultConfig.versionName
|
||||
|
||||
version = new Version(oldVersionCode, oldVersionName)
|
||||
version."bump$type"()
|
||||
|
||||
String newVersionName = version.getName()
|
||||
String newVersionCode = version.getCode()
|
||||
|
||||
println "$oldVersionName ($oldVersionCode) → $newVersionName ($newVersionCode)"
|
||||
|
||||
def updated = buildFile.getText()
|
||||
updated = updated.replaceFirst("versionName '$oldVersionName'", "versionName '$newVersionName'")
|
||||
updated = updated.replaceFirst("versionCode $oldVersionCode", "versionCode $newVersionCode")
|
||||
|
||||
buildFile.setText(updated)
|
||||
}
|
||||
}
|
||||
}
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
"""Helper definitions to glob .aar and .jar targets"""
|
||||
|
||||
def create_aar_targets(aarfiles):
|
||||
for aarfile in aarfiles:
|
||||
name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
|
||||
lib_deps.append(":" + name)
|
||||
android_prebuilt_aar(
|
||||
name = name,
|
||||
aar = aarfile,
|
||||
)
|
||||
|
||||
def create_jar_targets(jarfiles):
|
||||
for jarfile in jarfiles:
|
||||
name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
|
||||
lib_deps.append(":" + name)
|
||||
prebuilt_jar(
|
||||
name = name,
|
||||
binary_jar = jarfile,
|
||||
)
|
||||
16
android/app/proguard-rules.pro
vendored
@@ -1,16 +0,0 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the proguardFiles
|
||||
# directive in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
-keep class com.facebook.react.turbomodule.** { *; }
|
||||
|
||||
# react-native-reanimated
|
||||
# https://github.com/software-mansion/react-native-reanimated/pull/2725
|
||||
-keep class com.swmansion.** {*;}
|
||||
@@ -1,13 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
|
||||
<application
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:targetApi="28"
|
||||
tools:ignore="GoogleAppIndexingWarning">
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
||||
</application>
|
||||
package="com.subtracks2">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
|
||||
@@ -1,72 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*/
|
||||
package com.subtracks;
|
||||
|
||||
import android.content.Context;
|
||||
import com.facebook.flipper.android.AndroidFlipperClient;
|
||||
import com.facebook.flipper.android.utils.FlipperUtils;
|
||||
import com.facebook.flipper.core.FlipperClient;
|
||||
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
|
||||
import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
|
||||
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
|
||||
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.modules.network.NetworkingModule;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class ReactNativeFlipper {
|
||||
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
|
||||
if (FlipperUtils.shouldEnableFlipper(context)) {
|
||||
final FlipperClient client = AndroidFlipperClient.getInstance(context);
|
||||
|
||||
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
|
||||
client.addPlugin(new ReactFlipperPlugin());
|
||||
client.addPlugin(new DatabasesFlipperPlugin(context));
|
||||
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
|
||||
client.addPlugin(CrashReporterPlugin.getInstance());
|
||||
|
||||
NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
|
||||
NetworkingModule.setCustomClientBuilder(
|
||||
new NetworkingModule.CustomClientBuilder() {
|
||||
@Override
|
||||
public void apply(OkHttpClient.Builder builder) {
|
||||
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
|
||||
}
|
||||
});
|
||||
client.addPlugin(networkFlipperPlugin);
|
||||
client.start();
|
||||
|
||||
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
|
||||
// Hence we run if after all native modules have been initialized
|
||||
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
|
||||
if (reactContext == null) {
|
||||
reactInstanceManager.addReactInstanceEventListener(
|
||||
new ReactInstanceManager.ReactInstanceEventListener() {
|
||||
@Override
|
||||
public void onReactContextInitialized(ReactContext reactContext) {
|
||||
reactInstanceManager.removeReactInstanceEventListener(this);
|
||||
reactContext.runOnNativeModulesQueueThread(
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
client.addPlugin(new FrescoFlipperPlugin());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
client.addPlugin(new FrescoFlipperPlugin());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,72 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.subtracks" xmlns:tools="http://schemas.android.com/tools">
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission tools:node="remove" android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission tools:node="remove" android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission tools:node="remove" android:name="com.android.vending.CHECK_LICENSE"/>
|
||||
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme" android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config">
|
||||
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustPan">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
<data android:scheme="trackplayer"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.subtracks2">
|
||||
<application
|
||||
android:label="subtracks"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:usesCleartextTraffic="true">
|
||||
<activity
|
||||
android:name="com.ryanheise.audioservice.AudioServiceActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
while the Flutter UI initializes. After that, this theme continues
|
||||
to determine the Window background behind the Flutter UI. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme" />
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<service
|
||||
android:name="com.ryanheise.audioservice.AudioService"
|
||||
android:foregroundServiceType="mediaPlayback"
|
||||
android:exported="true"
|
||||
tools:ignore="Instantiatable">
|
||||
<intent-filter>
|
||||
<action android:name="android.media.browse.MediaBrowserService" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<service
|
||||
android:name="com.ryanheise.audioservice.AudioService"
|
||||
android:foregroundServiceType="mediaPlayback"
|
||||
android:exported="true"
|
||||
tools:ignore="Instantiatable">
|
||||
<intent-filter>
|
||||
<action android:name="android.media.browse.MediaBrowserService" />
|
||||
</intent-filter>
|
||||
</service>
|
||||
<receiver
|
||||
android:name="com.ryanheise.audioservice.MediaButtonReceiver"
|
||||
android:exported="true"
|
||||
tools:ignore="Instantiatable">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MEDIA_BUTTON" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
<!-- <meta-data
|
||||
android:name="io.flutter.embedding.android.EnableImpeller"
|
||||
android:value="true" /> -->
|
||||
</application>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<!-- audio_service -->
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
</manifest>
|
||||
|
||||
@@ -1,172 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "أشهر الأغاني"
|
||||
},
|
||||
"name_0": "",
|
||||
"name_1": "أُغْنِيَة",
|
||||
"name_2": "",
|
||||
"name_3": "",
|
||||
"name_4": "أغاني",
|
||||
"name_5": ""
|
||||
},
|
||||
"album": {
|
||||
"name_0": "",
|
||||
"name_1": "ألبوم",
|
||||
"name_2": "",
|
||||
"name_3": "",
|
||||
"name_4": "ألبومات",
|
||||
"name_5": "",
|
||||
"lists": {
|
||||
"sort": "فرز الألبومات",
|
||||
"newest": "أضيف حديثا",
|
||||
"frequent": "مشغل كثيرا",
|
||||
"starred": "موسوم",
|
||||
"alphabeticalByArtist": "حسب الفنان/ة",
|
||||
"random": "عشوائي",
|
||||
"recent": "شغل حديثا",
|
||||
"alphabeticalByName": "حسب الاسم",
|
||||
"byYear": "حسب السنة",
|
||||
"byGenre": "حسب النوع"
|
||||
},
|
||||
"actions": {
|
||||
"view": "أعرض الألبوم",
|
||||
"play": "شَغل الألبوم"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"sort": "فرز الفنانين",
|
||||
"starred": "موسوم",
|
||||
"random": "عشوائي",
|
||||
"alphabeticalByName": "حسب الاسم"
|
||||
},
|
||||
"name_0": "",
|
||||
"name_1": "فنان",
|
||||
"name_2": "فنانان",
|
||||
"name_3": "",
|
||||
"name_4": "فنانون",
|
||||
"name_5": "",
|
||||
"actions": {
|
||||
"view": "أظهر الفنان"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name_0": "",
|
||||
"name_1": "قائمة تشغيل",
|
||||
"name_2": "قائمتان تشغيل",
|
||||
"name_3": "",
|
||||
"name_4": "",
|
||||
"name_5": "قوائم تشغيل",
|
||||
"actions": {
|
||||
"play": "شغل قائمة التشغيل"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name_0": "",
|
||||
"name_1": "صف",
|
||||
"name_2": "صفين",
|
||||
"name_3": "",
|
||||
"name_4": "",
|
||||
"name_5": "صفوف"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "مميز",
|
||||
"unstar": "ازل التمييز"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "لا شيء هنا…"
|
||||
},
|
||||
"search": {
|
||||
"headerTitle": "بحث: {{query}}",
|
||||
"nowPlayingContext": "نتائج البحث",
|
||||
"inputPlaceholder": "بحث",
|
||||
"moreResults": "المزيد…"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"actions": {
|
||||
"edit": "عدل السيرفر",
|
||||
"testConnection": "أخبر الأتصال",
|
||||
"delete": "حذف",
|
||||
"save": "حفظ",
|
||||
"add": "أضف سيرفر"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "الأتصال ب {{address}} جيد!",
|
||||
"connectionFailed": "الأتصال ب {{address}} فشل، ابحث في الإعدادات او السيرفر"
|
||||
},
|
||||
"fields": {
|
||||
"username": "إسم المستخدم",
|
||||
"password": "كلمة المرور",
|
||||
"address": "العناوين"
|
||||
},
|
||||
"name": "السيرفرات",
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"descriptionOn": "أرسل كلمة المرور بنص عادي (قديم ، تأكد من أن اتصالك آمن!)",
|
||||
"title": "أظهر كلمة المرور",
|
||||
"descriptionOff": "أرسل كلمة المرور على شكل توكِن"
|
||||
}
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"values": {
|
||||
"kbps": "{{value}} كيلو بايت في الثانية",
|
||||
"unlimitedKbps": "غير محدود",
|
||||
"seconds": "{{value}} ثواني"
|
||||
},
|
||||
"name": "الشبكة",
|
||||
"options": {
|
||||
"minBuffer": {
|
||||
"title": "الحد الأدنى من وقت التخزين المؤقت"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "أقصى معدل نقل بيانات (Wi-Fi)"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "الحد الأقصى من وقت التخزين المؤقت"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "أقصى معدل نقل بيانات (mobile)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"descriptionOn": "استيراد سجل التشغيل",
|
||||
"title": "استيراد سجل التشغيل",
|
||||
"descriptionOff": "لا تستورد سجل التشغيل"
|
||||
}
|
||||
},
|
||||
"name": "موسيقى"
|
||||
},
|
||||
"about": {
|
||||
"name": "حول",
|
||||
"version": "الإصدار {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "موقع المشروع",
|
||||
"licenses": "الرخص"
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "إعادة ضبط",
|
||||
"actions": {
|
||||
"clearImageCache": "مسح ذاكرة التخزين المؤقت للصور"
|
||||
}
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "الرئيسية",
|
||||
"library": "المكتبة",
|
||||
"settings": "الإعدادات",
|
||||
"search": "بحث"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"lists": {
|
||||
"newest": "Afegit recentment",
|
||||
"sort": "Ordenar els àlbums",
|
||||
"random": "Aleatori",
|
||||
"byGenre": "Per gènere",
|
||||
"alphabeticalByName": "Pel nom",
|
||||
"alphabeticalByArtist": "Per artista",
|
||||
"byYear": "Per any",
|
||||
"frequent": "Escoltat freqüentment",
|
||||
"recent": "Reproduït recentment",
|
||||
"starred": "Favorits"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Reproduir l'àlbum",
|
||||
"view": "Veure l'àlbum"
|
||||
},
|
||||
"name": "Àlbum",
|
||||
"name_plural": "Àlbums"
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"sort": "Ordenar els artistes",
|
||||
"starred": "Preferits",
|
||||
"alphabeticalByName": "Pel nom",
|
||||
"random": "Aleatori"
|
||||
},
|
||||
"name": "Artista",
|
||||
"name_plural": "Artistes",
|
||||
"actions": {
|
||||
"view": "Veure l'artista"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Cua",
|
||||
"name_plural": "Cues"
|
||||
},
|
||||
"song": {
|
||||
"name": "Cançó",
|
||||
"name_plural": "Cançons",
|
||||
"lists": {
|
||||
"artistTopSongs": "Millors cançons"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"actions": {
|
||||
"play": "Reproduir la llista de reproducció"
|
||||
},
|
||||
"name": "Llista de reproducció",
|
||||
"name_plural": "Llistes de reproducció"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"unstar": "Retirar estrella",
|
||||
"star": "Afegir als favorits"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Inici",
|
||||
"search": "Cercar",
|
||||
"library": "Biblioteca",
|
||||
"settings": "Paràmetres"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Aquí no hi ha res…"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"fields": {
|
||||
"username": "Nom d’usuari",
|
||||
"password": "Contrasenya",
|
||||
"address": "Adreça"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Forçar la contrasenya de text sense format",
|
||||
"descriptionOn": "Enviar la contrasenya en text sense format (obsolet, assegura't que la teva connexió sigui segura!)",
|
||||
"descriptionOff": "Enviar contrasenya com a token + salt"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "Afegir un servidor",
|
||||
"testConnection": "Comprovar la connexió",
|
||||
"save": "Desar",
|
||||
"edit": "Editar el servidor",
|
||||
"delete": "Esborrar"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Connexió a {{address}} OK!",
|
||||
"connectionFailed": "La connexió a {{address}} ha fallat, comprova la configuració o el servidor"
|
||||
},
|
||||
"name": "Servidors"
|
||||
},
|
||||
"network": {
|
||||
"name": "Xarxa",
|
||||
"values": {
|
||||
"seconds": "{{value}} segons",
|
||||
"kbps": "{{value}} kbps",
|
||||
"unlimitedKbps": "Il·limitat"
|
||||
},
|
||||
"options": {
|
||||
"maxBuffer": {
|
||||
"title": "Temps màxim en memòria intermèdia"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "Taxa de bits màxima (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Taxa de bits màxima (mòbil)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Temps mínim en memòria intermèdia"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Capturar la lectura",
|
||||
"descriptionOn": "Capturar l'historial de reproduccions",
|
||||
"descriptionOff": "No capturar l'historial de reproducció"
|
||||
}
|
||||
},
|
||||
"name": "Música"
|
||||
},
|
||||
"reset": {
|
||||
"name": "Reinicialitzar",
|
||||
"actions": {
|
||||
"clearImageCache": "Esborrar la memòria cau d'imatges"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Quant a",
|
||||
"version": "versió {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Pàgina d'inici del projecte",
|
||||
"licenses": "Llicències"
|
||||
}
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"nowPlayingContext": "Resultats de la cerca",
|
||||
"inputPlaceholder": "Cercar",
|
||||
"moreResults": "Més…",
|
||||
"headerTitle": "Cercar: {{query}}"
|
||||
}
|
||||
}
|
||||
@@ -1,127 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"name_0": "Skladba",
|
||||
"name_1": "Skladby",
|
||||
"name_2": "Skladby",
|
||||
"lists": {
|
||||
"artistTopSongs": "Top skladby"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"starred": "Ohodnocené",
|
||||
"sort": "Seřadit umělce",
|
||||
"alphabeticalByName": "Podle názvu",
|
||||
"random": "Náhodně"
|
||||
},
|
||||
"name_0": "Umělec",
|
||||
"name_1": "Umělci",
|
||||
"name_2": "Umělci",
|
||||
"actions": {
|
||||
"view": "Zobrazit umělce"
|
||||
}
|
||||
},
|
||||
"album": {
|
||||
"name_0": "Album",
|
||||
"name_1": "Alba",
|
||||
"name_2": "Alba",
|
||||
"lists": {
|
||||
"sort": "Seřadit alba",
|
||||
"newest": "Nedávno přidané",
|
||||
"random": "Náhodně",
|
||||
"frequent": "Často přehrávané",
|
||||
"recent": "Často přehrávané",
|
||||
"starred": "Ohodnocené",
|
||||
"alphabeticalByName": "Podle názvu",
|
||||
"alphabeticalByArtist": "Podle umělce",
|
||||
"byYear": "Podle roku",
|
||||
"byGenre": "Podle žánru"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Zobrazit album",
|
||||
"play": "Přehrát album"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name_0": "Seznam skladeb",
|
||||
"name_1": "Seznamy skladeb",
|
||||
"name_2": "Seznamy skladeb",
|
||||
"actions": {
|
||||
"play": "Přehrát seznam skladeb"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name_0": "Fronta",
|
||||
"name_1": "Fronty",
|
||||
"name_2": "Fronty"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Ohodnotit",
|
||||
"unstar": "Zrušit hodnocení"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"actions": {
|
||||
"add": "Přidat server",
|
||||
"delete": "Odstranit",
|
||||
"testConnection": "Otestovat spojení",
|
||||
"edit": "Upravit server",
|
||||
"save": "Uložit"
|
||||
},
|
||||
"name": "Servery",
|
||||
"fields": {
|
||||
"username": "Uživ. jméno",
|
||||
"address": "Adresa",
|
||||
"password": "Heslo"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Vynutit heslo ve formátu prostého textu",
|
||||
"descriptionOn": "Posílat heslo v prostém textu (zastaralé, ujistěte se, že je vaše připojení zabezpečené!)",
|
||||
"descriptionOff": "Posílat heslo jako token + salt"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"connectionFailed": "Připojení k {{address}} selhalo, zkontrolujte nastavení nebo server",
|
||||
"connectionOk": "Připojení k {{address}} je OK!"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"values": {
|
||||
"unlimitedKbps": "Neomezeno",
|
||||
"seconds": "{{value}} sekund",
|
||||
"kbps": "{{value}}kbps"
|
||||
},
|
||||
"name": "Síť",
|
||||
"options": {
|
||||
"maxBitrateMobile": {
|
||||
"title": "Maximální datový tok (mobil)"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "Maximální datový tok (Wi-Fi)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Domů",
|
||||
"settings": "Nastavení",
|
||||
"library": "Knihovna",
|
||||
"search": "Hledat"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"headerTitle": "Hledat: {{query}}",
|
||||
"inputPlaceholder": "Hledat",
|
||||
"moreResults": "Více…",
|
||||
"nowPlayingContext": "Výsledky hledání"
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Zde nic není…"
|
||||
}
|
||||
}
|
||||
@@ -1,132 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"lists": {
|
||||
"byGenre": "Efter genre",
|
||||
"alphabeticalByName": "Efter navn",
|
||||
"alphabeticalByArtist": "Efter kunstner",
|
||||
"byYear": "Efter år",
|
||||
"sort": "Sortér albums",
|
||||
"random": "Tilfældig"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Afspil album",
|
||||
"view": "Se album"
|
||||
},
|
||||
"name": "Album",
|
||||
"name_plural": "Albums"
|
||||
},
|
||||
"artist": {
|
||||
"name": "Kunstner",
|
||||
"name_plural": "Kunstnere",
|
||||
"lists": {
|
||||
"sort": "Sortér kunstnere",
|
||||
"alphabeticalByName": "Efter navn"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Se kunstnere"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Top sange"
|
||||
},
|
||||
"name": "Sang",
|
||||
"name_plural": "Sange"
|
||||
},
|
||||
"queue": {
|
||||
"name": "Kø",
|
||||
"name_plural": "Køer"
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Spilleliste",
|
||||
"name_plural": "Spillelister",
|
||||
"actions": {
|
||||
"play": "Afspil spilleliste"
|
||||
}
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"library": "Bibliotek",
|
||||
"search": "Søg",
|
||||
"settings": "Indstillinger",
|
||||
"home": "Hjem"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Søg",
|
||||
"headerTitle": "Søg: {{query}}",
|
||||
"nowPlayingContext": "Søgeresultater",
|
||||
"moreResults": "Mere…"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "Servere",
|
||||
"fields": {
|
||||
"address": "Adresse",
|
||||
"username": "Brugernavn",
|
||||
"password": "Adgangskode"
|
||||
},
|
||||
"actions": {
|
||||
"add": "Tilføj server",
|
||||
"edit": "Redigér server",
|
||||
"testConnection": "Test forbindelse",
|
||||
"delete": "Slet",
|
||||
"save": "Gem"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Forbindelse til {{address}} OK!",
|
||||
"connectionFailed": "Forbindelse til {{address}} mislykkedes, tjek indstillinger eller server"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Netværk",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Ubegrænset",
|
||||
"seconds": "{{value}} sekunder"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Maksimum bitrate (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Maksimum bitrate (mobil)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Minimum buffertid"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Maksimum buffertid"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Musik",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Scrobble afspilninger",
|
||||
"descriptionOn": "Scrobble afspilningshistorik"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Nulstil",
|
||||
"actions": {
|
||||
"clearImageCache": "Ryd billede cache"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Omkring",
|
||||
"version": "version {{version}}",
|
||||
"actions": {
|
||||
"licenses": "Licenser",
|
||||
"projectHomepage": "Projekt hjemmeside"
|
||||
}
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Intet her…"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Top Lieder"
|
||||
},
|
||||
"name": "Lied",
|
||||
"name_plural": "Lieder"
|
||||
},
|
||||
"album": {
|
||||
"name": "Album",
|
||||
"name_plural": "Alben",
|
||||
"lists": {
|
||||
"sort": "Alben sortieren",
|
||||
"random": "Zufällig",
|
||||
"frequent": "Häufig abgespielt",
|
||||
"recent": "Kürzlich abgespielt",
|
||||
"starred": "Favoriten",
|
||||
"byYear": "Nach Jahr",
|
||||
"byGenre": "Nach Genre",
|
||||
"alphabeticalByName": "Nach Name",
|
||||
"newest": "Kürzlich hinzugefügt",
|
||||
"alphabeticalByArtist": "Nach Interpreten"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Album abspielen",
|
||||
"view": "Album anzeigen"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "Interpret",
|
||||
"name_plural": "Interpreten",
|
||||
"lists": {
|
||||
"sort": "Interpreten sortieren",
|
||||
"random": "Zufällig",
|
||||
"alphabeticalByName": "Nach Name",
|
||||
"starred": "Favoriten"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Interpret anzeigen"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Wiedergabeliste",
|
||||
"name_plural": "Wiedergabelisten",
|
||||
"actions": {
|
||||
"play": "Wiedergabeliste abspielen"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Warteschlange",
|
||||
"name_plural": "Warteschlangen"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Markieren",
|
||||
"unstar": "Markierung entfernen"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Startseite",
|
||||
"library": "Bibliothek",
|
||||
"search": "Suche",
|
||||
"settings": "Einstellungen"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Suche",
|
||||
"headerTitle": "Suche: {{query}}",
|
||||
"nowPlayingContext": "Suchergebnis",
|
||||
"moreResults": "Mehr…"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"fields": {
|
||||
"address": "Adresse",
|
||||
"password": "Passwort",
|
||||
"username": "Nutzername"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Erzwinge Klartextpasswort",
|
||||
"descriptionOn": "Passwort als Klartext senden (Veraltet, stellen Sie sicher, dass Ihre Verbindung sicher ist!)",
|
||||
"descriptionOff": "Sende Passwort als Token + Salt"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "Server hinzufügen",
|
||||
"edit": "Server bearbeiten",
|
||||
"testConnection": "Verbindung testen",
|
||||
"delete": "Löschen",
|
||||
"save": "Speichern"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Verbindung zu {{address}} ist OK!",
|
||||
"connectionFailed": "Verbindung zu {{address}} fehlgeschlagen, überprüfe Einstellungen oder Server"
|
||||
},
|
||||
"name": "Server"
|
||||
},
|
||||
"network": {
|
||||
"name": "Netzwerk",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Unbegrenzt",
|
||||
"seconds": "{{value}} Sekunden"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Maximale Bitrate (WLAN)"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Maximale Pufferzeit"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Minimale Pufferzeit"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Maximale Bitrate (Mobil)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Musik",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"descriptionOn": "Scrobble Wiedergabeverlauf",
|
||||
"descriptionOff": "Kein Scrobble für Wiedergabeverlauf",
|
||||
"title": "Scrobble Wiedergabe"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Zurücksetzen",
|
||||
"actions": {
|
||||
"clearImageCache": "Bildzwischenspeicher löschen"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Über",
|
||||
"actions": {
|
||||
"projectHomepage": "Projektseite",
|
||||
"licenses": "Lizenzen"
|
||||
},
|
||||
"version": "Version {{version}}"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Hier ist nichts…"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"name": "Song",
|
||||
"name_plural": "Songs",
|
||||
"lists": {
|
||||
"artistTopSongs": "Top Songs"
|
||||
}
|
||||
},
|
||||
"album": {
|
||||
"name": "Album",
|
||||
"name_plural": "Albums",
|
||||
"lists": {
|
||||
"sort": "Sort Albums",
|
||||
"random": "Random",
|
||||
"newest": "Recently Added",
|
||||
"frequent": "Frequently Played",
|
||||
"recent": "Recently Played",
|
||||
"starred": "Starred",
|
||||
"alphabeticalByName": "By Name",
|
||||
"alphabeticalByArtist": "By Artist",
|
||||
"byYear": "By Year",
|
||||
"byGenre": "By Genre"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Play Album",
|
||||
"view": "View Album"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "Artist",
|
||||
"name_plural": "Artists",
|
||||
"lists": {
|
||||
"sort": "Sort Artists",
|
||||
"random": "Random",
|
||||
"starred": "Starred",
|
||||
"alphabeticalByName": "By Name"
|
||||
},
|
||||
"actions": {
|
||||
"view": "View Artist"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Playlist",
|
||||
"name_plural": "Playlists",
|
||||
"actions": {
|
||||
"play": "Play Playlist"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Queue",
|
||||
"name_plural": "Queues"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Star",
|
||||
"unstar": "Unstar"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Home",
|
||||
"library": "Library",
|
||||
"search": "Search",
|
||||
"settings": "Settings"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Nothing here…"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Search",
|
||||
"headerTitle": "Search: {{query}}",
|
||||
"moreResults": "More…",
|
||||
"nowPlayingContext": "Search Results"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "Servers",
|
||||
"fields": {
|
||||
"address": "Address",
|
||||
"username": "Username",
|
||||
"password": "Password"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Force plaintext password",
|
||||
"descriptionOn": "Send password in plaintext (legacy, make sure your connection is secure!)",
|
||||
"descriptionOff": "Send password as token + salt"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "Add Server",
|
||||
"edit": "Edit Server",
|
||||
"testConnection": "Test Connection",
|
||||
"delete": "Delete",
|
||||
"save": "Save"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Connection to {{address}} OK!",
|
||||
"connectionFailed": "Connection to {{address}} failed, check settings or server"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Network",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Unlimited",
|
||||
"seconds": "{{value}} seconds"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Maximum bitrate (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Maximum bitrate (mobile)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Minimum buffer time"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Maximum buffer time"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Music",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Scrobble plays",
|
||||
"descriptionOn": "Scrobble play history",
|
||||
"descriptionOff": "Don't scrobble play history"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Reset",
|
||||
"actions": {
|
||||
"clearImageCache": "Clear Image Cache"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "About",
|
||||
"version": "version {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Project Homepage",
|
||||
"licenses": "Licenses"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Mejores Canciones"
|
||||
},
|
||||
"name": "Cancion",
|
||||
"name_plural": "Canciones"
|
||||
},
|
||||
"album": {
|
||||
"name": "Álbum",
|
||||
"name_plural": "Álbumes",
|
||||
"lists": {
|
||||
"random": "Aleatorio",
|
||||
"newest": "Recientemente Añadido",
|
||||
"recent": "Recientemente Jugado",
|
||||
"starred": "Estrellas",
|
||||
"alphabeticalByArtist": "Por Artista",
|
||||
"byYear": "Por Año",
|
||||
"byGenre": "Por Género",
|
||||
"sort": "Ordenar Álbumes",
|
||||
"frequent": "Jugado Frecuentemente",
|
||||
"alphabeticalByName": "Por Nombre"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Reproducir Álbum",
|
||||
"view": "Ver Álbum"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "Artista",
|
||||
"name_plural": "Artistas",
|
||||
"lists": {
|
||||
"sort": "Oredenar Artistas",
|
||||
"random": "Aleatorio",
|
||||
"starred": "Estrellas",
|
||||
"alphabeticalByName": "Por Nombre"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Ver Artista"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Lista de reproducción",
|
||||
"name_plural": "Listas de reproducción",
|
||||
"actions": {
|
||||
"play": "Reproducir Lista de reproducción"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Cola",
|
||||
"name_plural": "Colas"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"unstar": "Retirar estrella",
|
||||
"star": "Estrella"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Casa",
|
||||
"library": "Biblioteca",
|
||||
"settings": "Entorno",
|
||||
"search": "Buscar"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Nada aquí…"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Buscar",
|
||||
"headerTitle": "Buscar: {{query}}",
|
||||
"moreResults": "Más…",
|
||||
"nowPlayingContext": "Resultados de la búsqueda"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "Servidores",
|
||||
"fields": {
|
||||
"address": "Alocución",
|
||||
"username": "Nombre de usuario",
|
||||
"password": "La contraseña"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Forzar contraseña de texto sin formato",
|
||||
"descriptionOff": "Enviar contraseña como token + sal",
|
||||
"descriptionOn": "Enviar contraseña en texto plano (¡legado, asegúrese de que su conexión sea segura!)"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"testConnection": "Conexión de prueba",
|
||||
"add": "Agregar Servidor",
|
||||
"edit": "Editar Servidor",
|
||||
"save": "Enviar",
|
||||
"delete": "Supr"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "¡Conexión con {{address}} Ok!",
|
||||
"connectionFailed": "La conexión a {{address}} falló, verifique la configuracón o el servidor"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"options": {
|
||||
"maxBitrateMobile": {
|
||||
"title": "Tasa de bits máxima (mobile)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Mínimo de buffer tiempo"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Máxima de buffer tiempo"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "Tasa de bits máxima (Wi-Fi)"
|
||||
}
|
||||
},
|
||||
"name": "Sitio",
|
||||
"values": {
|
||||
"kbps": "{{value}} kilobytes por segundo",
|
||||
"unlimitedKbps": "Ilimitados",
|
||||
"seconds": "{{value}} segundos"
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Música",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Obras de teatro de Scrobble",
|
||||
"descriptionOn": "Historial de reproducción de scrobble",
|
||||
"descriptionOff": "No hagas historial de reproducción de scrobble"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"actions": {
|
||||
"clearImageCache": "Caché de imágenes claras"
|
||||
},
|
||||
"name": "Reinicializar"
|
||||
},
|
||||
"about": {
|
||||
"name": "Información",
|
||||
"version": "versión {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Página de inicio del proyecto",
|
||||
"licenses": "Licencias"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"name": "Album",
|
||||
"name_plural": "Albums",
|
||||
"lists": {
|
||||
"random": "Aléatoire",
|
||||
"newest": "Récemment Ajouté",
|
||||
"frequent": "Fréquemment Joué",
|
||||
"recent": "Récemment Joué",
|
||||
"alphabeticalByName": "Par Nom",
|
||||
"byYear": "Par Année",
|
||||
"alphabeticalByArtist": "Par Artiste",
|
||||
"byGenre": "Par Genre",
|
||||
"starred": "Favoris",
|
||||
"sort": "Trier les albums"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Jouer l'album",
|
||||
"view": "Voir l'album"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"name": "Chanson",
|
||||
"name_plural": "Chansons",
|
||||
"lists": {
|
||||
"artistTopSongs": "Meilleures Chansons"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "Artiste",
|
||||
"name_plural": "Artistes",
|
||||
"lists": {
|
||||
"random": "Aléatoire",
|
||||
"starred": "Favoris",
|
||||
"alphabeticalByName": "Par Nom",
|
||||
"sort": "Trier les artistes"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Voir l'artiste"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"actions": {
|
||||
"play": "Lire la playlist"
|
||||
},
|
||||
"name": "Playlist",
|
||||
"name_plural": "Playlists"
|
||||
},
|
||||
"queue": {
|
||||
"name": "File d'attente",
|
||||
"name_plural": "Files d'attente"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"network": {
|
||||
"values": {
|
||||
"seconds": "{{value}} secondes",
|
||||
"unlimitedKbps": "Illimité",
|
||||
"kbps": "{{value}}kbit/s"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Débit binaire maximum (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Débit binaire maximum (mobile)"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Temps maximum en mémoire tampon"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Temps minimum en mémoire tampon"
|
||||
}
|
||||
},
|
||||
"name": "Réseau"
|
||||
},
|
||||
"servers": {
|
||||
"fields": {
|
||||
"username": "Nom d'utilisateur",
|
||||
"address": "Adresse",
|
||||
"password": "Mot de passe"
|
||||
},
|
||||
"actions": {
|
||||
"testConnection": "Tester la connexion",
|
||||
"add": "Ajouter un serveur",
|
||||
"delete": "Supprimer",
|
||||
"save": "Sauvegarder",
|
||||
"edit": "Modifier le serveur"
|
||||
},
|
||||
"name": "Serveurs",
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Forcer le mot de passe en texte clair",
|
||||
"descriptionOn": "Envoyer le mot de passe en test clair (héritage, assurez-vous que la connexion est sécurisée !)",
|
||||
"descriptionOff": "Envoyer le mot de passe sous forme de jeton + salage"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Connexion à {{address}} OK !",
|
||||
"connectionFailed": "Échec de la connexion à {{address}}, vérifiez les paramètres ou le serveur"
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Musique",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"descriptionOff": "Ne pas scrobbler l'historique de lecture",
|
||||
"descriptionOn": "Scrobbler l'historique de lecture",
|
||||
"title": "Scrobbler la lecture"
|
||||
}
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"version": "version {{version}}",
|
||||
"name": "À propos",
|
||||
"actions": {
|
||||
"licenses": "Licences",
|
||||
"projectHomepage": "Page d'accueil du projet"
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"actions": {
|
||||
"clearImageCache": "Vider le cache d'images"
|
||||
},
|
||||
"name": "Réinitialiser"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"library": "Bibliothèque",
|
||||
"home": "Accueil",
|
||||
"search": "Recherche",
|
||||
"settings": "Paramètres"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"headerTitle": "Recherche : {{query}}",
|
||||
"inputPlaceholder": "Recherche",
|
||||
"moreResults": "Plus…",
|
||||
"nowPlayingContext": "Résultats de recherche"
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Mettre en favoris",
|
||||
"unstar": "Enlever des favoris"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Rien ici…"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"lists": {
|
||||
"sort": "Ordenar Álbums",
|
||||
"newest": "Últimas engadidas",
|
||||
"recent": "Reproducidas a miúdo",
|
||||
"starred": "Favoritas",
|
||||
"random": "Ao chou",
|
||||
"frequent": "Reproducidas a miúdo",
|
||||
"byGenre": "Por xénero",
|
||||
"alphabeticalByName": "Por nome",
|
||||
"alphabeticalByArtist": "Por artista",
|
||||
"byYear": "Por ano"
|
||||
},
|
||||
"name": "Álbum",
|
||||
"name_plural": "Álbums",
|
||||
"actions": {
|
||||
"play": "Reproducir",
|
||||
"view": "Ver Álbum"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"name": "Canción",
|
||||
"name_plural": "Cancións",
|
||||
"lists": {
|
||||
"artistTopSongs": "Máis reproducidas"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"sort": "Ordenar Artistas",
|
||||
"alphabeticalByName": "Por nome",
|
||||
"random": "Ao chou",
|
||||
"starred": "Favoritos"
|
||||
},
|
||||
"name": "Artista",
|
||||
"name_plural": "Artistas",
|
||||
"actions": {
|
||||
"view": "Ver Artista"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Listaxe",
|
||||
"name_plural": "Listaxes",
|
||||
"actions": {
|
||||
"play": "Reproducir lista"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Fila",
|
||||
"name_plural": "Filas"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Estrela",
|
||||
"unstar": "Retirar"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Inicio",
|
||||
"library": "Biblioteca",
|
||||
"search": "Buscar",
|
||||
"settings": "Axustes"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Buscar",
|
||||
"headerTitle": "Buscar: {{query}}",
|
||||
"moreResults": "Máis…",
|
||||
"nowPlayingContext": "Resultados"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "Servidores",
|
||||
"fields": {
|
||||
"address": "Enderezo",
|
||||
"username": "Identificador",
|
||||
"password": "Contrasinal"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Forzar contrasinal en texto plano",
|
||||
"descriptionOn": "Enviar contrasinal en texto plano (herdado, pon coidado en que a conexión sexa segura!)",
|
||||
"descriptionOff": "Enviar contrasinal como token + salt"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "Engadir Servidor",
|
||||
"edit": "Editar Servidor",
|
||||
"delete": "Eliminar",
|
||||
"testConnection": "Comprobar Conexión",
|
||||
"save": "Gardar"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Conexión con {{address}} OK!",
|
||||
"connectionFailed": "Fallou a conexión a {{address}}, comproba os axustes"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Sen límite",
|
||||
"seconds": "{{value}} segundos"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Bitrate máx. (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Bitrate máx. (móbil)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Tempo mínimo na memoria"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Tempo máximo na memoria"
|
||||
}
|
||||
},
|
||||
"name": "Rede"
|
||||
},
|
||||
"music": {
|
||||
"name": "Música",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Rexistrar reprodución",
|
||||
"descriptionOn": "Rexistrar o historial de reprodución",
|
||||
"descriptionOff": "Non rexistrar o historial de reprodución"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Restablecer",
|
||||
"actions": {
|
||||
"clearImageCache": "Limpar a caché de imaxes"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"actions": {
|
||||
"licenses": "Licenzas",
|
||||
"projectHomepage": "Web do Proxecto"
|
||||
},
|
||||
"name": "Acerca de",
|
||||
"version": "versión {{version}}"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Nada por aquí…"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"artist": {
|
||||
"name": "Artista",
|
||||
"name_plural": "Artisti",
|
||||
"actions": {
|
||||
"view": "Vedi artista"
|
||||
},
|
||||
"lists": {
|
||||
"random": "Casuale",
|
||||
"starred": "Preferiti",
|
||||
"sort": "Ordina artisti",
|
||||
"alphabeticalByName": "Per nome"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Brani più popolari"
|
||||
},
|
||||
"name": "Brano",
|
||||
"name_plural": "Brani"
|
||||
},
|
||||
"album": {
|
||||
"name": "Album",
|
||||
"name_plural": "Album",
|
||||
"lists": {
|
||||
"random": "Casuale",
|
||||
"newest": "Aggiunti di recente",
|
||||
"recent": "Ascoltati di recente",
|
||||
"alphabeticalByName": "Per nome",
|
||||
"alphabeticalByArtist": "Per artista",
|
||||
"byYear": "Per anno",
|
||||
"byGenre": "Per genere",
|
||||
"sort": "Ordina album",
|
||||
"frequent": "Ascoltati frequentemente",
|
||||
"starred": "Preferiti"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Riproduci album",
|
||||
"view": "Vedi album"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Playlist",
|
||||
"name_plural": "Playlist",
|
||||
"actions": {
|
||||
"play": "Riproduci playlist"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Coda",
|
||||
"name_plural": "Code"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"fields": {
|
||||
"password": "Password",
|
||||
"address": "Indirizzo",
|
||||
"username": "Nome utente"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Forza password in chiaro",
|
||||
"descriptionOn": "Invia password in chiaro (deprecato, assicurati che la tua connessione sia sicura!)",
|
||||
"descriptionOff": "Invia la password come token + salt"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"delete": "Rimuovi",
|
||||
"edit": "Modifica server",
|
||||
"add": "Aggiungi server",
|
||||
"save": "Salva",
|
||||
"testConnection": "Prova connessione"
|
||||
},
|
||||
"name": "Server",
|
||||
"messages": {
|
||||
"connectionOk": "Connesso a {{address}} con successo!",
|
||||
"connectionFailed": "Connessione a {{address}} fallita, controlla le impostazioni o il server"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Rete",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Illimitato",
|
||||
"seconds": "{{value}} secondi"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Bitrate massimo (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Bitrate massimo (rete dati)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Tempo di buffer minimo"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Tempo di buffer massimo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Musica",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Scrobbling delle riproduzioni",
|
||||
"descriptionOn": "Scrobbling della cronologia di ascolto",
|
||||
"descriptionOff": "Non eseguire lo scrobbling della cronologia d'ascolto"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Reimposta",
|
||||
"actions": {
|
||||
"clearImageCache": "Pulisci la cache delle immagini"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Informazioni",
|
||||
"version": "versione {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Pagina principale del progetto",
|
||||
"licenses": "Licenze"
|
||||
}
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Aggiungi ai preferiti",
|
||||
"unstar": "Rimuovi dai preferiti"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Home",
|
||||
"library": "Libreria",
|
||||
"search": "Cerca",
|
||||
"settings": "Impostazioni"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Non c'è niente qui…"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Ricerca",
|
||||
"headerTitle": "Ricerca: {{query}}",
|
||||
"moreResults": "Mostra di più…",
|
||||
"nowPlayingContext": "Risultati della ricerca"
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"lists": {
|
||||
"random": "ランダムアルバム",
|
||||
"frequent": "よく聴くアルバム",
|
||||
"recent": "最近再生した",
|
||||
"starred": "星付きアルバム"
|
||||
},
|
||||
"name": "アルバム"
|
||||
},
|
||||
"song": {
|
||||
"name": "歌",
|
||||
"lists": {
|
||||
"artistTopSongs": "人気曲"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "アーティスト"
|
||||
},
|
||||
"playlist": {
|
||||
"name": "プレイリスト"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "ホーム",
|
||||
"library": "ライブラリ",
|
||||
"search": "検索",
|
||||
"settings": "設定"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "検索"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "サーバ"
|
||||
},
|
||||
"network": {
|
||||
"name": "ネット"
|
||||
},
|
||||
"music": {
|
||||
"name": "音楽"
|
||||
},
|
||||
"reset": {
|
||||
"name": "リセット"
|
||||
},
|
||||
"about": {
|
||||
"actions": {
|
||||
"projectHomepage": "ホームページ"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"artist": {
|
||||
"name": "Artist",
|
||||
"name_plural": "Artister",
|
||||
"lists": {
|
||||
"sort": "Sorter artister",
|
||||
"random": "Tilfeldig",
|
||||
"starred": "Stjernemerket",
|
||||
"alphabeticalByName": "Etter navn"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Vis artist"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "Spilleliste",
|
||||
"name_plural": "Spillelister",
|
||||
"actions": {
|
||||
"play": "Spill av spilleliste"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Toppspor"
|
||||
},
|
||||
"name": "Spor",
|
||||
"name_plural": "Spor"
|
||||
},
|
||||
"album": {
|
||||
"name": "Album",
|
||||
"name_plural": "Album",
|
||||
"lists": {
|
||||
"sort": "Sorter album",
|
||||
"random": "Tilfeldig",
|
||||
"newest": "Nylig tillagt",
|
||||
"frequent": "Ofte spilt",
|
||||
"recent": "Nylig spilt",
|
||||
"starred": "Stjernemerket",
|
||||
"alphabeticalByName": "Etter navn",
|
||||
"alphabeticalByArtist": "Etter artist",
|
||||
"byYear": "Etter år",
|
||||
"byGenre": "Etter sjanger"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Spill album",
|
||||
"view": "Vis album"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Kø",
|
||||
"name_plural": "Køer"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"actions": {
|
||||
"add": "Legg til tjener",
|
||||
"testConnection": "Test tilkobling",
|
||||
"delete": "Slett",
|
||||
"save": "Lagre",
|
||||
"edit": "Rediger tjener"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Tilkobling til {{address}} OK.",
|
||||
"connectionFailed": "Tilkobling til {{address}} mislyktes. Sjekk innstillingene eller tjeneren."
|
||||
},
|
||||
"name": "Tjenere",
|
||||
"fields": {
|
||||
"address": "Adresse",
|
||||
"username": "Brukernavn",
|
||||
"password": "Passord"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Påtving klartekstspassord",
|
||||
"descriptionOn": "Send passord i klartekst (Foreldet. Forsikre deg om at tilkoblingen er sikker.)",
|
||||
"descriptionOff": "Send passord som symbol + salt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Nettverk",
|
||||
"values": {
|
||||
"kbps": "{{value}} kbps",
|
||||
"unlimitedKbps": "Ubegrenset",
|
||||
"seconds": "{{value}} sekunder"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Maksimal bitrate (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Maksimal bitrate (mobil)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Minimal mellomlagringstid"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Maksimal mellomlagringstid"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Musikk",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Sporinfodelingsavspillinger",
|
||||
"descriptionOn": "Sporinfodelings-avspillinghistorikk",
|
||||
"descriptionOff": "Ikke utfør sporinfodeling av avspillingshistorikk"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Tilbakestill",
|
||||
"actions": {
|
||||
"clearImageCache": "Tøm bildehurtiglager"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Om",
|
||||
"version": "versjon {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Prosjekthjemmeside",
|
||||
"licenses": "Lisenser"
|
||||
}
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Stjernemerk",
|
||||
"unstar": "Fjern stjernemerking"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Hjem",
|
||||
"library": "Bibliotek",
|
||||
"search": "Søk",
|
||||
"settings": "Innstillinger"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Søk",
|
||||
"headerTitle": "Søk: {{query}}",
|
||||
"moreResults": "Mer …",
|
||||
"nowPlayingContext": "Søkeresultater"
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Ingenting her …"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "ਉੱਤਮ ਗਾਣੇ"
|
||||
},
|
||||
"name": "ਗਾਣਾ",
|
||||
"name_plural": "ਗਾਣੇ"
|
||||
},
|
||||
"album": {
|
||||
"name": "ਐਲਬਮ",
|
||||
"name_plural": "ਐਲਬਮਾਂ",
|
||||
"lists": {
|
||||
"sort": "ਐਲਬਮਾਂ ਨੂੰ ਕਰਮਬੱਧ ਕਰੋ",
|
||||
"random": "ਅਟਕਲ-ਪੱਚੂ",
|
||||
"newest": "ਤਾਜ਼ਾ ਸ਼ਾਮਿਲ",
|
||||
"alphabeticalByArtist": "ਕਲਾਕਾਰ ਦੁਆਰਾ",
|
||||
"byYear": "ਸਾਲ ਦੁਆਰਾ",
|
||||
"alphabeticalByName": "ਨਾਮ ਦੁਆਰਾ",
|
||||
"recent": "ਹਾਲ ਹੀ ਵਿੱਚ ਚਲਾਏ ਗਏ",
|
||||
"frequent": "ਅਕਸਰ ਚਲਾਏ ਗਏ",
|
||||
"starred": "ਸਟਾਰ ਕੀਤੇ ਗਏ",
|
||||
"byGenre": "ਸ਼ੈਲੀ ਦੁਆਰਾ"
|
||||
},
|
||||
"actions": {
|
||||
"play": "ਐਲਬਮ ਚਲਾਓ",
|
||||
"view": "ਐਲਬਮ ਦੇਖੋ"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "ਕਲਾਕਾਰ",
|
||||
"name_plural": "ਕਲਾਕਾਰਾਂ",
|
||||
"lists": {
|
||||
"sort": "ਕਲਾਕਾਰਾਂ ਦੀ ਛਾਂਟੀ",
|
||||
"random": "ਬੇਤਰਤੀਬ",
|
||||
"starred": "ਸਟਾਰ ਕੀਤੇ ਗਏ",
|
||||
"alphabeticalByName": "ਨਾਮ ਦੁਆਰਾ"
|
||||
},
|
||||
"actions": {
|
||||
"view": "ਕਲਾਕਾਰ ਦੇਖੋ"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name": "ਪਲੇਲਿਸਟ",
|
||||
"name_plural": "ਪਲੇਲਿਸਟਸ",
|
||||
"actions": {
|
||||
"play": "ਪਲੇਲਿਸਟ ਚਲਾਓ"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "ਕਤਾਰ",
|
||||
"name_plural": "ਕਤਾਰਾਂ"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"library": "ਲਾਇਬ੍ਰੇਰੀ",
|
||||
"settings": "ਸੈਟਿੰਗਾਂ",
|
||||
"home": "ਘਰ",
|
||||
"search": "ਖੋਜ"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "ਇੱਥੇ ਕੁਝ ਨਹੀਂ ਹੈ…"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "ਖੋਜੋ",
|
||||
"moreResults": "ਹੋਰ…",
|
||||
"headerTitle": "ਖੋਜ: {{query}}",
|
||||
"nowPlayingContext": "ਖੋਜ ਨਤੀਜੇ"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"fields": {
|
||||
"address": "ਪਤਾ",
|
||||
"password": "ਪਾਸਵਰਡ",
|
||||
"username": "ਯੂਜ਼ਰਨੇਮ"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "ਸਾਦੇ ਪਾਸਵਰਡ ਨੂੰ ਜਬਰੀ ਕਰੋ",
|
||||
"descriptionOn": "ਪਾਸਵਰਡ ਨੂੰ ਸਾਦੇ ਟੈਕਸਟ ਵਿੱਚ ਭੇਜੋ (ਪੁਰਾਣਾ, ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਤੁਹਾਡਾ ਕਨੈਕਸ਼ਨ ਸੁਰੱਖਿਅਤ ਹੈ!)",
|
||||
"descriptionOff": "ਪਾਸਵਰਡ ਨੂੰ ਟੋਕਨ + ਸਾਲ੍ਟ ਵਜੋਂ ਭੇਜੋ"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"testConnection": "ਟੈਸਟ ਕਨੈਕਸ਼ਨ",
|
||||
"delete": "ਮਿਟਾਓ",
|
||||
"save": "ਸੇਵ ਕਰੋ",
|
||||
"add": "ਸਰਵਰ ਸ਼ਾਮਲ ਕਰੋ",
|
||||
"edit": "ਸਰਵਰ ਦਾ ਸੰਪਾਦਨ"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "{{address}} ਨਾਲ ਕਨੈਕਸ਼ਨ ਠੀਕ ਹੈ!",
|
||||
"connectionFailed": "{{address}} ਨਾਲ ਕਨੈਕਸ਼ਨ ਅਸਫਲ, ਸੈਟਿੰਗਾਂ ਜਾਂ ਸਰਵਰ ਦੀ ਜਾਂਚ ਕਰੋ"
|
||||
},
|
||||
"name": "ਸਰਵਰ"
|
||||
},
|
||||
"network": {
|
||||
"name": "ਨੈੱਟਵਰਕ",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "ਅਸੀਮਿਤ",
|
||||
"seconds": "{{value}} ਸਕਿੰਟ"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateMobile": {
|
||||
"title": "ਵੱਧ ਤੋਂ ਵੱਧ ਬਿੱਟਰੇਟ (ਮੋਬਾਈਲ)"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "ਵੱਧ ਤੋਂ ਵੱਧ ਬਿੱਟਰੇਟ (ਵਾਈ-ਫਾਈ)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "ਘੱਟੋ-ਘੱਟ ਬਫਰ ਸਮਾਂ"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "ਵੱਧ ਤੋਂ ਵੱਧ ਬਫਰ ਸਮਾਂ"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "ਸੰਗੀਤ",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "ਗਾਣੇ ਸਕ੍ਰੋਬਲ ਕਰੋ",
|
||||
"descriptionOn": "ਸੁਣੇ ਹੋਏ ਗਾਣੇ ਸਕ੍ਰੋਬਲ ਕਰੋ",
|
||||
"descriptionOff": "ਸੁਣੇ ਹੋਏ ਗਾਣੇ ਸਕ੍ਰੋਬਲ ਨਾ ਕਰੋ"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"actions": {
|
||||
"clearImageCache": "ਚਿੱਤਰ ਕੈਸ਼ ਸਾਫ਼ ਕਰੋ"
|
||||
},
|
||||
"name": "ਰੀਸੈਟ ਕਰੋ"
|
||||
},
|
||||
"about": {
|
||||
"name": "ਬਾਰੇ",
|
||||
"version": "ਸੰਸਕਰਣ {{version}}",
|
||||
"actions": {
|
||||
"licenses": "ਲਾਇਸੰਸ",
|
||||
"projectHomepage": "ਪ੍ਰੋਜੈਕਟ ਹੋਮਪੇਜ"
|
||||
}
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "ਤਾਰਾ",
|
||||
"unstar": "ਤਾਰਾ ਹਟਾਓ"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,157 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"name_0": "Album",
|
||||
"name_1": "Albumy",
|
||||
"name_2": "Albumów",
|
||||
"lists": {
|
||||
"recent": "Ostatnio odtwarzane",
|
||||
"starred": "Ulubione",
|
||||
"byGenre": "Wg gatunku",
|
||||
"sort": "Sortowanie albumów",
|
||||
"random": "Losowo",
|
||||
"newest": "Ostatnio dodane",
|
||||
"alphabeticalByName": "Wg nazwy",
|
||||
"byYear": "Wg roku",
|
||||
"alphabeticalByArtist": "Wg wykonawcy",
|
||||
"frequent": "Często odtwarzane"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Zobacz album",
|
||||
"play": "Otwarzaj album"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"sort": "Sortowanie wykonawców",
|
||||
"random": "Losowo",
|
||||
"starred": "Ulubieni",
|
||||
"alphabeticalByName": "Wg nazwy"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Zobacz wykonawcę"
|
||||
},
|
||||
"name_0": "Wykonawca",
|
||||
"name_1": "Wykonawcy",
|
||||
"name_2": "Wykonawców"
|
||||
},
|
||||
"playlist": {
|
||||
"name_0": "Playlista",
|
||||
"name_1": "Playlisty",
|
||||
"name_2": "Playlist",
|
||||
"actions": {
|
||||
"play": "Odtwarzaj playlistę"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name_0": "Kolejka",
|
||||
"name_1": "Kolejki",
|
||||
"name_2": "Kolejek"
|
||||
},
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Najpopularniejsze utwory"
|
||||
},
|
||||
"name_0": "Utwór",
|
||||
"name_1": "Utwory",
|
||||
"name_2": "Utworów"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Ulubione",
|
||||
"unstar": "Usuń ulubione"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"library": "Kolekcja",
|
||||
"settings": "Ustawienia",
|
||||
"home": "Strona główna",
|
||||
"search": "Wyszukaj"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Pusto tu…"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Szukaj",
|
||||
"headerTitle": "Szukaj: {{query}}",
|
||||
"moreResults": "Więcej…",
|
||||
"nowPlayingContext": "Wyniki wyszukiwania"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"descriptionOn": "Wyślij hasło jako tekst (przestarzałe, upewnij się, że Twoje połączenie jest zabezpieczone)",
|
||||
"descriptionOff": "Wyślij hasło jako token i ciąg zaburzający",
|
||||
"title": "Wymuś hasło jako tekst (plaintext)"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"edit": "Edytuj serwer",
|
||||
"delete": "Usuń",
|
||||
"save": "Zapisz",
|
||||
"testConnection": "Przetestuj połączenie",
|
||||
"add": "Dodaj serwer"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Połączeno poprawnie z {{address}}!",
|
||||
"connectionFailed": "Błąd połączenia z {{address}}, sprawdź ustawienia lub serwer"
|
||||
},
|
||||
"name": "Serwery",
|
||||
"fields": {
|
||||
"username": "Nazwa użytkownika",
|
||||
"password": "Hasło",
|
||||
"address": "Adres serwera"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Sieć",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Bez ograniczeń",
|
||||
"seconds": "{{value}} sekund"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Maksymalny bitrate (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Maksymalny bitrate (sieć komórkowa)"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Maksymalny czas buforowania"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Minimalny czas buforowania"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Muzyka",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Śledzenie odtworzeń",
|
||||
"descriptionOn": "Śledź swoją histrorię odtwarzania",
|
||||
"descriptionOff": "Nie śledź swojej historii odtwarzania"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Przywracanie",
|
||||
"actions": {
|
||||
"clearImageCache": "Wyczyść pamięć podręczną obrazów"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Informacje o projekcie",
|
||||
"version": "wersja {{version}}",
|
||||
"actions": {
|
||||
"licenses": "Licencje",
|
||||
"projectHomepage": "Strona główna projektu"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Top Músicas"
|
||||
},
|
||||
"name": "Música",
|
||||
"name_plural": "Músicas"
|
||||
},
|
||||
"album": {
|
||||
"lists": {
|
||||
"sort": "Ordenar Álbuns",
|
||||
"random": "Aleatório",
|
||||
"frequent": "Mais Tocado",
|
||||
"recent": "Ouviu recentemente",
|
||||
"newest": "Adicionado recentemente",
|
||||
"alphabeticalByArtist": "Por Artista",
|
||||
"starred": "Favoritos",
|
||||
"byYear": "Por Ano",
|
||||
"byGenre": "Por Género",
|
||||
"alphabeticalByName": "Por Nome"
|
||||
},
|
||||
"name": "Álbum",
|
||||
"name_plural": "Álbuns",
|
||||
"actions": {
|
||||
"play": "Tocar Álbum",
|
||||
"view": "Ver Álbum"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"random": "Aleatório",
|
||||
"starred": "Favoritos",
|
||||
"alphabeticalByName": "Por Nome",
|
||||
"sort": "Ordenar Artistas"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Ver Artista"
|
||||
},
|
||||
"name": "Artista",
|
||||
"name_plural": "Artistas"
|
||||
},
|
||||
"playlist": {
|
||||
"actions": {
|
||||
"play": "Tocar Playlist"
|
||||
},
|
||||
"name": "Lista",
|
||||
"name_plural": "Listas"
|
||||
},
|
||||
"queue": {
|
||||
"name": "Fila",
|
||||
"name_plural": "Filas"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Procurar",
|
||||
"moreResults": "Mais…",
|
||||
"headerTitle": "Procurar: {{query}}",
|
||||
"nowPlayingContext": "Resultados da Pesquisa"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"fields": {
|
||||
"address": "Endereço",
|
||||
"username": "Nome de utilizador",
|
||||
"password": "Senha"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"descriptionOff": "Enviar senha como token + sal",
|
||||
"title": "Forçar password em texto simples",
|
||||
"descriptionOn": "Enviar senha em texto simples (antigo, certifique-se que a sua ligação é segura!)"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"delete": "Apagar",
|
||||
"edit": "Editar Servidor",
|
||||
"testConnection": "Testar Ligação",
|
||||
"add": "Adicionar Servidor",
|
||||
"save": "Guardar"
|
||||
},
|
||||
"messages": {
|
||||
"connectionFailed": "Ligação a {{address}} falhou, verifique definições ou servidor",
|
||||
"connectionOk": "Ligação a {{address}} OK!"
|
||||
},
|
||||
"name": "Servidores"
|
||||
},
|
||||
"network": {
|
||||
"name": "Rede",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Ilimitado",
|
||||
"seconds": "{{value}} segundos"
|
||||
},
|
||||
"options": {
|
||||
"maxBuffer": {
|
||||
"title": "Tempo de buffer máximo"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "Bitrate Máximo (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Bitrate Máximo (móvel)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Tempo de buffer mínimo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"descriptionOn": "Enviar histórico de reproduções por scrobble",
|
||||
"title": "Enviar reproduções por scrobble",
|
||||
"descriptionOff": "Não enviar histórico de reproduções por scrobble"
|
||||
}
|
||||
},
|
||||
"name": "Música"
|
||||
},
|
||||
"reset": {
|
||||
"name": "Redefinir",
|
||||
"actions": {
|
||||
"clearImageCache": "Limpar cache de Imagens"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Acerca",
|
||||
"version": "versão {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Página do Projeto",
|
||||
"licenses": "Licenças"
|
||||
}
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Favorito",
|
||||
"unstar": "Remover favorito"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Início",
|
||||
"library": "Biblioteca",
|
||||
"search": "Procurar",
|
||||
"settings": "Definições"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Não existe nada…"
|
||||
}
|
||||
}
|
||||
@@ -1,157 +0,0 @@
|
||||
{
|
||||
"settings": {
|
||||
"servers": {
|
||||
"actions": {
|
||||
"delete": "Удалить",
|
||||
"add": "Добавить сервер",
|
||||
"edit": "Редактировать сервер",
|
||||
"testConnection": "Проверить подключение",
|
||||
"save": "Сохранить"
|
||||
},
|
||||
"name": "Серверы",
|
||||
"fields": {
|
||||
"address": "Адрес",
|
||||
"username": "Имя пользователя",
|
||||
"password": "Пароль"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"descriptionOn": "Отправить пароль в виде текста (устарело, убедитесь, что ваше соединение безопасно!)",
|
||||
"descriptionOff": "Отправить пароль в виде токена",
|
||||
"title": "Принудительно использовать текстовой пароль"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Подключение к {{address}} установлено!",
|
||||
"connectionFailed": "Не удалось подключиться к {{address}}, проверьте настройки или сервер"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Сеть",
|
||||
"values": {
|
||||
"kbps": "{{value}} кбит/с",
|
||||
"unlimitedKbps": "Без ограничений",
|
||||
"seconds": "{{value}} секунд"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Максимальный битрейт (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Максимальный битрейт (мобильный интернет)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Минимальное время буферизации"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Максимальное время буферизации"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Музыка",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Скробблинг",
|
||||
"descriptionOff": "Не отправлять историю воспроизведений",
|
||||
"descriptionOn": "Скробблинг истории воспроизведения"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Сброс",
|
||||
"actions": {
|
||||
"clearImageCache": "Очистить кэш изображения"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "О Subtracks",
|
||||
"version": "версия {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Сайт проекта",
|
||||
"licenses": "Лицензии"
|
||||
}
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"album": {
|
||||
"name_0": "Альбом",
|
||||
"name_1": "Альбомы",
|
||||
"name_2": "Альбомов",
|
||||
"lists": {
|
||||
"sort": "Сортировка альбомов",
|
||||
"random": "Случайно",
|
||||
"newest": "Недавно добавленные",
|
||||
"frequent": "Часто проигрываемые",
|
||||
"recent": "Недавно проигранные",
|
||||
"starred": "Избранные",
|
||||
"alphabeticalByName": "По имени",
|
||||
"alphabeticalByArtist": "По исполнителю",
|
||||
"byYear": "По году",
|
||||
"byGenre": "По жанру"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Воспроизвести альбом",
|
||||
"view": "Посмотреть альбом"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"name_0": "Трек",
|
||||
"name_1": "Трека",
|
||||
"name_2": "Треков",
|
||||
"lists": {
|
||||
"artistTopSongs": "Лучшие треки"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name_0": "Исполнитель",
|
||||
"name_1": "Исполнители",
|
||||
"name_2": "Исполнителей",
|
||||
"lists": {
|
||||
"sort": "Сортировать исполнителей",
|
||||
"random": "Случайно",
|
||||
"starred": "Избранные",
|
||||
"alphabeticalByName": "По имени"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Посмотреть исполнителя"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"name_0": "Плейлист",
|
||||
"name_1": "Плейлисты",
|
||||
"name_2": "Плейлистов",
|
||||
"actions": {
|
||||
"play": "Воспроизвести плейлист"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name_0": "Очередь",
|
||||
"name_1": "Очереди",
|
||||
"name_2": "Очередей"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Избранное",
|
||||
"unstar": "Убрать из избранного"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"library": "Библиотека",
|
||||
"search": "Поиск",
|
||||
"settings": "Настройки",
|
||||
"home": "Главная"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Здесь ничего нет…"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Поиск",
|
||||
"headerTitle": "Поиск: {{query}}",
|
||||
"moreResults": "Больше…",
|
||||
"nowPlayingContext": "Результаты поиска"
|
||||
}
|
||||
}
|
||||
@@ -1,152 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"album": {
|
||||
"name": "Albüm",
|
||||
"name_plural": "Albümler",
|
||||
"lists": {
|
||||
"sort": "Albümleri Sırala",
|
||||
"random": "Rastgele",
|
||||
"frequent": "Sık Dinlenenler",
|
||||
"recent": "Yeni Dinleneler",
|
||||
"newest": "Son Eklenenler",
|
||||
"starred": "Yıldızlı",
|
||||
"alphabeticalByName": "İsme göre",
|
||||
"alphabeticalByArtist": "Sanatçıya Göre",
|
||||
"byYear": "Yıla göre",
|
||||
"byGenre": "Türe göre"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Albüme Git",
|
||||
"play": "Albümü Çal"
|
||||
}
|
||||
},
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "En İyi Şarkılar"
|
||||
},
|
||||
"name": "Şarkı",
|
||||
"name_plural": "Şarkılar"
|
||||
},
|
||||
"artist": {
|
||||
"lists": {
|
||||
"sort": "Sanatçıları Sırala",
|
||||
"starred": "Yıldızlı",
|
||||
"alphabeticalByName": "İsme Göre",
|
||||
"random": "Rastgele"
|
||||
},
|
||||
"name": "Sanatçı",
|
||||
"name_plural": "Sanatçılar",
|
||||
"actions": {
|
||||
"view": "Sanatçıya Git"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "Sıra",
|
||||
"name_plural": "Sıralar"
|
||||
},
|
||||
"playlist": {
|
||||
"actions": {
|
||||
"play": "Listeyi Çal"
|
||||
},
|
||||
"name": "Çalma Listesi",
|
||||
"name_plural": "Çalma Listeleri"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Giriş",
|
||||
"library": "Kütüphane",
|
||||
"search": "Arama",
|
||||
"settings": "Ayarlar"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Burada bir şey yok …"
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "Ara",
|
||||
"headerTitle": "Aranan: {{query}}",
|
||||
"moreResults": "Tüm Sonuçlar …",
|
||||
"nowPlayingContext": "Arama Sonuçları"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "Sunucular",
|
||||
"fields": {
|
||||
"address": "Adres",
|
||||
"username": "Kullanıcı Adı",
|
||||
"password": "Şifre"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Düzyazı şifre kullanmayı zorla",
|
||||
"descriptionOn": "Şifreyi düzmetin olarak gönderir (eski yöntem, bağlantının güvenli (HTTPS) olduğu sunucularda kullanın!)",
|
||||
"descriptionOff": "Şifreyi dizgecik ve tuz karışımı olarak gönder"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "Sunucu Ekle",
|
||||
"delete": "Kaldır",
|
||||
"save": "Kaydet",
|
||||
"edit": "Sunucu Ayarı",
|
||||
"testConnection": "Bağlantıyı Sına"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "{{address}} ile bağlantı başarılı!",
|
||||
"connectionFailed": "{{address}} ile bağlantı başarısız. Sunucu ayarlarınızın doğrulığundan emin olun."
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Ağ",
|
||||
"values": {
|
||||
"kbps": "{{value}}kb/sn",
|
||||
"unlimitedKbps": "Sınırsız",
|
||||
"seconds": "{{value}} saniye"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Azami bithızı (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Azami bithızı (SIM interneti)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Asgari arabellek süresi"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Azami arabellek süresi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Müzik",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"descriptionOn": "Müzik geçmişini profilime ekle",
|
||||
"descriptionOff": "Müzik geçmişini profilime ekleme",
|
||||
"title": "Çalan müziği profilime ekle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Sıfırlama",
|
||||
"actions": {
|
||||
"clearImageCache": "Görüntü Önbelleğini Temizle"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Hakkında",
|
||||
"version": "sürüm {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Proje Ana Sayfası",
|
||||
"licenses": "Lisanslar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"unstar": "Yıldızı Kaldır",
|
||||
"star": "Yıldızla"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
{
|
||||
"resources": {
|
||||
"song": {
|
||||
"lists": {
|
||||
"artistTopSongs": "Bài hát hàng đầu"
|
||||
},
|
||||
"name": "Bài hát"
|
||||
},
|
||||
"album": {
|
||||
"name": "Album",
|
||||
"lists": {
|
||||
"sort": "Sắp xếp Album",
|
||||
"alphabeticalByName": "Theo tên",
|
||||
"alphabeticalByArtist": "Theo nghệ sĩ",
|
||||
"byYear": "Theo năm",
|
||||
"byGenre": "Theo thể loại",
|
||||
"random": "Ngẫu Nhiên",
|
||||
"newest": "Thêm vào gần đây",
|
||||
"starred": "Có gắn dấu sao",
|
||||
"frequent": "Thường xuyên chơi",
|
||||
"recent": "Đã phát gần đây"
|
||||
},
|
||||
"actions": {
|
||||
"play": "Phát Album",
|
||||
"view": "Xem Album"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "Nghệ sĩ",
|
||||
"lists": {
|
||||
"sort": "Sắp xếp nghệ sĩ",
|
||||
"random": "Ngẫu Nhiên",
|
||||
"starred": "Có gắn dấu sao",
|
||||
"alphabeticalByName": "Theo tên"
|
||||
},
|
||||
"actions": {
|
||||
"view": "Xem Nghệ sĩ"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"actions": {
|
||||
"play": "Phát Danh sách phát"
|
||||
},
|
||||
"name": "Danh sách phát"
|
||||
},
|
||||
"queue": {
|
||||
"name": "Hàng chờ"
|
||||
}
|
||||
},
|
||||
"context": {
|
||||
"actions": {
|
||||
"star": "Đánh dấu sao",
|
||||
"unstar": "Bỏ dấu sao"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "Trang chủ",
|
||||
"library": "Thư Viện",
|
||||
"search": "Tìm kiếm",
|
||||
"settings": "Thiết Lập"
|
||||
}
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "Không có gì ở đây…"
|
||||
},
|
||||
"search": {
|
||||
"moreResults": "Nhiều hơn…",
|
||||
"nowPlayingContext": "Kết quả tìm kiếm",
|
||||
"headerTitle": "Tìm kiếm: {{query}}",
|
||||
"inputPlaceholder": "Tìm kiếm"
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "Máy chủ",
|
||||
"fields": {
|
||||
"address": "Địa chỉ",
|
||||
"username": "Tên đăng nhập",
|
||||
"password": "Mật Khẩu"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "Buộc mật khẩu văn bản thuần túy",
|
||||
"descriptionOn": "Gửi mật khẩu ở dạng văn bản rõ ràng (kế thừa, đảm bảo kết nối của bạn an toàn!)",
|
||||
"descriptionOff": "Gửi mật khẩu dưới dạng token + salt"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "Thêm máy chủ",
|
||||
"edit": "Chỉnh sửa máy chủ",
|
||||
"testConnection": "Kiểm tra kết nối",
|
||||
"delete": "Xóa",
|
||||
"save": "Lưu"
|
||||
},
|
||||
"messages": {
|
||||
"connectionOk": "Kết nối với {{address}} OK!",
|
||||
"connectionFailed": "Kết nối với {{address}} không thành công, hãy kiểm tra cài đặt hoặc máy chủ"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "Mạng",
|
||||
"values": {
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "Không giới hạn",
|
||||
"seconds": "{{value}} giây"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateWifi": {
|
||||
"title": "Tối đa bitrate (Wi-Fi)"
|
||||
},
|
||||
"maxBitrateMobile": {
|
||||
"title": "Tối đa bitrate (mobile)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "Thời gian đệm tối thiểu"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "Thời gian đệm tối đa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "Âm nhạc",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Scrobble lượt chơi",
|
||||
"descriptionOn": "Lịch sử chơi Scrobble",
|
||||
"descriptionOff": "Đừng scrobble lịch sử chơi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "Cài đặt lại",
|
||||
"actions": {
|
||||
"clearImageCache": "Xóa bộ nhớ đệm hình ảnh"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "Giới thiệu",
|
||||
"version": "phiên bản {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "Trang chủ Dự án",
|
||||
"licenses": "Giấy phép"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,147 +0,0 @@
|
||||
{
|
||||
"context": {
|
||||
"actions": {
|
||||
"unstar": "移除收藏",
|
||||
"star": "收藏"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"servers": {
|
||||
"name": "服务器",
|
||||
"messages": {
|
||||
"connectionFailed": "连接到 {{address}} 失败,检查设置或服务器",
|
||||
"connectionOk": "连接到 {{address}} 正常!"
|
||||
},
|
||||
"options": {
|
||||
"forcePlaintextPassword": {
|
||||
"title": "强制使用明文密码",
|
||||
"descriptionOn": "密码以明文发送(不推荐,注意链接安全!)",
|
||||
"descriptionOff": "密码以 token + salt 加密发送"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"add": "添加服务器",
|
||||
"testConnection": "测试连接",
|
||||
"save": "保存",
|
||||
"edit": "编辑服务器",
|
||||
"delete": "删除"
|
||||
},
|
||||
"fields": {
|
||||
"password": "密码",
|
||||
"username": "用户名",
|
||||
"address": "地址"
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"name": "网络",
|
||||
"values": {
|
||||
"seconds": "{{value}} 秒",
|
||||
"kbps": "{{value}}kbps",
|
||||
"unlimitedKbps": "不限制"
|
||||
},
|
||||
"options": {
|
||||
"maxBitrateMobile": {
|
||||
"title": "最大比特率 (3G/4G/5G)"
|
||||
},
|
||||
"minBuffer": {
|
||||
"title": "最小缓冲时间"
|
||||
},
|
||||
"maxBuffer": {
|
||||
"title": "最大缓冲时间"
|
||||
},
|
||||
"maxBitrateWifi": {
|
||||
"title": "最大比特率 (Wi-Fi)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"music": {
|
||||
"name": "音乐",
|
||||
"options": {
|
||||
"scrobble": {
|
||||
"title": "Scrobble模式",
|
||||
"descriptionOn": "Scrobble播放历史",
|
||||
"descriptionOff": "不记录scrobble历史"
|
||||
}
|
||||
}
|
||||
},
|
||||
"reset": {
|
||||
"name": "重置",
|
||||
"actions": {
|
||||
"clearImageCache": "清除图片缓存"
|
||||
}
|
||||
},
|
||||
"about": {
|
||||
"name": "关于",
|
||||
"version": "版本 {{version}}",
|
||||
"actions": {
|
||||
"projectHomepage": "项目地址",
|
||||
"licenses": "许可"
|
||||
}
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"album": {
|
||||
"actions": {
|
||||
"view": "查看专辑",
|
||||
"play": "播放专辑"
|
||||
},
|
||||
"name": "专辑",
|
||||
"lists": {
|
||||
"newest": "最近添加",
|
||||
"frequent": "播放最多",
|
||||
"alphabeticalByName": "根据名称",
|
||||
"alphabeticalByArtist": "根据歌手",
|
||||
"byYear": "根据年份",
|
||||
"random": "随机",
|
||||
"sort": "专辑排序",
|
||||
"recent": "最近播放",
|
||||
"byGenre": "根据类型",
|
||||
"starred": "已收藏"
|
||||
}
|
||||
},
|
||||
"playlist": {
|
||||
"actions": {
|
||||
"play": "全部播放"
|
||||
},
|
||||
"name": "播放列表"
|
||||
},
|
||||
"song": {
|
||||
"name": "歌曲",
|
||||
"lists": {
|
||||
"artistTopSongs": "热门歌曲"
|
||||
}
|
||||
},
|
||||
"artist": {
|
||||
"name": "歌手",
|
||||
"lists": {
|
||||
"starred": "已收藏",
|
||||
"sort": "歌手排序",
|
||||
"random": "随机",
|
||||
"alphabeticalByName": "根据名称"
|
||||
},
|
||||
"actions": {
|
||||
"view": "查看歌手"
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"name": "队列"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"tabs": {
|
||||
"home": "首页",
|
||||
"library": "所有",
|
||||
"search": "搜索",
|
||||
"settings": "设置"
|
||||
}
|
||||
},
|
||||
"search": {
|
||||
"inputPlaceholder": "搜索",
|
||||
"headerTitle": "搜索: {{query}}",
|
||||
"moreResults": "更多…",
|
||||
"nowPlayingContext": "搜索结果"
|
||||
},
|
||||
"messages": {
|
||||
"nothingHere": "什么都没有…"
|
||||
}
|
||||
}
|
||||
@@ -1,504 +0,0 @@
|
||||
This software uses code of <a href="http://ffmpeg.org">FFmpeg</a> licensed under the <a href="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html">LGPLv2.1</a> and its source can be downloaded <a href="http://ffmpeg.org/download.html#get-sources">here</a>.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
BIN
android/app/src/main/ic_launcher-playstore.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
@@ -1,24 +0,0 @@
|
||||
package com.subtracks;
|
||||
|
||||
import com.facebook.react.ReactActivity;
|
||||
import android.os.Bundle;
|
||||
|
||||
public class MainActivity extends ReactActivity {
|
||||
|
||||
/**
|
||||
* Returns the name of the main component registered from JavaScript. This is used to schedule
|
||||
* rendering of the component.
|
||||
*/
|
||||
@Override
|
||||
protected String getMainComponentName() {
|
||||
return "subtracks";
|
||||
}
|
||||
|
||||
// required by react-native-screens
|
||||
// "This change is required to avoid crashes related to View state being not persisted consistently across Activity restarts."
|
||||
// https://reactnavigation.org/docs/getting-started
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(null);
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
package com.subtracks;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import com.facebook.react.PackageList;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.reactnativecommunity.netinfo.NetInfoPackage;
|
||||
import com.oblador.vectoricons.VectorIconsPackage;
|
||||
import com.rnfs.RNFSPackage;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.List;
|
||||
|
||||
// for reanimated
|
||||
import com.facebook.react.bridge.JSIModulePackage;
|
||||
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
|
||||
private final ReactNativeHost mReactNativeHost =
|
||||
new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
@SuppressWarnings("UnnecessaryLocalVariable")
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
// Packages that cannot be autolinked yet can be added manually here, for example:
|
||||
// packages.add(new MyReactNativePackage());
|
||||
return packages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index";
|
||||
}
|
||||
|
||||
// for reanimated
|
||||
@Override
|
||||
protected JSIModulePackage getJSIModulePackage() {
|
||||
return new ReanimatedJSIModulePackage();
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
return mReactNativeHost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
||||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
*
|
||||
* @param context
|
||||
* @param reactInstanceManager
|
||||
*/
|
||||
private static void initializeFlipper(
|
||||
Context context, ReactInstanceManager reactInstanceManager) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
try {
|
||||
/*
|
||||
We use reflection here to pick up the class that initializes Flipper,
|
||||
since Flipper library is not available in release mode
|
||||
*/
|
||||
Class<?> aClass = Class.forName("com.subtracks.ReactNativeFlipper");
|
||||
aClass
|
||||
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
|
||||
.invoke(null, context, reactInstanceManager);
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// Generated file.
|
||||
//
|
||||
// If you wish to remove Flutter's multidex support, delete this entire file.
|
||||
//
|
||||
// Modifications to this file should be done in a copy under a different name
|
||||
// as this file may be regenerated.
|
||||
|
||||
package io.flutter.app;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import androidx.annotation.CallSuper;
|
||||
import androidx.multidex.MultiDex;
|
||||
|
||||
/**
|
||||
* Extension of {@link android.app.Application}, adding multidex support.
|
||||
*/
|
||||
public class FlutterMultiDexApplication extends Application {
|
||||
@Override
|
||||
@CallSuper
|
||||
protected void attachBaseContext(Context base) {
|
||||
super.attachBaseContext(base);
|
||||
MultiDex.install(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.subtracks2
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity: FlutterActivity() {
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="299.84"
|
||||
android:viewportHeight="219.51"
|
||||
android:tint="#FFFFFF">
|
||||
<group android:scaleX="0.92"
|
||||
android:scaleY="0.6735232"
|
||||
android:translateX="11.9936"
|
||||
android:translateY="35.83246">
|
||||
<path
|
||||
android:pathData="m23.84,-0c-12.76,0 -23.44,13 -23.65,25.12 -0.42,79.03 0,160.73 0,170.4 0,12.59 9.8,23.99 23.41,23.99l253.58,0c11.4,0 22.66,-12.38 22.66,-22.79L299.84,24.12c0,-10.8 -10.24,-23.81 -21.84,-23.81 -11.6,0 -254.16,-0.31 -254.16,-0.31zM39.05,25.28c0,0 217.71,0.71 223.67,0.71 6.07,0 12.17,6.83 12.17,12.06l0,142.25c0,8.97 -6.97,14.63 -12.48,14.64l-33.42,0.07c-5.32,0.01 -9.93,-7.19 -11.35,-10.61 -1.89,-4.55 -11.08,-25.75 -12.1,-28.1 -0.6,-1.38 -2.9,-2.83 -5.89,-2.83L98.33,153.45c-2.68,0 -4.89,2.87 -5.67,4.71 -1.12,2.66 -9.02,21.39 -11.63,27.57 -2.73,6.46 -4.37,9.06 -11.47,9.06l-30.97,0c-7.44,0 -13.69,-7.17 -13.67,-15.18l0.28,-139.51c0,-6.88 5.54,-14.83 13.85,-14.83z"
|
||||
android:strokeWidth="0.9"
|
||||
android:fillColor="#ffffff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M90.09,95.03m-32.1,0a32.42,32.1 90,1 1,64.21 0a32.42,32.1 90,1 1,-64.21 0"
|
||||
android:strokeWidth="0.86"
|
||||
android:fillColor="#ffffff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M209.94,95.03m-32.1,0a32.42,32.1 90,1 1,64.21 0a32.42,32.1 90,1 1,-64.21 0"
|
||||
android:strokeWidth="0.86"
|
||||
android:fillColor="#ffffff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
29
android/app/src/main/res/drawable-anydpi/ic_action_name.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="299.84"
|
||||
android:viewportHeight="219.51"
|
||||
android:tint="#333333"
|
||||
android:alpha="0.6">
|
||||
<group android:scaleY="0.7320905"
|
||||
android:translateY="29.404413">
|
||||
<path
|
||||
android:pathData="m23.84,-0c-12.76,0 -23.44,13 -23.65,25.12 -0.42,79.03 0,160.73 0,170.4 0,12.59 9.8,23.99 23.41,23.99l253.58,0c11.4,0 22.66,-12.38 22.66,-22.79L299.84,24.12c0,-10.8 -10.24,-23.81 -21.84,-23.81 -11.6,0 -254.16,-0.31 -254.16,-0.31zM39.05,25.28c0,0 217.71,0.71 223.67,0.71 6.07,0 12.17,6.83 12.17,12.06l0,142.25c0,8.97 -6.97,14.63 -12.48,14.64l-33.42,0.07c-5.32,0.01 -9.93,-7.19 -11.35,-10.61 -1.89,-4.55 -11.08,-25.75 -12.1,-28.1 -0.6,-1.38 -2.9,-2.83 -5.89,-2.83L98.33,153.45c-2.68,0 -4.89,2.87 -5.67,4.71 -1.12,2.66 -9.02,21.39 -11.63,27.57 -2.73,6.46 -4.37,9.06 -11.47,9.06l-30.97,0c-7.44,0 -13.69,-7.17 -13.67,-15.18l0.28,-139.51c0,-6.88 5.54,-14.83 13.85,-14.83z"
|
||||
android:strokeWidth="0.9"
|
||||
android:fillColor="#ffffff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M90.09,95.03m-32.1,0a32.42,32.1 90,1 1,64.21 0a32.42,32.1 90,1 1,-64.21 0"
|
||||
android:strokeWidth="0.86"
|
||||
android:fillColor="#ffffff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M209.94,95.03m-32.1,0a32.42,32.1 90,1 1,64.21 0a32.42,32.1 90,1 1,-64.21 0"
|
||||
android:strokeWidth="0.86"
|
||||
android:fillColor="#ffffff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
BIN
android/app/src/main/res/drawable-hdpi/ic_action_name.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
android/app/src/main/res/drawable-hdpi/ic_stat_name.png
Normal file
|
After Width: | Height: | Size: 401 B |
BIN
android/app/src/main/res/drawable-mdpi/ic_action_name.png
Normal file
|
After Width: | Height: | Size: 318 B |
BIN
android/app/src/main/res/drawable-mdpi/ic_stat_name.png
Normal file
|
After Width: | Height: | Size: 284 B |
12
android/app/src/main/res/drawable-v21/launch_background.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
BIN
android/app/src/main/res/drawable-xhdpi/ic_action_name.png
Normal file
|
After Width: | Height: | Size: 600 B |
BIN
android/app/src/main/res/drawable-xhdpi/ic_stat_name.png
Normal file
|
After Width: | Height: | Size: 575 B |
BIN
android/app/src/main/res/drawable-xxhdpi/ic_action_name.png
Normal file
|
After Width: | Height: | Size: 925 B |
BIN
android/app/src/main/res/drawable-xxhdpi/ic_stat_name.png
Normal file
|
After Width: | Height: | Size: 921 B |
29
android/app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="299.84"
|
||||
android:viewportHeight="219.51">
|
||||
<group android:scaleX="0.43"
|
||||
android:scaleY="0.3147989"
|
||||
android:translateX="85.4544"
|
||||
android:translateY="75.20425">
|
||||
<path
|
||||
android:pathData="m23.84,-0c-12.76,0 -23.44,13 -23.65,25.12 -0.42,79.03 0,160.73 0,170.4 0,12.59 9.8,23.99 23.41,23.99l253.58,0c11.4,0 22.66,-12.38 22.66,-22.79L299.84,24.12c0,-10.8 -10.24,-23.81 -21.84,-23.81 -11.6,0 -254.16,-0.31 -254.16,-0.31zM39.05,25.28c0,0 217.71,0.71 223.67,0.71 6.07,0 12.17,6.83 12.17,12.06l0,142.25c0,8.97 -6.97,14.63 -12.48,14.64l-33.42,0.07c-5.32,0.01 -9.93,-7.19 -11.35,-10.61 -1.89,-4.55 -11.08,-25.75 -12.1,-28.1 -0.6,-1.38 -2.9,-2.83 -5.89,-2.83L98.33,153.45c-2.68,0 -4.89,2.87 -5.67,4.71 -1.12,2.66 -9.02,21.39 -11.63,27.57 -2.73,6.46 -4.37,9.06 -11.47,9.06l-30.97,0c-7.44,0 -13.69,-7.17 -13.67,-15.18l0.28,-139.51c0,-6.88 5.54,-14.83 13.85,-14.83z"
|
||||
android:strokeWidth="0.9"
|
||||
android:fillColor="#f4d9ff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M90.09,95.03m-32.1,0a32.42,32.1 90,1 1,64.21 0a32.42,32.1 90,1 1,-64.21 0"
|
||||
android:strokeWidth="0.86"
|
||||
android:fillColor="#f4d9ff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
<path
|
||||
android:pathData="M209.94,95.03m-32.1,0a32.42,32.1 90,1 1,64.21 0a32.42,32.1 90,1 1,-64.21 0"
|
||||
android:strokeWidth="0.86"
|
||||
android:fillColor="#f4d9ff"
|
||||
android:fillType="nonZero"
|
||||
android:strokeColor="#00000000"/>
|
||||
</group>
|
||||
</vector>
|
||||
12
android/app/src/main/res/drawable/launch_background.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
@@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2014 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<inset xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
|
||||
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
|
||||
android:insetTop="@dimen/abc_edit_text_inset_top_material"
|
||||
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
|
||||
|
||||
<selector>
|
||||
<!--
|
||||
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
|
||||
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
|
||||
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
|
||||
|
||||
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
|
||||
|
||||
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
|
||||
-->
|
||||
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
|
||||
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
|
||||
</selector>
|
||||
|
||||
</inset>
|
||||
|
Before Width: | Height: | Size: 13 KiB |
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.7 KiB |