Merge remote-tracking branch 'muff1nman/spring-3-update' into biconou_spring-3-update_PR
This commit is contained in:
@@ -110,6 +110,10 @@ local.properties
|
|||||||
# Eclipse Core
|
# Eclipse Core
|
||||||
.project
|
.project
|
||||||
|
|
||||||
|
# Intellij
|
||||||
|
*.iml
|
||||||
|
.idea
|
||||||
|
|
||||||
# External tool builders
|
# External tool builders
|
||||||
.externalToolBuilders/
|
.externalToolBuilders/
|
||||||
|
|
||||||
|
|||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
language: java
|
||||||
|
sudo: required
|
||||||
|
jdk:
|
||||||
|
- oraclejdk8
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- $HOME/.m2
|
||||||
|
install:
|
||||||
|
- sudo apt-get -qq update
|
||||||
|
- sudo apt-get -y install lintian fakeroot rpm python-rpm
|
||||||
|
- git clone https://github.com/rpm-software-management/rpmlint -o rpmlint-1.9
|
||||||
|
- sudo make -C rpmlint install
|
||||||
|
script:
|
||||||
|
- mvn -Pfull,rpm package install
|
||||||
|
- mvn -Pfull -pl libresonic-assembly assembly:single
|
||||||
@@ -8,6 +8,7 @@ Requirements
|
|||||||
* Recent version of [Maven](http://maven.apache.org/).
|
* Recent version of [Maven](http://maven.apache.org/).
|
||||||
* A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work.
|
* A JDK installation. 1.8.x series of OpenJDK or Oracle JDK 8+ should work.
|
||||||
* Optional: lintian and fakeroot, for .deb package
|
* Optional: lintian and fakeroot, for .deb package
|
||||||
|
* Optional: rpm and rpmlint, for .rpm package
|
||||||
* Test as follows:
|
* Test as follows:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -53,14 +54,39 @@ $
|
|||||||
Packaged .deb
|
Packaged .deb
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
You can furthermore go ahead to create a .deb suitable for installation on Debian or Ubuntu. These instructions should similarly work with rpm(for RedHat/CentOS or Fedora), but it is has not been tested.
|
You can furthermore go ahead to create a .deb suitable for installation on
|
||||||
|
Debian or Ubuntu.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ mvn -P full -pl libresonic-booter -am install
|
$ mvn -P full -pl libresonic-booter -am install
|
||||||
$ mvn -P full -pl libresonic-installer-debian/ -am install
|
$ mvn -P full -pl libresonic-installer-debian -am install
|
||||||
$ sudo dpkg -i ./libresonic-installer-debian/target/libresonic-*.deb
|
$ sudo dpkg -i ./libresonic-installer-debian/target/libresonic-*.deb
|
||||||
$
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Good luck!
|
Packaged RPM
|
||||||
|
------------
|
||||||
|
|
||||||
|
Building a RPM package is very similar :
|
||||||
|
|
||||||
|
```
|
||||||
|
$ mvn -P full -pl libresonic-booter -am install
|
||||||
|
$ mvn -P full,rpm -pl libresonic-installer-rpm -am install
|
||||||
|
$ sudo rpm -ivh libresonic-installer-rpm/target/libresonic-*.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
Additional release archives
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Additional release archives can be built using the following commands :
|
||||||
|
|
||||||
|
```
|
||||||
|
$ mvn -Pfull -pl libresonic-assembly assembly:single
|
||||||
|
```
|
||||||
|
|
||||||
|
These archives are built in `libresonic-assembly/targets` and include :
|
||||||
|
|
||||||
|
* The source distribution
|
||||||
|
* The standalone archive (for use without a WAR container)
|
||||||
|
* The WAR archive (for WAR containers)
|
||||||
|
|
||||||
|
Good luck!
|
||||||
|
|||||||
@@ -3,6 +3,20 @@
|
|||||||
# Libresonic/libresonic
|
# Libresonic/libresonic
|
||||||
# -->
|
# -->
|
||||||
|
|
||||||
|
v6.1.beta2
|
||||||
|
--------
|
||||||
|
|
||||||
|
* Metaproject: Jenkins builds!
|
||||||
|
* More documentation
|
||||||
|
* Translation updates
|
||||||
|
* Improve shuffling behaviour
|
||||||
|
* Lots of small fixes, many more to come
|
||||||
|
|
||||||
|
v6.1.beta1
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Meant as a release candidate; failed to make it past the Primary election.
|
||||||
|
|
||||||
v6.1-alpha1
|
v6.1-alpha1
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ Daily WAR files are built by Jenkins and available [here](https://jenkins.zifnab
|
|||||||
|
|
||||||
1. Download the latest war file:
|
1. Download the latest war file:
|
||||||
|
|
||||||
wget https://jenkins.zifnab.net/job/libresonic/lastSuccessfulBuild/artifact/.repository/org/libresonic/player/libresonic-main/6.1.beta1/libresonic-main-6.1.beta1.war -O /var/lib/tomcat8/webapps/libresonic.war
|
wget https://jenkins.zifnab.net/job/libresonic/lastSuccessfulBuild/artifact/.repository/org/libresonic/player/libresonic-main/6.1.beta2/libresonic-main-6.1.beta2.war -O /var/lib/tomcat8/webapps/libresonic.war
|
||||||
|
|
||||||
Note that this command copies the war file directly to the Tomcat webapps directory, and renames it to `libresonic.war`.
|
Note that this command copies the war file directly to the Tomcat webapps directory, and renames it to `libresonic.war`.
|
||||||
|
|
||||||
|
|||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
Upgrade to Libresonic from Subsonic
|
||||||
|
================
|
||||||
|
|
||||||
|
This guide helps you to migrate your data from Subsonic to Libresonic. It has been tested with Subsonic 5 to Libresonic 6.
|
||||||
|
|
||||||
|
Install Libresonic as described in INSTALL.md. The author of this guide used the standalone solution without Java Tomcat.
|
||||||
|
|
||||||
|
After installation of Libresonic, the database needs to be migrated. In preperation for that, stop the Libresonic service
|
||||||
|
|
||||||
|
sudo service libresonic stop
|
||||||
|
|
||||||
|
If you ran Subsonic before, your data will be (by default) stored in `/var/subsonic`. Assuming you did not use Libresonic before, we will delete all data from Libresonic
|
||||||
|
|
||||||
|
sudo rm -r /var/libresonic # WARNING: DELETES all Libresonic data (Subsonic data will be kept)
|
||||||
|
|
||||||
|
We then copy Subsonic data to Libresonic location. Be aware that a couple of files need to be renamed:
|
||||||
|
|
||||||
|
sudo cp -a /var/subsonic /var/libresonic
|
||||||
|
sudo mv /var/libresonic/subsonic_sh.log libresonic_sh.log
|
||||||
|
sudo mv /var/libresonic/subsonic.log libresonic.log
|
||||||
|
sudo mv /var/libresonic/subsonic.properties libresonic.properties
|
||||||
|
sudo mv /var/libresonic/db/subsonic.backup /var/libresonic/db/libresonic.backup
|
||||||
|
sudo mv /var/libresonic/db/subsonic.data /var/libresonic/db/libresonic.data
|
||||||
|
sudo mv /var/libresonic/db/subsonic.lck /var/libresonic/db/libresonic.lck
|
||||||
|
sudo mv /var/libresonic/db/subsonic.log /var/libresonic/db/libresonic.log
|
||||||
|
sudo mv /var/libresonic/db/subsonic.properties /var/libresonic/db/libresonic.properties
|
||||||
|
sudo mv /var/libresonic/db/subsonic.script /var/libresonic/db/libresonic.script
|
||||||
|
|
||||||
|
Then start Libresonic service again.
|
||||||
|
|
||||||
|
sudo service libresonic start
|
||||||
|
|
||||||
|
Your old settings will be there. If you wish, you can delete subsonic data
|
||||||
|
|
||||||
|
sudo rm -r /var/subsonic # Optional, THIS WILL DELETE SUBSONIC DATA
|
||||||
|
|
||||||
@@ -66,15 +66,15 @@ Open a web browser and enter your servers IP address in the url bar followed by
|
|||||||
|
|
||||||
You should be greeted by the Apache Tomcat page. Click on the Manager App button on the right of the page and enter the username and password used in step 3. Default was username: admin and password: admin
|
You should be greeted by the Apache Tomcat page. Click on the Manager App button on the right of the page and enter the username and password used in step 3. Default was username: admin and password: admin
|
||||||
|
|
||||||
Scroll down to Deploy and the subheading "WAR file to deploy" hit choose file and select the libresonic.war downloaded in the preamble. After selecting press the deploy button. Scroll up and press start. When the page refreshes a message "OK - Started application at context path /libresonic-v6.1.beta1" should be visible.
|
Scroll down to Deploy and the subheading "WAR file to deploy" hit choose file and select the libresonic.war downloaded in the preamble. After selecting press the deploy button. Scroll up and press start. When the page refreshes a message "OK - Started application at context path /libresonic-v6.1.beta2" should be visible.
|
||||||
|
|
||||||
### 6. Navigate to Libresonic
|
### 6. Navigate to Libresonic
|
||||||
|
|
||||||
In a browser. Take your server IP address and port and append the the context path from above
|
In a browser. Take your server IP address and port and append the the context path from above
|
||||||
|
|
||||||
ie if the War deployed was called libresonic-v6.1.beta1.war navigate to:
|
ie if the War deployed was called libresonic-v6.1.beta2.war navigate to:
|
||||||
|
|
||||||
10.0.0.10:8080/libresonic-v6.1.beta1/
|
10.0.0.10:8080/libresonic-v6.1.beta2/
|
||||||
|
|
||||||
### 7. Log into Libresonic
|
### 7. Log into Libresonic
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Daily WAR files are built by Jenkins and available [here](https://jenkins.zifnab
|
|||||||
|
|
||||||
1. Download the latest war file:
|
1. Download the latest war file:
|
||||||
|
|
||||||
wget https://jenkins.zifnab.net/job/libresonic/lastSuccessfulBuild/artifact/.repository/org/libresonic/player/libresonic-main/6.1.beta1/libresonic-main-6.1.beta1.war -O /var/lib/tomcat8/webapps/libresonic.war
|
wget https://jenkins.zifnab.net/job/libresonic/lastSuccessfulBuild/artifact/.repository/org/libresonic/player/libresonic-main/6.1.beta2/libresonic-main-6.1.beta2.war -O /var/lib/tomcat8/webapps/libresonic.war
|
||||||
|
|
||||||
Note that this command copies the war file directly to the Tomcat webapps directory, and renames it to `libresonic.war`.
|
Note that this command copies the war file directly to the Tomcat webapps directory, and renames it to `libresonic.war`.
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<bean id="service" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
|
<bean id="service" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
|
||||||
<property name="serviceUrl" value="rmi://localhost:9412/LibresonicDeployerService"/>
|
<property name="serviceUrl" value="rmi://localhost:9412/LibresonicDeployerService"/>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<bean id="service" class="org.libresonic.player.booter.deployer.LibresonicDeployer"/>
|
<bean id="service" class="org.libresonic.player.booter.deployer.LibresonicDeployer"/>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<bean id="deployer" class="org.libresonic.player.booter.deployer.LibresonicDeployer"/>
|
<bean id="deployer" class="org.libresonic.player.booter.deployer.LibresonicDeployer"/>
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Section: Multimedia
|
|||||||
Priority: optional
|
Priority: optional
|
||||||
Recommends: ffmpeg
|
Recommends: ffmpeg
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Maintainer: Sindre Mehus <sindre@activeobjects.no>
|
Maintainer: Eugene E. Kashpureff Jr <eugene@kashpureff.org>
|
||||||
Description: A web-based music streamer, jukebox and Podcast receiver
|
Description: A web-based music streamer, jukebox and Podcast receiver
|
||||||
Libresonic is a web-based music streamer, jukebox and Podcast receiver,
|
Libresonic is a web-based music streamer, jukebox and Podcast receiver,
|
||||||
providing access to your music collection wherever you are. Use it
|
providing access to your music collection wherever you are. Use it
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -1,105 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="FacetManager">
|
|
||||||
<facet type="web" name="Web">
|
|
||||||
<configuration>
|
|
||||||
<descriptors>
|
|
||||||
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
|
|
||||||
</descriptors>
|
|
||||||
<webroots>
|
|
||||||
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
|
|
||||||
</webroots>
|
|
||||||
<sourceRoots>
|
|
||||||
<root url="file://$MODULE_DIR$/src/main/java" />
|
|
||||||
<root url="file://$MODULE_DIR$/src/main/resources" />
|
|
||||||
</sourceRoots>
|
|
||||||
</configuration>
|
|
||||||
</facet>
|
|
||||||
</component>
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="module" module-name="libresonic-rest-api" />
|
|
||||||
<orderEntry type="module" module-name="libresonic-sonos-api" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring:2.5.6" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:2.5.6" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.acegisecurity:acegi-security:1.0.5" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.lucene:lucene-core:3.0.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: cglib:cglib:2.1_3" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: asm:asm:1.5.3" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-io:commons-io:1.3.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.google.guava:guava-base:r03" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.google.guava:guava-annotations:r03" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.google.guava:guava-collections:r03" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.google.guava:guava-primitives:r03" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.2.4" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.2.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: hsqldb:hsqldb:1.8.0.7" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: radeox:radeox:1.0-b2" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: log4j:log4j:1.2.16" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:slf4j-log4j12:1.6.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.6.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.directwebremoting:dwr:3.0.rc1" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.platform.yui:yuicompressor:2.3.6" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: ant-zip:ant-zip:1.6.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org:jaudiotagger:2.0.3" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: jfree:jfreechart:1.0.11" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: jfree:jcommon:1.0.14" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: net.sf.ehcache:ehcache-core:2.5.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.eclipse.persistence:org.eclipse.persistence.moxy:2.5.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.eclipse.persistence:org.eclipse.persistence.core:2.5.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.eclipse.persistence:org.eclipse.persistence.asm:2.5.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.eclipse.persistence:org.eclipse.persistence.antlr:2.5.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:servlet-api:2.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.servlet:jsp-api:2.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.servlet:jstl:1.1.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: taglibs:standard:1.1.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: taglibs:string:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.hoodcomputing:natpmp:0.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.fourthline.cling:cling-core:2.0.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.seamless:seamless-http:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.seamless:seamless-xml:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.fourthline.cling:cling-support:2.0.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.seamless:seamless-swing:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.seamless:seamless-util:1.0-alpha2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: net.tanesha.recaptcha4j:recaptcha4j:0.0.8" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: de.u-mass:lastfm-java:0.1.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.cxf:cxf-rt-transports-http:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.cxf:cxf-rt-transports-common:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-core:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-javamail_1.4_spec:1.7.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-tools-common:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.1.13" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-xjc:2.1.13" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-api:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.0" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.0.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.cxf:cxf-common-utilities:2.4.2" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.1.1" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.1" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
+1
-13
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@@ -246,12 +246,6 @@
|
|||||||
<version>1.5.5</version>
|
<version>1.5.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.sun.mail</groupId>
|
|
||||||
<artifactId>javax.mail</artifactId>
|
|
||||||
<version>1.5.5</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>taglibs</groupId>
|
<groupId>taglibs</groupId>
|
||||||
<artifactId>standard</artifactId>
|
<artifactId>standard</artifactId>
|
||||||
@@ -291,12 +285,6 @@
|
|||||||
<version>2.0.1</version>
|
<version>2.0.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.seamless</groupId>
|
|
||||||
<artifactId>seamless-http</artifactId>
|
|
||||||
<version>1.1.0</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.seamless</groupId>
|
<groupId>org.seamless</groupId>
|
||||||
<artifactId>seamless-util</artifactId>
|
<artifactId>seamless-util</artifactId>
|
||||||
|
|||||||
+9
@@ -57,6 +57,7 @@ public class PersonalSettingsCommand {
|
|||||||
private boolean songNotificationEnabled;
|
private boolean songNotificationEnabled;
|
||||||
private boolean queueFollowingSongs;
|
private boolean queueFollowingSongs;
|
||||||
private boolean lastFmEnabled;
|
private boolean lastFmEnabled;
|
||||||
|
private int listReloadDelay;
|
||||||
private String lastFmUsername;
|
private String lastFmUsername;
|
||||||
private String lastFmPassword;
|
private String lastFmPassword;
|
||||||
private boolean isReloadNeeded;
|
private boolean isReloadNeeded;
|
||||||
@@ -237,6 +238,14 @@ public class PersonalSettingsCommand {
|
|||||||
this.lastFmEnabled = lastFmEnabled;
|
this.lastFmEnabled = lastFmEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getListReloadDelay() {
|
||||||
|
return listReloadDelay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListReloadDelay(int listReloadDelay) {
|
||||||
|
this.listReloadDelay = listReloadDelay;
|
||||||
|
}
|
||||||
|
|
||||||
public String getLastFmUsername() {
|
public String getLastFmUsername() {
|
||||||
return lastFmUsername;
|
return lastFmUsername;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ public class PlayerSettingsCommand {
|
|||||||
private Date lastSeen;
|
private Date lastSeen;
|
||||||
private boolean isDynamicIp;
|
private boolean isDynamicIp;
|
||||||
private boolean isAutoControlEnabled;
|
private boolean isAutoControlEnabled;
|
||||||
|
private boolean isM3uBomEnabled;
|
||||||
private String technologyName;
|
private String technologyName;
|
||||||
private String transcodeSchemeName;
|
private String transcodeSchemeName;
|
||||||
private boolean transcodingSupported;
|
private boolean transcodingSupported;
|
||||||
@@ -109,6 +110,14 @@ public class PlayerSettingsCommand {
|
|||||||
isAutoControlEnabled = autoControlEnabled;
|
isAutoControlEnabled = autoControlEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isM3uBomEnabled() {
|
||||||
|
return isM3uBomEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setM3uBomEnabled(boolean m3uBomEnabled) {
|
||||||
|
isM3uBomEnabled = m3uBomEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTranscodeSchemeName() {
|
public String getTranscodeSchemeName() {
|
||||||
return transcodeSchemeName;
|
return transcodeSchemeName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,8 +76,8 @@ public class HomeController extends ParameterizableViewController {
|
|||||||
}
|
}
|
||||||
int listOffset = getIntParameter(request, "listOffset", 0);
|
int listOffset = getIntParameter(request, "listOffset", 0);
|
||||||
AlbumListType listType = AlbumListType.fromId(getStringParameter(request, "listType"));
|
AlbumListType listType = AlbumListType.fromId(getStringParameter(request, "listType"));
|
||||||
|
UserSettings userSettings = settingsService.getUserSettings(user.getUsername());
|
||||||
if (listType == null) {
|
if (listType == null) {
|
||||||
UserSettings userSettings = settingsService.getUserSettings(user.getUsername());
|
|
||||||
listType = userSettings.getDefaultAlbumList();
|
listType = userSettings.getDefaultAlbumList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,6 +140,7 @@ public class HomeController extends ParameterizableViewController {
|
|||||||
map.put("coverArtSize", CoverArtScheme.MEDIUM.getSize());
|
map.put("coverArtSize", CoverArtScheme.MEDIUM.getSize());
|
||||||
map.put("listOffset", listOffset);
|
map.put("listOffset", listOffset);
|
||||||
map.put("musicFolder", selectedMusicFolder);
|
map.put("musicFolder", selectedMusicFolder);
|
||||||
|
map.put("listReloadDelay", userSettings.getListReloadDelay());
|
||||||
|
|
||||||
ModelAndView result = super.handleRequestInternal(request, response);
|
ModelAndView result = super.handleRequestInternal(request, response);
|
||||||
result.addObject("model", map);
|
result.addObject("model", map);
|
||||||
|
|||||||
@@ -74,6 +74,9 @@ public class M3UController implements Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void createClientSidePlaylist(PrintWriter out, Player player, String url) throws Exception {
|
private void createClientSidePlaylist(PrintWriter out, Player player, String url) throws Exception {
|
||||||
|
if (player.isM3uBomEnabled()) {
|
||||||
|
out.print("\ufeff");
|
||||||
|
}
|
||||||
out.println("#EXTM3U");
|
out.println("#EXTM3U");
|
||||||
List<MediaFile> result;
|
List<MediaFile> result;
|
||||||
synchronized (player.getPlayQueue()) {
|
synchronized (player.getPlayQueue()) {
|
||||||
@@ -99,6 +102,9 @@ public class M3UController implements Controller {
|
|||||||
url += "&suffix=." + suffix;
|
url += "&suffix=." + suffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player.isM3uBomEnabled()) {
|
||||||
|
out.print("\ufeff");
|
||||||
|
}
|
||||||
out.println("#EXTM3U");
|
out.println("#EXTM3U");
|
||||||
out.println("#EXTINF:-1,Libresonic");
|
out.println("#EXTINF:-1,Libresonic");
|
||||||
out.println(url);
|
out.println(url);
|
||||||
|
|||||||
@@ -237,6 +237,7 @@ public class MultiController extends MultiActionController {
|
|||||||
Map<String, Object> map = new HashMap<String, Object>();
|
Map<String, Object> map = new HashMap<String, Object>();
|
||||||
map.put("showRight", userSettings.isShowNowPlayingEnabled() || userSettings.isShowChatEnabled());
|
map.put("showRight", userSettings.isShowNowPlayingEnabled() || userSettings.isShowChatEnabled());
|
||||||
map.put("autoHidePlayQueue", userSettings.isAutoHidePlayQueue());
|
map.put("autoHidePlayQueue", userSettings.isAutoHidePlayQueue());
|
||||||
|
map.put("listReloadDelay", userSettings.getListReloadDelay());
|
||||||
map.put("showSideBar", userSettings.isShowSideBar());
|
map.put("showSideBar", userSettings.isShowSideBar());
|
||||||
map.put("brand", settingsService.getBrand());
|
map.put("brand", settingsService.getBrand());
|
||||||
return new ModelAndView("index", "model", map);
|
return new ModelAndView("index", "model", map);
|
||||||
|
|||||||
+2
@@ -73,6 +73,7 @@ public class PersonalSettingsController extends SimpleFormController {
|
|||||||
command.setBetaVersionNotificationEnabled(userSettings.isBetaVersionNotificationEnabled());
|
command.setBetaVersionNotificationEnabled(userSettings.isBetaVersionNotificationEnabled());
|
||||||
command.setSongNotificationEnabled(userSettings.isSongNotificationEnabled());
|
command.setSongNotificationEnabled(userSettings.isSongNotificationEnabled());
|
||||||
command.setAutoHidePlayQueue(userSettings.isAutoHidePlayQueue());
|
command.setAutoHidePlayQueue(userSettings.isAutoHidePlayQueue());
|
||||||
|
command.setListReloadDelay(userSettings.getListReloadDelay());
|
||||||
command.setLastFmEnabled(userSettings.isLastFmEnabled());
|
command.setLastFmEnabled(userSettings.isLastFmEnabled());
|
||||||
command.setLastFmUsername(userSettings.getLastFmUsername());
|
command.setLastFmUsername(userSettings.getLastFmUsername());
|
||||||
command.setLastFmPassword(userSettings.getLastFmPassword());
|
command.setLastFmPassword(userSettings.getLastFmPassword());
|
||||||
@@ -135,6 +136,7 @@ public class PersonalSettingsController extends SimpleFormController {
|
|||||||
settings.setBetaVersionNotificationEnabled(command.isBetaVersionNotificationEnabled());
|
settings.setBetaVersionNotificationEnabled(command.isBetaVersionNotificationEnabled());
|
||||||
settings.setSongNotificationEnabled(command.isSongNotificationEnabled());
|
settings.setSongNotificationEnabled(command.isSongNotificationEnabled());
|
||||||
settings.setAutoHidePlayQueue(command.isAutoHidePlayQueue());
|
settings.setAutoHidePlayQueue(command.isAutoHidePlayQueue());
|
||||||
|
settings.setListReloadDelay(command.getListReloadDelay());
|
||||||
settings.setLastFmEnabled(command.isLastFmEnabled());
|
settings.setLastFmEnabled(command.isLastFmEnabled());
|
||||||
settings.setLastFmUsername(command.getLastFmUsername());
|
settings.setLastFmUsername(command.getLastFmUsername());
|
||||||
settings.setSystemAvatarId(getSystemAvatarId(command));
|
settings.setSystemAvatarId(getSystemAvatarId(command));
|
||||||
|
|||||||
+2
@@ -72,6 +72,7 @@ public class PlayerSettingsController extends SimpleFormController {
|
|||||||
command.setLastSeen(player.getLastSeen());
|
command.setLastSeen(player.getLastSeen());
|
||||||
command.setDynamicIp(player.isDynamicIp());
|
command.setDynamicIp(player.isDynamicIp());
|
||||||
command.setAutoControlEnabled(player.isAutoControlEnabled());
|
command.setAutoControlEnabled(player.isAutoControlEnabled());
|
||||||
|
command.setM3uBomEnabled(player.isM3uBomEnabled());
|
||||||
command.setTranscodeSchemeName(player.getTranscodeScheme().name());
|
command.setTranscodeSchemeName(player.getTranscodeScheme().name());
|
||||||
command.setTechnologyName(player.getTechnology().name());
|
command.setTechnologyName(player.getTechnology().name());
|
||||||
command.setAllTranscodings(transcodingService.getAllTranscodings());
|
command.setAllTranscodings(transcodingService.getAllTranscodings());
|
||||||
@@ -99,6 +100,7 @@ public class PlayerSettingsController extends SimpleFormController {
|
|||||||
Player player = playerService.getPlayerById(command.getPlayerId());
|
Player player = playerService.getPlayerById(command.getPlayerId());
|
||||||
|
|
||||||
player.setAutoControlEnabled(command.isAutoControlEnabled());
|
player.setAutoControlEnabled(command.isAutoControlEnabled());
|
||||||
|
player.setM3uBomEnabled(command.isM3uBomEnabled());
|
||||||
player.setDynamicIp(command.isDynamicIp());
|
player.setDynamicIp(command.isDynamicIp());
|
||||||
player.setName(StringUtils.trimToNull(command.getName()));
|
player.setName(StringUtils.trimToNull(command.getName()));
|
||||||
player.setTranscodeScheme(TranscodeScheme.valueOf(command.getTranscodeSchemeName()));
|
player.setTranscodeScheme(TranscodeScheme.valueOf(command.getTranscodeSchemeName()));
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ import org.libresonic.player.dao.schema.hsql.Schema50;
|
|||||||
import org.libresonic.player.dao.schema.hsql.Schema51;
|
import org.libresonic.player.dao.schema.hsql.Schema51;
|
||||||
import org.libresonic.player.dao.schema.hsql.Schema52;
|
import org.libresonic.player.dao.schema.hsql.Schema52;
|
||||||
import org.libresonic.player.dao.schema.hsql.Schema53;
|
import org.libresonic.player.dao.schema.hsql.Schema53;
|
||||||
|
import org.libresonic.player.dao.schema.hsql.Schema61;
|
||||||
|
import org.libresonic.player.dao.schema.hsql.Schema62;
|
||||||
import org.libresonic.player.service.SettingsService;
|
import org.libresonic.player.service.SettingsService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -67,7 +69,8 @@ public class HsqlDaoHelper implements DaoHelper {
|
|||||||
new Schema30(), new Schema31(), new Schema32(), new Schema33(), new Schema34(),
|
new Schema30(), new Schema31(), new Schema32(), new Schema33(), new Schema34(),
|
||||||
new Schema35(), new Schema36(), new Schema37(), new Schema38(), new Schema40(),
|
new Schema35(), new Schema36(), new Schema37(), new Schema38(), new Schema40(),
|
||||||
new Schema43(), new Schema45(), new Schema46(), new Schema47(), new Schema49(),
|
new Schema43(), new Schema45(), new Schema46(), new Schema47(), new Schema49(),
|
||||||
new Schema50(), new Schema51(), new Schema52(), new Schema53()};
|
new Schema50(), new Schema51(), new Schema52(), new Schema53(), new Schema61(),
|
||||||
|
new Schema62()};
|
||||||
private DataSource dataSource;
|
private DataSource dataSource;
|
||||||
private static boolean shutdownHookAdded;
|
private static boolean shutdownHookAdded;
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ import java.util.*;
|
|||||||
public class PlayerDao extends AbstractDao {
|
public class PlayerDao extends AbstractDao {
|
||||||
|
|
||||||
private static final Logger LOG = Logger.getLogger(PlayerDao.class);
|
private static final Logger LOG = Logger.getLogger(PlayerDao.class);
|
||||||
private static final String COLUMNS = "id, name, type, username, ip_address, auto_control_enabled, " +
|
private static final String COLUMNS = "id, name, type, username, ip_address, auto_control_enabled, m3u_bom_enabled, " +
|
||||||
"last_seen, cover_art_scheme, transcode_scheme, dynamic_ip, technology, client_id";
|
"last_seen, cover_art_scheme, transcode_scheme, dynamic_ip, technology, client_id";
|
||||||
|
|
||||||
private PlayerRowMapper rowMapper = new PlayerRowMapper();
|
private PlayerRowMapper rowMapper = new PlayerRowMapper();
|
||||||
@@ -94,7 +94,7 @@ public class PlayerDao extends AbstractDao {
|
|||||||
player.setId(String.valueOf(id));
|
player.setId(String.valueOf(id));
|
||||||
String sql = "insert into player (" + COLUMNS + ") values (" + questionMarks(COLUMNS) + ")";
|
String sql = "insert into player (" + COLUMNS + ") values (" + questionMarks(COLUMNS) + ")";
|
||||||
update(sql, player.getId(), player.getName(), player.getType(), player.getUsername(),
|
update(sql, player.getId(), player.getName(), player.getType(), player.getUsername(),
|
||||||
player.getIpAddress(), player.isAutoControlEnabled(),
|
player.getIpAddress(), player.isAutoControlEnabled(), player.isM3uBomEnabled(),
|
||||||
player.getLastSeen(), CoverArtScheme.MEDIUM.name(),
|
player.getLastSeen(), CoverArtScheme.MEDIUM.name(),
|
||||||
player.getTranscodeScheme().name(), player.isDynamicIp(),
|
player.getTranscodeScheme().name(), player.isDynamicIp(),
|
||||||
player.getTechnology().name(), player.getClientId());
|
player.getTechnology().name(), player.getClientId());
|
||||||
@@ -143,6 +143,7 @@ public class PlayerDao extends AbstractDao {
|
|||||||
"username = ?," +
|
"username = ?," +
|
||||||
"ip_address = ?," +
|
"ip_address = ?," +
|
||||||
"auto_control_enabled = ?," +
|
"auto_control_enabled = ?," +
|
||||||
|
"m3u_bom_enabled = ?," +
|
||||||
"last_seen = ?," +
|
"last_seen = ?," +
|
||||||
"transcode_scheme = ?, " +
|
"transcode_scheme = ?, " +
|
||||||
"dynamic_ip = ?, " +
|
"dynamic_ip = ?, " +
|
||||||
@@ -150,7 +151,7 @@ public class PlayerDao extends AbstractDao {
|
|||||||
"client_id = ? " +
|
"client_id = ? " +
|
||||||
"where id = ?";
|
"where id = ?";
|
||||||
update(sql, player.getName(), player.getType(), player.getUsername(),
|
update(sql, player.getName(), player.getType(), player.getUsername(),
|
||||||
player.getIpAddress(), player.isAutoControlEnabled(),
|
player.getIpAddress(), player.isAutoControlEnabled(), player.isM3uBomEnabled(),
|
||||||
player.getLastSeen(), player.getTranscodeScheme().name(), player.isDynamicIp(),
|
player.getLastSeen(), player.getTranscodeScheme().name(), player.isDynamicIp(),
|
||||||
player.getTechnology(), player.getClientId(), player.getId());
|
player.getTechnology(), player.getClientId(), player.getId());
|
||||||
}
|
}
|
||||||
@@ -174,6 +175,7 @@ public class PlayerDao extends AbstractDao {
|
|||||||
player.setUsername(rs.getString(col++));
|
player.setUsername(rs.getString(col++));
|
||||||
player.setIpAddress(rs.getString(col++));
|
player.setIpAddress(rs.getString(col++));
|
||||||
player.setAutoControlEnabled(rs.getBoolean(col++));
|
player.setAutoControlEnabled(rs.getBoolean(col++));
|
||||||
|
player.setM3uBomEnabled(rs.getBoolean(col++));
|
||||||
player.setLastSeen(rs.getTimestamp(col++));
|
player.setLastSeen(rs.getTimestamp(col++));
|
||||||
col++; // Ignore cover art scheme.
|
col++; // Ignore cover art scheme.
|
||||||
player.setTranscodeScheme(TranscodeScheme.valueOf(rs.getString(col++)));
|
player.setTranscodeScheme(TranscodeScheme.valueOf(rs.getString(col++)));
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class UserDao extends AbstractDao {
|
|||||||
"playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, " +
|
"playlist_year, playlist_bit_rate, playlist_duration, playlist_format, playlist_file_size, " +
|
||||||
"last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, " +
|
"last_fm_enabled, last_fm_username, last_fm_password, transcode_scheme, show_now_playing, selected_music_folder_id, " +
|
||||||
"party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, " +
|
"party_mode_enabled, now_playing_allowed, avatar_scheme, system_avatar_id, changed, show_chat, show_artist_info, auto_hide_play_queue, " +
|
||||||
"view_as_list, default_album_list, queue_following_songs, show_side_bar";
|
"view_as_list, default_album_list, queue_following_songs, show_side_bar, list_reload_delay";
|
||||||
|
|
||||||
private static final Integer ROLE_ID_ADMIN = 1;
|
private static final Integer ROLE_ID_ADMIN = 1;
|
||||||
private static final Integer ROLE_ID_DOWNLOAD = 2;
|
private static final Integer ROLE_ID_DOWNLOAD = 2;
|
||||||
@@ -188,7 +188,7 @@ public class UserDao extends AbstractDao {
|
|||||||
settings.getAvatarScheme().name(), settings.getSystemAvatarId(), settings.getChanged(),
|
settings.getAvatarScheme().name(), settings.getSystemAvatarId(), settings.getChanged(),
|
||||||
settings.isShowChatEnabled(), settings.isShowArtistInfoEnabled(), settings.isAutoHidePlayQueue(),
|
settings.isShowChatEnabled(), settings.isShowArtistInfoEnabled(), settings.isAutoHidePlayQueue(),
|
||||||
settings.isViewAsList(), settings.getDefaultAlbumList().getId(), settings.isQueueFollowingSongs(),
|
settings.isViewAsList(), settings.getDefaultAlbumList().getId(), settings.isQueueFollowingSongs(),
|
||||||
settings.isShowSideBar()});
|
settings.isShowSideBar(), settings.getListReloadDelay()});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String encrypt(String s) {
|
private static String encrypt(String s) {
|
||||||
@@ -349,6 +349,7 @@ public class UserDao extends AbstractDao {
|
|||||||
settings.setDefaultAlbumList(AlbumListType.fromId(rs.getString(col++)));
|
settings.setDefaultAlbumList(AlbumListType.fromId(rs.getString(col++)));
|
||||||
settings.setQueueFollowingSongs(rs.getBoolean(col++));
|
settings.setQueueFollowingSongs(rs.getBoolean(col++));
|
||||||
settings.setShowSideBar(rs.getBoolean(col++));
|
settings.setShowSideBar(rs.getBoolean(col++));
|
||||||
|
settings.setListReloadDelay((Integer) rs.getObject(col++));
|
||||||
|
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of Libresonic.
|
||||||
|
*
|
||||||
|
* Libresonic is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Libresonic 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.libresonic.player.dao.schema.hsql;
|
||||||
|
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
|
||||||
|
import org.libresonic.player.Logger;
|
||||||
|
import org.libresonic.player.dao.schema.Schema;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for creating and evolving the database schema.
|
||||||
|
* This class implements the database schema for Libresonic version 6.1.
|
||||||
|
*
|
||||||
|
* @author François-Xavier Thomas
|
||||||
|
*/
|
||||||
|
public class Schema61 extends Schema {
|
||||||
|
|
||||||
|
private static final Logger LOG = Logger.getLogger(Schema61.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(JdbcTemplate template) {
|
||||||
|
|
||||||
|
if (template.queryForInt("select count(*) from version where version = 26") == 0) {
|
||||||
|
LOG.info("Updating database schema to version 26.");
|
||||||
|
template.execute("insert into version values (26)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!columnExists(template, "list_reload_delay", "user_settings")) {
|
||||||
|
LOG.info("Database column 'user_settings.list_reload_delay' not found. Creating it.");
|
||||||
|
template.execute("alter table user_settings add list_reload_delay int default 60 not null");
|
||||||
|
LOG.info("Database column 'user_settings.list_reload_delay' was added successfully.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of Libresonic.
|
||||||
|
*
|
||||||
|
* Libresonic is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Libresonic 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 General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package org.libresonic.player.dao.schema.hsql;
|
||||||
|
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
|
||||||
|
import org.libresonic.player.Logger;
|
||||||
|
import org.libresonic.player.dao.schema.Schema;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for creating and evolving the database schema.
|
||||||
|
* This class implements the database schema for Libresonic version 6.1.
|
||||||
|
*
|
||||||
|
* @author Shen-Ta Hsieh
|
||||||
|
*/
|
||||||
|
public class Schema62 extends Schema {
|
||||||
|
|
||||||
|
private static final Logger LOG = Logger.getLogger(Schema62.class);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(JdbcTemplate template) {
|
||||||
|
|
||||||
|
if (template.queryForInt("select count(*) from version where version = 27") == 0) {
|
||||||
|
LOG.info("Updating database schema to version 27.");
|
||||||
|
template.execute("insert into version values (27)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!columnExists(template, "player", "m3u_bom_enabled")) {
|
||||||
|
LOG.info("Database column 'player.m3u_bom_enabled' not found. Creating it.");
|
||||||
|
template.execute("alter table player add m3u_bom_enabled boolean default false not null");
|
||||||
|
LOG.info("Database column 'player.m3u_bom_enabled' was added successfully.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -241,7 +241,8 @@ public class PlayQueue {
|
|||||||
MediaFile currentFile = getCurrentFile();
|
MediaFile currentFile = getCurrentFile();
|
||||||
Collections.shuffle(files);
|
Collections.shuffle(files);
|
||||||
if (currentFile != null) {
|
if (currentFile != null) {
|
||||||
index = files.indexOf(currentFile);
|
Collections.swap(files, files.indexOf(currentFile), 0);
|
||||||
|
index = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public class Player {
|
|||||||
private String ipAddress;
|
private String ipAddress;
|
||||||
private boolean isDynamicIp = true;
|
private boolean isDynamicIp = true;
|
||||||
private boolean isAutoControlEnabled = true;
|
private boolean isAutoControlEnabled = true;
|
||||||
|
private boolean isM3uBomEnabled = true;
|
||||||
private Date lastSeen;
|
private Date lastSeen;
|
||||||
private TranscodeScheme transcodeScheme = TranscodeScheme.OFF;
|
private TranscodeScheme transcodeScheme = TranscodeScheme.OFF;
|
||||||
private PlayQueue playQueue;
|
private PlayQueue playQueue;
|
||||||
@@ -188,6 +189,24 @@ public class Player {
|
|||||||
this.isAutoControlEnabled = isAutoControlEnabled;
|
this.isAutoControlEnabled = isAutoControlEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether apply BOM mark when generating a M3U file.
|
||||||
|
*
|
||||||
|
* @return Whether apply BOM mark when generating a M3U file.
|
||||||
|
*/
|
||||||
|
public boolean isM3uBomEnabled() {
|
||||||
|
return isM3uBomEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets whether apply BOM mark when generating a M3U file.
|
||||||
|
*
|
||||||
|
* @param isM3uBomEnabled Whether apply BOM mark when generating a M3U file.
|
||||||
|
*/
|
||||||
|
public void setM3uBomEnabled(boolean isM3uBomEnabled) {
|
||||||
|
this.isM3uBomEnabled = isM3uBomEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the time when the player was last seen.
|
* Returns the time when the player was last seen.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public class UserSettings {
|
|||||||
private Visibility mainVisibility = new Visibility();
|
private Visibility mainVisibility = new Visibility();
|
||||||
private Visibility playlistVisibility = new Visibility();
|
private Visibility playlistVisibility = new Visibility();
|
||||||
private boolean lastFmEnabled;
|
private boolean lastFmEnabled;
|
||||||
|
private int listReloadDelay;
|
||||||
private String lastFmUsername;
|
private String lastFmUsername;
|
||||||
private String lastFmPassword;
|
private String lastFmPassword;
|
||||||
private TranscodeScheme transcodeScheme = TranscodeScheme.OFF;
|
private TranscodeScheme transcodeScheme = TranscodeScheme.OFF;
|
||||||
@@ -156,6 +157,14 @@ public class UserSettings {
|
|||||||
this.lastFmEnabled = lastFmEnabled;
|
this.lastFmEnabled = lastFmEnabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getListReloadDelay() {
|
||||||
|
return listReloadDelay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListReloadDelay(int listReloadDelay) {
|
||||||
|
this.listReloadDelay = listReloadDelay;
|
||||||
|
}
|
||||||
|
|
||||||
public String getLastFmUsername() {
|
public String getLastFmUsername() {
|
||||||
return lastFmUsername;
|
return lastFmUsername;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1270,6 +1270,7 @@ public class SettingsService {
|
|||||||
settings.setQueueFollowingSongs(true);
|
settings.setQueueFollowingSongs(true);
|
||||||
settings.setDefaultAlbumList(AlbumListType.RANDOM);
|
settings.setDefaultAlbumList(AlbumListType.RANDOM);
|
||||||
settings.setLastFmEnabled(false);
|
settings.setLastFmEnabled(false);
|
||||||
|
settings.setListReloadDelay(60);
|
||||||
settings.setLastFmUsername(null);
|
settings.setLastFmUsername(null);
|
||||||
settings.setLastFmPassword(null);
|
settings.setLastFmPassword(null);
|
||||||
settings.setChanged(new Date());
|
settings.setChanged(new Date());
|
||||||
|
|||||||
+4
@@ -378,6 +378,7 @@ personalsettings.autohideplayqueue = Auto-hide play queue
|
|||||||
personalsettings.finalversionnotification = Notify me about new versions
|
personalsettings.finalversionnotification = Notify me about new versions
|
||||||
personalsettings.betaversionnotification = Notify me about new beta versions
|
personalsettings.betaversionnotification = Notify me about new beta versions
|
||||||
personalsettings.songnotification = Notify me when new songs are played (not supported by all browsers)
|
personalsettings.songnotification = Notify me when new songs are played (not supported by all browsers)
|
||||||
|
personalsettings.listreloaddelay = Album list reload delay (in seconds, 0 disables)
|
||||||
personalsettings.lastfmenabled = Register what I'm playing at <a href="http://last.fm/" target="_blank">Last.fm</a>
|
personalsettings.lastfmenabled = Register what I'm playing at <a href="http://last.fm/" target="_blank">Last.fm</a>
|
||||||
personalsettings.lastfmusername = Last.fm username
|
personalsettings.lastfmusername = Last.fm username
|
||||||
personalsettings.lastfmpassword = Last.fm password
|
personalsettings.lastfmpassword = Last.fm password
|
||||||
@@ -511,6 +512,7 @@ playersettings.name = Player name
|
|||||||
playersettings.maxbitrate = Max bitrate
|
playersettings.maxbitrate = Max bitrate
|
||||||
playersettings.notranscoder = <em>Notice:</em> Transcoders does not appear to be installed.<br>Click Help button for more information.
|
playersettings.notranscoder = <em>Notice:</em> Transcoders does not appear to be installed.<br>Click Help button for more information.
|
||||||
playersettings.autocontrol = Control player automatically
|
playersettings.autocontrol = Control player automatically
|
||||||
|
playersettings.m3ubom = Apply BOM signature in the generated M3U file
|
||||||
playersettings.dynamicip = Player has dynamic IP address
|
playersettings.dynamicip = Player has dynamic IP address
|
||||||
playersettings.transcodings = Active transcodings
|
playersettings.transcodings = Active transcodings
|
||||||
playersettings.ok = Save
|
playersettings.ok = Save
|
||||||
@@ -817,6 +819,8 @@ helppopup.playername.text = <p>Allows you to specify an easy-to-remember name fo
|
|||||||
helppopup.autocontrol.title = Control player automatically
|
helppopup.autocontrol.title = Control player automatically
|
||||||
helppopup.autocontrol.text = <p>With this option selected, {0} will automatically start the player when you click "Play" \
|
helppopup.autocontrol.text = <p>With this option selected, {0} will automatically start the player when you click "Play" \
|
||||||
in the playlist. Otherwise, you must start and connect the player yourself.</p>
|
in the playlist. Otherwise, you must start and connect the player yourself.</p>
|
||||||
|
helppopup.m3ubom.title = Apply BOM in M3U file
|
||||||
|
helppopup.m3ubom.text = <p>Apply a BOM mark in generated M3U playlists for Unicode compatibility.</p>
|
||||||
helppopup.dynamicip.title = Dynamic IP address
|
helppopup.dynamicip.title = Dynamic IP address
|
||||||
helppopup.dynamicip.text = <p>Turn off this option if the player uses a static IP address.</p>
|
helppopup.dynamicip.text = <p>Turn off this option if the player uses a static IP address.</p>
|
||||||
helppopup.smtpServer.title = SMTP Server
|
helppopup.smtpServer.title = SMTP Server
|
||||||
|
|||||||
+409
-177
@@ -1,44 +1,71 @@
|
|||||||
#
|
#
|
||||||
# Taiwan localization.
|
# Traditional Chinese (Taiwan) localization.
|
||||||
# Author: Cheng Jen Li
|
# Author: Cheng Jen Li
|
||||||
# chengjen.li@gmail.com
|
# chengjen.li@gmail.com
|
||||||
|
# Author: Shen-Ta Hsieh
|
||||||
|
# ibmibmibm.tw@gmail.com
|
||||||
#
|
#
|
||||||
|
|
||||||
common.home = \u9996\u9801
|
common.home = \u9996\u9801
|
||||||
common.back = \u56DE\u5FA9
|
common.back = \u4E0A\u4E00\u9801
|
||||||
common.help = \u5354\u52A9
|
common.help = \u8AAA\u660E
|
||||||
common.play = \u64AD\u653E
|
common.play = \u64AD\u653E
|
||||||
common.add = \u65B0\u589E
|
common.add = \u65B0\u589E
|
||||||
common.download = \u4E0B\u8F09
|
common.download = \u4E0B\u8F09
|
||||||
common.close = \u95DC\u9589
|
common.close = \u95DC\u9589
|
||||||
common.refresh = \u5237\u65B0
|
common.refresh = \u91CD\u65B0\u6574\u7406
|
||||||
common.next = \u4E0B\u9801
|
common.next = \u4E0B\u4E00\u9801
|
||||||
common.previous = \u4E0A\u9801
|
common.previous = \u4E0A\u4E00\u9801
|
||||||
common.more = \u66F4\u591A
|
common.more = \u66F4\u591A
|
||||||
common.ok = \u78BA\u5B9A
|
common.ok = \u78BA\u5B9A
|
||||||
common.cancel = \u53D6\u6D88
|
common.cancel = \u53D6\u6D88
|
||||||
common.save = \u5132\u5B58
|
common.save = \u5132\u5B58
|
||||||
common.create = \u5EFA\u7ACB
|
common.create = \u5EFA\u7ACB
|
||||||
common.delete = \u522A\u9664
|
common.delete = \u522A\u9664
|
||||||
|
common.edit = \u7DE8\u8F2F
|
||||||
|
common.confirm = \u8ACB\u78BA\u8A8D
|
||||||
common.unknown = (\u672A\u77E5)
|
common.unknown = (\u672A\u77E5)
|
||||||
common.default = (\u9810\u8A2D\u503C)
|
common.default = (\u9810\u8A2D\u503C)
|
||||||
|
common.settingssaved = \u8A2D\u5B9A\u5DF2\u5132\u5B58\u3002
|
||||||
|
common.trialexpired = \u8A66\u7528\u7248\u5C07\u65BC {0} \u5230\u671F\u3002\u53D6\u5F97<b><a href="premiumSettings.view?">Subsonic Premium</a></b>\u4F86\u4F7F\u7528\u9019\u500B\u529F\u80FD\u3002
|
||||||
|
common.trialnotexpired = \u9019\u500B\u529F\u80FD\u5728 {0} \u4E4B\u524D\u90FD\u53EF\u4F7F\u7528\u3002\u4E4B\u5F8C\u60A8\u5FC5\u9808\u53D6\u5F97<b><a href="premiumSettings.view?">Subsonic Premium</a></b>\u624D\u80FD\u4F7F\u7528\u3002
|
||||||
|
|
||||||
# login.jsp
|
# login.jsp
|
||||||
login.username = \u5E33\u865F
|
login.username = \u5E33\u865F
|
||||||
login.password = \u5BC6\u78BC
|
login.password = \u5BC6\u78BC
|
||||||
login.login = \u767B\u5165
|
login.login = \u767B\u5165
|
||||||
login.remember = \u8A18\u5F97\u6211
|
login.remember = \u8A18\u5F97\u6211
|
||||||
login.logout = \u60A8\u5DF2\u7D93\u767B\u51FA.
|
login.logout = \u60A8\u5DF2\u7D93\u767B\u51FA\u3002
|
||||||
login.error = \u5E33\u865F\u6216\u662F\u5BC6\u78BC\u932F\u8AA4.
|
login.error = \u5E33\u865F\u6216\u662F\u5BC6\u78BC\u932F\u8AA4\u3002
|
||||||
login.insecure = {0} \u672A\u53D7\u4FDD\u8B77. \u8ACB\u5148\u4EE5\u4F7F\u7528\u8005\u53CA\u5BC6\u78BC "admin"\u767B\u5165, \u6216\u9EDE\u64CA <a href="login.view?user=admin&password=admin">\u9019\u88E1</a>. \u4E26\u4E14\u7ACB\u523B\u8B8A\u66F4\u60A8\u7684\u5BC6\u78BC.
|
login.insecure = {0} \u672A\u53D7\u4FDD\u8B77\u3002\u8ACB\u5148\u4EE5\u4F7F\u7528\u8005\u53CA\u5BC6\u78BC "admin"\u767B\u5165\uFF0C\u6216\u9EDE\u9078 <a href="login.view?user=admin&password=admin">\u9019\u88E1</a>\uFF0C\u4E26\u4E14\u7ACB\u523B\u8B8A\u66F4\u60A8\u7684\u5BC6\u78BC\u3002
|
||||||
|
login.recover = \u5FD8\u8A18\u5BC6\u78BC\uFF1F
|
||||||
|
|
||||||
|
# recover.jsp
|
||||||
|
recover.title = \u5FD8\u8A18\u5BC6\u78BC\uFF1F
|
||||||
|
recover.text = \u8981\u91CD\u8A2D\u5BC6\u78BC\uFF0C\u8ACB\u5728\u4E0B\u65B9\u8F38\u5165\u60A8\u7684<b>\u5E33\u865F</b>\u6216\u662F<b>Email\u4F4D\u5740</b>\u3002
|
||||||
|
recover.username = \u5E33\u865F\u6216Email\u4F4D\u5740
|
||||||
|
recover.send = \u91CD\u8A2D\u5BC6\u78BC\u4E26\u5BC4\u7D66\u6211
|
||||||
|
recover.success = \u60A8\u7684\u5BC6\u78BC\u5DF2\u91CD\u8A2D\u4E26\u5BC4\u5230\u4E86 {0} \u3002
|
||||||
|
recover.error.usernotfound = \u62B1\u6B49\uFF0C\u672A\u627E\u5230\u4F7F\u7528\u8005\u3002
|
||||||
|
recover.error.noemail = \u62B1\u6B49\uFF0C\u8A72\u4F7F\u7528\u8005\u672A\u8A3B\u518A\u4FE1\u7BB1\u3002
|
||||||
|
recover.error.sendfailed = Email\u5BC4\u9001\u5931\u6557\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002
|
||||||
|
recover.error.invalidcaptcha = \u62B1\u6B49\uFF0C\u8F38\u5165\u7684CAPTCHA\u6587\u5B57\u6709\u8AA4\uFF0C\u8ACB\u518D\u8A66\u4E00\u6B21\u3002
|
||||||
|
|
||||||
# accessDenied.jsp
|
# accessDenied.jsp
|
||||||
accessDenied.title = \u62D2\u7D55\u5B58\u53D6
|
accessDenied.title = \u62D2\u7D55\u5B58\u53D6
|
||||||
accessDenied.text = \u62B1\u6B49\uFF0C\u60A8\u7121\u6B0A\u57F7\u884C\u6240\u8ACB\u6C42\u7684\u64CD\u4F5C.
|
accessDenied.text = \u62B1\u6B49\uFF0C\u60A8\u7121\u6B0A\u57F7\u884C\u6240\u8ACB\u6C42\u7684\u64CD\u4F5C\u3002
|
||||||
|
|
||||||
|
# notFound.jsp
|
||||||
|
notFound.title = \u627E\u4E0D\u5230
|
||||||
|
notFound.text = <p>Sorry, we could not find what you were looking for.</p><p>Try reloading the web page. If that doesn't help, \
|
||||||
|
try scanning the media folders again.</p>
|
||||||
|
notFound.reload = \u91CD\u65B0\u6574\u7406\u9801\u9762
|
||||||
|
notFound.scan = Media folders settings
|
||||||
|
|
||||||
# top.jsp
|
# top.jsp
|
||||||
top.home = \u9996\u9801
|
top.home = \u9996\u9801
|
||||||
top.now_playing = \u64AD\u653E
|
top.now_playing = \u64AD\u653E
|
||||||
|
top.starred = Starred
|
||||||
top.settings = \u8A2D\u5B9A
|
top.settings = \u8A2D\u5B9A
|
||||||
top.status = \u72C0\u614B
|
top.status = \u72C0\u614B
|
||||||
top.podcast = \u64AD\u5BA2
|
top.podcast = \u64AD\u5BA2
|
||||||
@@ -46,32 +73,40 @@ top.more = \u5176\u4ED6
|
|||||||
top.help = \u95DC\u65BC
|
top.help = \u95DC\u65BC
|
||||||
top.search = \u641C\u5C0B
|
top.search = \u641C\u5C0B
|
||||||
top.upgrade = \u6709\u65B0\u7248\u672C\u63D0\u4F9B. \u4E0B\u8F09 {0} {1} \
|
top.upgrade = \u6709\u65B0\u7248\u672C\u63D0\u4F9B. \u4E0B\u8F09 {0} {1} \
|
||||||
<a href\="\#" onclick\="window.open(''http\://libresonic.org/'')">\u9019\u88E1</a>.
|
<a href\="\#" onclick\="window.open(''http\://libresonic.org/'')">\u9019\u88E1</a>\u3002
|
||||||
top.missing = \u627E\u4E0D\u5230\u97F3\u6A02\u593E\uFF0C\u8ACB\u91CD\u65B0\u8A2D\u5B9A.
|
top.missing = \u627E\u4E0D\u5230\u97F3\u6A02\u8CC7\u6599\u593E\uFF0C\u8ACB\u91CD\u65B0\u8A2D\u5B9A\u3002
|
||||||
top.logout =\u767B\u51FA{0}
|
top.logout =\u767B\u51FA{0}
|
||||||
|
top.getpremium = \u53D6\u5F97 Subsonic Premium
|
||||||
|
top.gotpremium = Subsonic Premium
|
||||||
|
top.trialdaysleft = \u5269\u4E0B {0} \u5929\u9AD4\u9A57\u6642\u9593
|
||||||
|
|
||||||
# left.jsp
|
# left.jsp
|
||||||
left.statistics = \u97F3\u6A02\u76D2\u6709 \
|
left.scanning = \u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u4E2D\u2026
|
||||||
{0} \u4F4D\u6B4C\u624B<br>\
|
left.statistics = {0} \u4F4D\u6B4C\u624B<br>\
|
||||||
{1} \u5F35\u5C08\u8F2F<br>\
|
{1} \u5F35\u5C08\u8F2F<br>\
|
||||||
{2} \u9996\u6B4C\u66F2<br>\
|
{2} \u9996\u6B4C\u66F2<br>\
|
||||||
{3} (\u7D04 {4} \u5C0F\u6642)
|
{3}<br>\
|
||||||
|
{4} \u5C0F\u6642
|
||||||
left.shortcut = \u6377\u5F91
|
left.shortcut = \u6377\u5F91
|
||||||
|
left.playlists = \u64AD\u653E\u6E05\u55AE
|
||||||
left.radio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F
|
left.radio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F
|
||||||
left.allfolders = \u5168\u90E8
|
left.allfolders = \u5168\u90E8
|
||||||
|
left.showallplaylists = \u986F\u793A\u5168\u90E8
|
||||||
|
left.createplaylist = \u5EFA\u7ACB\u65B0\u7684\u64AD\u653E\u6E05\u55AE
|
||||||
|
left.importplaylist = \u532F\u5165\u64AD\u653E\u6E05\u55AE
|
||||||
|
|
||||||
# playlist.jsp
|
# playQueue.jsp
|
||||||
playlist.stop = \u505C\u6B62
|
playlist.stop = \u505C\u6B62
|
||||||
playlist.start = \u64AD\u653E
|
playlist.start = \u64AD\u653E
|
||||||
playlist.confirmclear = \u78BA\u5B9A\u522A\u9664\u9EDE\u64AD\u6E05\u55AE?
|
playlist.confirmclear = \u78BA\u5B9A\u522A\u9664\u64AD\u653E\u6E05\u55AE?
|
||||||
playlist.clear = \u6E05\u9664
|
playlist.clear = \u6E05\u9664
|
||||||
playlist.shuffle = \u96A8\u8208\u64AD\u653E
|
playlist.shuffle = \u96A8\u8208\u64AD\u653E
|
||||||
playlist.repeat_on = \u91CD\u64AD
|
playlist.repeat_on = \u91CD\u64AD
|
||||||
playlist.repeat_off = \u4E0D\u91CD\u64AD
|
playlist.repeat_off = \u4E0D\u91CD\u64AD
|
||||||
playlist.undo = \u53D6\u6D88
|
playlist.undo = \u53D6\u6D88
|
||||||
playlist.settings = \u8A2D\u5B9A
|
playlist.settings = \u8A2D\u5B9A
|
||||||
playlist.more = \u5176\u4ED6...
|
playlist.more = \u5176\u4ED6\u2026
|
||||||
playlist.more.playlist = \u9EDE\u64AD\u6E05\u55AE
|
playlist.more.playlist = \u64AD\u653E\u6E05\u55AE
|
||||||
playlist.more.sortbytrack = \u97F3\u8ECC\u6392\u5E8F
|
playlist.more.sortbytrack = \u97F3\u8ECC\u6392\u5E8F
|
||||||
playlist.more.sortbyartist = \u6B4C\u624B\u6392\u5E8F
|
playlist.more.sortbyartist = \u6B4C\u624B\u6392\u5E8F
|
||||||
playlist.more.sortbyalbum = \u5C08\u8F2F\u6392\u5E8F
|
playlist.more.sortbyalbum = \u5C08\u8F2F\u6392\u5E8F
|
||||||
@@ -79,12 +114,41 @@ playlist.more.selection = \u9078\u6B4C
|
|||||||
playlist.more.selectall = \u5168\u9078
|
playlist.more.selectall = \u5168\u9078
|
||||||
playlist.more.selectnone = \u5168\u4E0D\u9078
|
playlist.more.selectnone = \u5168\u4E0D\u9078
|
||||||
playlist.getflash = \u53D6\u5F97Flash\u64A5\u653E\u5668
|
playlist.getflash = \u53D6\u5F97Flash\u64A5\u653E\u5668
|
||||||
|
playlist.saveplayqueue = \u5132\u5B58\u64AD\u653E\u4F47\u5217
|
||||||
|
playlist.loadplayqueue = \u8F09\u5165\u64AD\u653E\u4F47\u5217
|
||||||
playlist.save = \u5132\u5B58
|
playlist.save = \u5132\u5B58
|
||||||
playlist.append = \u52A0\u5165\u6E05\u55AE
|
playlist.append = \u52A0\u5165\u6E05\u55AE
|
||||||
playlist.remove = \u79FB\u9664
|
playlist.remove = \u79FB\u9664
|
||||||
playlist.up = \u4E0A
|
playlist.up = \u4E0A
|
||||||
playlist.down = \u4E0B
|
playlist.down = \u4E0B
|
||||||
playlist.empty = \u7A7A\u7684\u9EDE\u64AD\u6E05\u55AE
|
playlist.empty = \u7A7A\u7684\u64AD\u653E\u6E05\u55AE
|
||||||
|
playlist.toast.appendtoplaylist = \u64AD\u653E\u6E05\u55AE\u5DF2\u66F4\u65B0\u3002
|
||||||
|
playlist.toast.saveasplaylist = \u64AD\u653E\u6E05\u55AE\u5DF2\u5132\u5B58\u3002
|
||||||
|
playlist.toast.saveplayqueue = \u64AD\u653E\u4F47\u5217\u5DF2\u5132\u5B58\u3002
|
||||||
|
playlist.missing = \u907A\u5931
|
||||||
|
|
||||||
|
# playlist.jsp
|
||||||
|
playlist2.noplaylists = \u60A8\u9084\u672A\u5EFA\u7ACB\u4EFB\u4F55\u6E05\u55AE\u3002
|
||||||
|
playlist2.created = \u7531 {0} \u5EFA\u7ACB\u7684 {1}
|
||||||
|
playlist2.songs = \u6B4C\u66F2
|
||||||
|
playlist2.shared = \u5176\u4ED6\u4EBA\u4E5F\u53EF\u770B\u898B
|
||||||
|
playlist2.notshared = \u5176\u4ED6\u4EBA\u7121\u6CD5\u770B\u898B
|
||||||
|
playlist2.name = \u64AD\u653E\u6E05\u55AE\u540D\u7A31
|
||||||
|
playlist2.comment = \u64AD\u653E\u6E05\u55AE\u8A3B\u89E3
|
||||||
|
playlist2.public = \u4F7F\u6B64\u64AD\u653E\u6E05\u55AE\u53EF\u88AB\u5176\u4ED6\u4EBA\u4F7F\u7528\u3002
|
||||||
|
playlist2.confirmdelete = \u60A8\u78BA\u5B9A\u8981\u522A\u9664\u6B64\u64AD\u653E\u6E05\u55AE\u55CE\uFF1F
|
||||||
|
playlist2.empty = \u64AD\u653E\u6E05\u55AE\u70BA\u7A7A
|
||||||
|
playlist2.export = \u532F\u51FA
|
||||||
|
|
||||||
|
# importPlaylist.jsp
|
||||||
|
importPlaylist.title = Import playlist
|
||||||
|
importPlaylist.text = Select playlist to import (m3u, pls, xspf)
|
||||||
|
importPlaylist.success = Successfully imported playlist "{0}".
|
||||||
|
importPlaylist.error = Failed to import playlist. {0}
|
||||||
|
|
||||||
|
# videoPlayer.jsp
|
||||||
|
videoPlayer.getflash = Please install Flash Player
|
||||||
|
videoPlayer.getpremium = Get <b><a href='premiumSettings.view?' target='main'>Subsonic Premium</a></b> to play on Chromecast.
|
||||||
|
|
||||||
# status.jsp
|
# status.jsp
|
||||||
status.title = \u72C0\u614B
|
status.title = \u72C0\u614B
|
||||||
@@ -98,46 +162,67 @@ status.current = \u76EE\u524D\u64AD\u653E
|
|||||||
status.transmitted = \u50B3\u8F38
|
status.transmitted = \u50B3\u8F38
|
||||||
status.bitrate = Bitrate (Kbps)
|
status.bitrate = Bitrate (Kbps)
|
||||||
|
|
||||||
|
# starred.jsp
|
||||||
|
starred.title = My starred items
|
||||||
|
starred.empty = Click the star icons to mark your favorite artist, albums and songs.
|
||||||
|
|
||||||
# search.jsp
|
# search.jsp
|
||||||
search.title = \u641C\u5C0B
|
search.title = \u641C\u5C0B
|
||||||
|
search.query = \u6B4C\u624B\u3001\u5C08\u8F2F\u6216\u6B4C\u66F2\u6A19\u984C\u3002
|
||||||
search.search = \u641C\u5C0B
|
search.search = \u641C\u5C0B
|
||||||
search.index = \u6B63\u5728\u5EFA\u7ACB\u7D22\u5F15\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66!
|
search.index = \u6B63\u5728\u5EFA\u7ACB\u7D22\u5F15\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66\uFF01
|
||||||
search.hits.none = \u627E\u4E0D\u5230.
|
search.hits.none = \u627E\u4E0D\u5230\u3002
|
||||||
|
search.hits.more = \u66F4\u591A
|
||||||
|
search.hits.artists = \u6B4C\u624B
|
||||||
|
search.hits.albums = \u5C08\u8F2F
|
||||||
|
search.hits.songs = \u6B4C\u66F2
|
||||||
|
search.hits.videos = \u5F71\u50CF
|
||||||
|
|
||||||
# gettingStarted.jsp
|
# gettingStarted.jsp
|
||||||
gettingStarted.title = \u521D\u6B21\u4F7F\u7528
|
gettingStarted.title = \u521D\u6B21\u4F7F\u7528
|
||||||
gettingStarted.text = <p>\u6B61\u8FCE\u4F7F\u7528Libresonic!<br>\u8ACB\u4F9D\u7167\u4E0B\u9762\u7684\u6B65\u9A5F\u8A2D\u5B9A.<br> \
|
gettingStarted.text = <p>\u6B61\u8FCE\u4F7F\u7528Libresonic\uFF01<br>\u8ACB\u4F9D\u7167\u4E0B\u9762\u7684\u6B65\u9A5F\u8A2D\u5B9A\u3002<br> \
|
||||||
\u9EDE\u64CA\u5DE5\u5177\u5217\u4E0A\u7684"\u9996\u9801"\uFF0C\u5C31\u80FD\u96A8\u6642\u56DE\u4F86\u9019\u88E1\uFF01.</p> \
|
\u9EDE\u64CA\u5DE5\u5177\u5217\u4E0A\u7684"\u9996\u9801"\uFF0C\u5C31\u80FD\u96A8\u6642\u56DE\u4F86\u9019\u88E1\u3002</p> \
|
||||||
<p>\u9700\u8981\u66F4\u591A\u8A0A\u606F\u8ACB\u53C3\u8003<a href="http://libresonic.org/pages/getting-started.jsp" target="_blank"><b>\u5165\u9580\u6307\u5357</b></a></p>
|
<p>\u9700\u8981\u66F4\u591A\u8A0A\u606F\u8ACB\u53C3\u8003<a href="http://libresonic.org/pages/getting-started.jsp" target="_blank"><b>\u5165\u9580\u6307\u5357</b></a></p>
|
||||||
gettingStarted.step1.title = \u8B8A\u66F4\u7BA1\u7406\u54E1\u7684\u5BC6\u78BC.
|
gettingStarted.root = \u8B66\u544A\uFF01Libresonic\u7A0B\u5F0F\u6B63\u4EE5 root \u4F7F\u7528\u8005\u57F7\u884C\u3002\u8ACB\u8003\u616E \
|
||||||
|
<a href="http://libresonic.org/pages/installation.jsp" target="_blank">\u5225\u7684\u65B9\u5F0F</a>\u3002
|
||||||
|
gettingStarted.step1.title = \u8B8A\u66F4\u7BA1\u7406\u54E1\u7684\u5BC6\u78BC\u3002
|
||||||
gettingStarted.step1.text = \u8ACB\u4FEE\u6539\u9810\u8A2D\u7684\u7BA1\u7406\u54E1\u5BC6\u78BC\uFF0C\u4EE5\u78BA\u4FDD\u4F3A\u670D\u5668\u7684\u5B89\u5168\u3002\
|
gettingStarted.step1.text = \u8ACB\u4FEE\u6539\u9810\u8A2D\u7684\u7BA1\u7406\u54E1\u5BC6\u78BC\uFF0C\u4EE5\u78BA\u4FDD\u4F3A\u670D\u5668\u7684\u5B89\u5168\u3002\
|
||||||
\u4E5F\u53EF\u4EE5\u5EFA\u7ACB\u65B0\u7684\u4F7F\u7528\u8005\u4E26\u7D66\u4E88\u4E0D\u540C\u7684\u6B0A\u9650
|
\u4E5F\u53EF\u4EE5\u5EFA\u7ACB\u65B0\u7684\u4F7F\u7528\u8005\u4E26\u7D66\u4E88\u4E0D\u540C\u7684\u6B0A\u9650\u3002
|
||||||
gettingStarted.step2.title = \u8A2D\u5B9A\u97F3\u6A02\u593E.
|
gettingStarted.step2.title = \u8A2D\u5B9A\u97F3\u6A02\u8CC7\u6599\u593E\u3002
|
||||||
gettingStarted.step2.text = \u8A2D\u5B9A\u60A8\u97F3\u6A02\u6240\u653E\u7F6E\u7684\u8CC7\u6599\u593E\u3002
|
gettingStarted.step2.text = \u8A2D\u5B9A\u60A8\u97F3\u6A02\u6240\u653E\u7F6E\u7684\u8CC7\u6599\u593E\u3002
|
||||||
gettingStarted.step3.title = \u914D\u7F6E\u7DB2\u8DEF\u8A2D\u5B9A.
|
gettingStarted.step3.title = \u914D\u7F6E\u7DB2\u8DEF\u8A2D\u5B9A\u3002
|
||||||
gettingStarted.step3.text = \u5982\u679C\u60A8\u8981\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u6216\u662F\u8207\u60A8\u7684\u670B\u53CB\u3001\u5BB6\u4EBA\u5206\u4EAB\u3002\
|
gettingStarted.step3.text = \u5982\u679C\u60A8\u8981\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u6216\u662F\u8207\u60A8\u7684\u670B\u53CB\u3001\u5BB6\u4EBA\u5206\u4EAB\u3002\
|
||||||
\u4E26\u53D6\u5F97\u60A8\u7684\u5C08\u5C6C\u7DB2\u5740\u50CF\u662F<em>yourname</em>.libresonic.org.
|
\u4E26\u53D6\u5F97\u60A8\u7684\u5C08\u5C6C\u7DB2\u5740\u50CF\u662F<em>yourname</em>.libresonic.org\u3002
|
||||||
gettingStarted.hide = \u4E0B\u6B21\u4E0D\u986F\u793A\u672C\u9801\uFF01
|
gettingStarted.hide = \u4E0B\u6B21\u4E0D\u986F\u793A\u672C\u9801\uFF01
|
||||||
gettingStarted.hidealert = \u5982\u679C\u4E0B\u6B21\u9084\u9700\u8981\u986F\u793A\u63D0\u793A,\u8ACB\u5F9E \u8A2D\u5B9A->\u4E00\u822C \u4E2D\u52FE\u9078.
|
gettingStarted.hidealert = \u5982\u679C\u4E0B\u6B21\u9084\u9700\u8981\u986F\u793A\u63D0\u793A\uFF0C\u8ACB\u5F9E \u8A2D\u5B9A\u2192\u4E00\u822C \u4E2D\u52FE\u9078\u3002
|
||||||
|
|
||||||
# home.jsp
|
# home.jsp
|
||||||
home.random.title = \u96A8\u8208\u64AD\u653E
|
home.random.title = \u96A8\u8208\u64AD\u653E
|
||||||
|
home.alphabetical.title = \u5168\u90E8
|
||||||
home.newest.title = \u6700\u65B0\u97F3\u6A02
|
home.newest.title = \u6700\u65B0\u97F3\u6A02
|
||||||
|
home.starred.title = \u661F\u865F\u6A19\u8A18
|
||||||
home.highest.title = \u559C\u597D\u7A0B\u5EA6
|
home.highest.title = \u559C\u597D\u7A0B\u5EA6
|
||||||
home.frequent.title = \u9EDE\u64AD\u7387
|
home.frequent.title = \u9EDE\u64AD\u7387
|
||||||
home.recent.title = \u6700\u8FD1\u64AD\u653E
|
home.recent.title = \u6700\u8FD1\u64AD\u653E
|
||||||
|
home.decade.title = \u7531\u5E74\u4EFD
|
||||||
|
home.genre.title = \u7531\u66F2\u98A8
|
||||||
home.users.title = \u4F7F\u7528\u8005
|
home.users.title = \u4F7F\u7528\u8005
|
||||||
home.random.text = \u96A8\u8208\u9078\u64AD\u5C08\u8F2F
|
home.random.text = \u96A8\u8208\u9078\u64AD\u5C08\u8F2F
|
||||||
|
home.alphabetical.text = \u6240\u6709\u5C08\u8F2F
|
||||||
home.newest.text = \u6700\u65B0\u5C08\u8F2F
|
home.newest.text = \u6700\u65B0\u5C08\u8F2F
|
||||||
|
home.starred.text = \u60A8\u6A19\u8A18\u661F\u865F\u7684\u5C08\u8F2F
|
||||||
home.highest.text = \u8A55\u50F9\u9AD8\u7684\u5C08\u8F2F
|
home.highest.text = \u8A55\u50F9\u9AD8\u7684\u5C08\u8F2F
|
||||||
home.frequent.text = \u6700\u591A\u9EDE\u64AD\u5C08\u8F2F
|
home.frequent.text = \u6700\u591A\u9EDE\u64AD\u5C08\u8F2F
|
||||||
home.recent.text =\u6700\u8FD1\u64AD\u653E\u5C08\u8F2F
|
home.recent.text =\u6700\u8FD1\u64AD\u653E\u5C08\u8F2F
|
||||||
|
home.decade.text = \u5E74\u4EFD
|
||||||
|
home.genre.text = \u66F2\u98A8
|
||||||
home.users.text = \u4F7F\u7528\u8005\u7D71\u8A08
|
home.users.text = \u4F7F\u7528\u8005\u7D71\u8A08
|
||||||
home.scan = \u97F3\u6A02\u593E\u5DF2\u7D93\u6383\u63CF. \u6240\u6709\u529F\u80FD\u5C1A\u672A\u958B\u653E.
|
home.scan = \u6B63\u5728\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u3002\u90E8\u4EFD\u529F\u80FD\u5C07\u7121\u6CD5\u4F7F\u7528\u3002
|
||||||
home.albums = \u5C08\u8F2F {0} - {1}
|
home.albums = \u5C08\u8F2F {0} - {1}
|
||||||
home.playcount = \u64AD\u653E\u4E86 {0} \u9996\u6B4C
|
home.playcount = \u64AD\u653E\u4E86 {0} \u9996\u6B4C
|
||||||
home.lastplayed = \u64AD\u653E {0}
|
home.lastplayed = \u64AD\u653E {0}
|
||||||
home.created = \u5EFA\u7ACB {0}
|
home.created = \u5EFA\u7ACB {0}
|
||||||
|
home.shuffle = \u96A8\u6A5F\u64AD\u653E
|
||||||
home.chart.total = \u7E3D\u8A08 (MB)
|
home.chart.total = \u7E3D\u8A08 (MB)
|
||||||
home.chart.stream = \u4E32\u6D41 (MB)
|
home.chart.stream = \u4E32\u6D41 (MB)
|
||||||
home.chart.download = \u5DF2\u4E0B\u8F09(MB)
|
home.chart.download = \u5DF2\u4E0B\u8F09(MB)
|
||||||
@@ -148,70 +233,79 @@ more.title = \u5176\u4ED6
|
|||||||
more.random.title = \u96A8\u8208\u64AD\u653E
|
more.random.title = \u96A8\u8208\u64AD\u653E
|
||||||
more.random.text = \u5EFA\u7ACB\u96A8\u8208\u6E05\u55AE
|
more.random.text = \u5EFA\u7ACB\u96A8\u8208\u6E05\u55AE
|
||||||
more.random.songs = {0} \u9996
|
more.random.songs = {0} \u9996
|
||||||
more.random.auto = \u7576\u9EDE\u64AD\u6E05\u55AE\u64AD\u653E\u5B8C\u7562\u6642\u7E7C\u7E8C\u64AD\u653E\u66F4\u591A\u7684\u96A8\u8208\u6B4C\u66F2 .
|
more.random.auto = \u7576\u64AD\u653E\u6E05\u55AE\u64AD\u653E\u5B8C\u7562\u6642\u7E7C\u7E8C\u96A8\u6A5F\u64AD\u653E\u6B4C\u66F2\u3002
|
||||||
more.random.ok = \u78BA\u5B9A
|
more.random.ok = \u78BA\u5B9A
|
||||||
more.random.genre = \u66F2\u98A8
|
more.random.genre = \u66F2\u98A8
|
||||||
more.random.anygenre = \u4EFB\u610F
|
more.random.anygenre = \u4EFB\u610F
|
||||||
more.random.year = \u5E74\u4EFD
|
more.random.year = \u5E74\u4EFD
|
||||||
more.random.anyyear = \u4EFB\u610F
|
more.random.anyyear = \u4EFB\u610F
|
||||||
more.random.folder = \u97F3\u6A02\u593E
|
more.random.folder = \u97F3\u6A02\u8CC7\u6599\u593E
|
||||||
more.random.anyfolder = \u4EFB\u610F
|
more.random.anyfolder = \u4EFB\u610F
|
||||||
more.apps.title = Libresonic Apps
|
more.apps.title = Libresonic Apps
|
||||||
more.apps.text = <p>\u652F\u63F4 <b>iPhone</b>, \
|
more.apps.text = <p>\u652F\u63F4 <b>iPhone</b>, \
|
||||||
<b>Android</b> \u548C <b>AIR</b>\u7684<a href="http://libresonic.org/pages/apps.jsp" target="_blank">Libresonic apps</a>.</p>
|
<b>Android</b> \u548C <b>AIR</b>\u7684<a href="http://libresonic.org/pages/apps.jsp" target="_blank">Libresonic apps</a>\u3002</p>
|
||||||
|
more.jamstash.title = JamStash
|
||||||
|
more.jamstash.text = <p>Jamstash \u662F Libresonic \u7684 HTML5 \u64AD\u653E\u5668\u3002<a href="{0}" target="_blank">\u9EDE\u9078\u9019\u88E1</a> \u4F86\u555F\u52D5\u3002 \
|
||||||
|
\u4E5F\u53EF\u4EE5\u5728 <a href="https://chrome.google.com/webstore/detail/jamstash/jccdpflnecheidefpofmlblgebobbloc" target="_blank">Chrome App</a> \u5167\u53D6\u5F97\u3002</p>
|
||||||
|
more.status.title = \u7DB2\u8DEF\u72C0\u614B
|
||||||
|
more.status.text = <a href="status.view">\u76E3\u63A7</a>\u6240\u6709\u7DB2\u8DEF\u4E32\u6D41\u7684\u5373\u6642\u72C0\u614B\u3002
|
||||||
more.mobile.title = \u79FB\u52D5\u8A2D\u5099
|
more.mobile.title = \u79FB\u52D5\u8A2D\u5099
|
||||||
more.mobile.text = <p>\u53EF\u4EE5\u7531WAP\u96FB\u8A71\u6216PDA\u4F7F\u7528 {0} .<br> \
|
more.mobile.text = <p>\u53EF\u4EE5\u7531 WAP \u96FB\u8A71\u6216 PDA \u4F7F\u7528 {0} \u3002<br> \
|
||||||
\u7D93\u7531\u624B\u6A5F\u8F38\u5165\u9019\u6A23\u7684\u7DB2\u5740 <b>http://yourhostname/wap</b></p> \
|
\u7D93\u7531\u624B\u6A5F\u8F38\u5165\u9019\u6A23\u7684\u7DB2\u5740 <b>http://yourhostname/wap</b></p> \
|
||||||
<p>\u7576\u7136\u60A8\u624B\u6A5F\u5FC5\u9808\u8981\u6709\u4E0A\u7DB2\u529F\u80FD!.</p>
|
<p>\u9019\u9700\u8981\u60A8\u7684\u4F3A\u670D\u5668\u53EF\u4EE5\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u5B58\u53D6\u3002</p>
|
||||||
more.podcast.title = \u64AD\u5BA2
|
more.podcast.title = \u64AD\u5BA2
|
||||||
more.podcast.text = <p>\u5132\u5B58\u9EDE\u64AD\u6E05\u55AE\u7576\u6210\u64AD\u5BA2.<br>\
|
more.podcast.text = <p>\u5132\u5B58\u64AD\u653E\u6E05\u55AE\u7576\u6210\u64AD\u5BA2\u3002<br>\
|
||||||
\u7D93\u7531\u9019\u500B\u7DB2\u5740\u53EF\u4EE5\u6536\u807D: <b>http://yourhostname/podcast</b>, \
|
\u7D93\u7531\u9019\u500B\u7DB2\u5740\u53EF\u4EE5\u6536\u807D\uFF1A <b>http://yourhostname/podcast</b>\uFF0C\
|
||||||
\u6216\u662F <b><a href="podcast.view?suffix=.rss">\u9EDE\u6211</a>.</b></p>
|
\u6216\u662F <b><a href="podcast.view?suffix=.rss">\u9EDE\u6211</a>\u3002</b></p>
|
||||||
more.upload.title = \u4E0A\u50B3\u6A94\u6848
|
more.upload.title = \u4E0A\u50B3\u6A94\u6848
|
||||||
more.upload.source = \u9078\u64C7\u6A94\u6848
|
more.upload.source = \u9078\u64C7\u6A94\u6848
|
||||||
more.upload.target = \u4E0A\u50B3\u5230
|
more.upload.target = \u4E0A\u50B3\u5230
|
||||||
more.upload.browse = \u9078\u64C7
|
more.upload.browse = \u9078\u64C7
|
||||||
more.upload.ok = \u4E0A\u50B3
|
more.upload.ok = \u4E0A\u50B3
|
||||||
more.upload.unzip = \u81EA\u52D5\u89E3\u58D3\u7E2Ezip\u6A94.
|
more.upload.unzip = \u81EA\u52D5\u89E3\u58D3\u7E2Ezip\u6A94\u3002
|
||||||
more.upload.progress = % \u5B8C\u6210. \u8ACB\u7A0D\u5019...
|
more.upload.progress = % \u5B8C\u6210\u3002\u8ACB\u7A0D\u5019\u2026
|
||||||
|
|
||||||
# upload.jsp
|
# upload.jsp
|
||||||
upload.title = \u6A94\u6848\u4E0A\u50B3\u4E2D......
|
upload.title = \u6A94\u6848\u4E0A\u50B3\u4E2D
|
||||||
upload.success = \u4E0A\u50B3\u6210\u529F <b>{0}</b>
|
upload.success = \u4E0A\u50B3\u6210\u529F <b>{0}</b>
|
||||||
upload.empty = \u6C92\u6709\u4E0A\u50B3\u7684\u6A94\u6848\u5594.
|
upload.empty = \u6C92\u6709\u53EF\u4E0A\u50B3\u7684\u6A94\u6848\u3002
|
||||||
upload.failed = \u6A94\u6848\u4E0A\u50B3\u5931\u6557\u56E0\u70BA:<br><b>"{0}"</b>
|
upload.failed = \u6A94\u6848\u4E0A\u50B3\u6642\u767C\u751F\u932F\u8AA4\uFF1A<br><b>"{0}"</b>
|
||||||
upload.unzipped = \u89E3\u58D3\u7E2E {0}
|
upload.unzipped = \u89E3\u58D3\u7E2E {0}
|
||||||
|
|
||||||
# help.jsp
|
# help.jsp
|
||||||
help.title = \u95DC\u65BC {0}
|
help.title = \u95DC\u65BC {0}
|
||||||
help.upgrade = <b>\u6CE8\u610F!</b> \u5DF2\u7D93\u6709\u65B0\u7684\u7248\u672C\u4E86\uFF0C\u4E0B\u8F09\u65B0\u7248 {0} {1} \
|
help.upgrade = <b>\u6CE8\u610F\uFF01</b> \u6709\u65B0\u7248\u672C\u53EF\u7528\u3002\u4E0B\u8F09 {0} {1} \
|
||||||
<a href="#" onclick="window.open(''http://libresonic.org/'')">\u5728\u9019</a>.
|
<a href="#" onclick="window.open(''http://libresonic.org/'')">\u8ACB\u9EDE\u9078\u9019\u88E1</a>\u3002
|
||||||
|
help.premium.title = \u6388\u6B0A
|
||||||
|
help.premium.expires = (\u904E\u671F {0})
|
||||||
|
help.premium.upgrade = \u5347\u7D1A\u5230 <a href="premiumSettings.view">Subsonic Premium</a> \u4F86\u4F7F\u7528 <a href="premiumSettings.view">\u66F4\u591A\u529F\u80FD</a>\uFF01
|
||||||
|
help.premium.expired = (\u6388\u6B0A\u904E\u671F\u65BC {0})
|
||||||
help.version.title = \u7248\u672C
|
help.version.title = \u7248\u672C
|
||||||
help.builddate.title = \u65E5\u671F
|
help.builddate.title = \u65E5\u671F
|
||||||
help.server.title = \u4F3A\u670D\u5668
|
help.server.title = \u4F3A\u670D\u5668
|
||||||
help.license.title = \u6388\u6B0A
|
help.license.title = \u6388\u6B0A
|
||||||
help.license.text = {0} \u662F\u4EE5 <a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GPL</a> \u578B\u5F0F\u767C\u4F48\u6388\u6B0A\u7684\u81EA\u7531\u8EDF\u9AD4. <br>\
|
help.license.text = {0} \u662F\u4EE5 <a href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GPL</a> \u578B\u5F0F\u767C\u4F48\u6388\u6B0A\u7684\u81EA\u7531\u8EDF\u9AD4\u3002<br>{0} \u4F7F\u7528 <a href="http://libresonic.org/pages/libraries.jsp" target="_blank">\u7B2C\u4E09\u65B9\u6388\u6B0A</a>\u3002
|
||||||
{0} \u4F7F\u7528 <a href="http://libresonic.org/pages/libraries.jsp" target="_blank">\u7B2C\u4E09\u65B9\u6388\u6B0A</a>.
|
|
||||||
help.homepage.title = \u9996\u9801
|
help.homepage.title = \u9996\u9801
|
||||||
help.forum.title = \u8AD6\u58C7
|
help.forum.title = \u8AD6\u58C7
|
||||||
help.shop.title = \u5546\u54C1
|
help.shop.title = \u5546\u54C1
|
||||||
help.contact.title = \u806F\u7E6B
|
help.contact.title = \u806F\u7E6B
|
||||||
help.contact.text = {0} \u7531 Sindre Mehus \u958B\u767C\u53CA\u7DAD\u8B77 \
|
help.contact.text = {0} \u7531 Sindre Mehus \u958B\u767C\u53CA\u7DAD\u8B77(<a href="mailto:sindre@activeobjects.no">sindre@activeobjects.no</a>)\u3002\u5982\u679C\u60A8\u6709\u4EFB\u4F55\u7591\u554F\uFF0C\u610F\u898B\u6216\u5EFA\u8B70\u6539\u5584\uFF0C\u8ACB\u5230<a href="https://www.reddit.com/r/libresonic" target="_blank">Libresonic\u8AD6\u58C7</a>\u3002
|
||||||
(<a href="mailto:sindre@activeobjects.no">sindre@activeobjects.no</a>). \
|
|
||||||
\u5982\u679C\u60A8\u6709\u4EFB\u4F55\u7591\u554F\uFF0C\u610F\u898B\u6216\u5EFA\u8B70\u6539\u5584\uFF0C\u8ACB\u5230 \
|
|
||||||
<a href="https://www.reddit.com/r/libresonic" target="_blank">Libresonic\u8AD6\u58C7</a>.
|
|
||||||
help.log = \u8A18\u9304
|
help.log = \u8A18\u9304
|
||||||
help.logfile = \u5B8C\u6574\u7684\u7D00\u9304\u5B58\u653E\u5728 {0}.
|
help.logfile = \u5B8C\u6574\u7684\u7D00\u9304\u5B58\u653E\u5728 {0}\u3002
|
||||||
|
|
||||||
# settingsHeader.jsp
|
# settingsHeader.jsp
|
||||||
settingsheader.title = \u8A2D\u5B9A
|
settingsheader.title = \u8A2D\u5B9A
|
||||||
settingsheader.general = \u4E00\u822C
|
settingsheader.general = \u4E00\u822C
|
||||||
settingsheader.advanced = \u9032\u968E
|
settingsheader.advanced = \u9032\u968E
|
||||||
settingsheader.personal = \u500B\u4EBA\u5316
|
settingsheader.personal = \u500B\u4EBA\u5316
|
||||||
settingsheader.musicFolder = \u97F3\u6A02\u593E
|
settingsheader.musicFolder = \u97F3\u6A02\u8CC7\u6599\u593E
|
||||||
settingsheader.internetRadio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F
|
settingsheader.internetRadio = \u7DDA\u4E0A\u96FB\u8996/\u6536\u97F3\u6A5F
|
||||||
settingsheader.podcast = \u64AD\u5BA2
|
settingsheader.podcast = \u64AD\u5BA2
|
||||||
settingsheader.player = \u64AD\u653E\u5668
|
settingsheader.player = \u64AD\u653E\u5668
|
||||||
|
settingsheader.dlna = DLNA/UPnP
|
||||||
|
settingsheader.sonos = Sonos
|
||||||
|
settingsheader.premium = Subsonic Premium
|
||||||
|
settingsheader.share = \u5206\u4EAB\u5A92\u9AD4
|
||||||
settingsheader.network = \u7DB2\u8DEF
|
settingsheader.network = \u7DB2\u8DEF
|
||||||
settingsheader.transcoding = \u8F49\u6A94
|
settingsheader.transcoding = \u8F49\u6A94
|
||||||
settingsheader.user = \u4F7F\u7528\u8005
|
settingsheader.user = \u4F7F\u7528\u8005
|
||||||
@@ -220,57 +314,71 @@ settingsheader.coverArt = \u5C08\u8F2F\u5C01\u9762
|
|||||||
settingsheader.password = \u5BC6\u78BC
|
settingsheader.password = \u5BC6\u78BC
|
||||||
|
|
||||||
# generalSettings.jsp
|
# generalSettings.jsp
|
||||||
generalsettings.playlistfolder = \u9EDE\u64AD\u6E05\u55AE\u8CC7\u6599\u593E
|
generalsettings.playlistfolder = \u64AD\u653E\u6E05\u55AE\u8CC7\u6599\u593E
|
||||||
generalsettings.musicmask = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D:
|
generalsettings.musicmask = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D:
|
||||||
generalsettings.videomask = \u8996\u8A0A\u7684\u9644\u5C6C\u6A94\u540D:
|
generalsettings.videomask = \u8996\u8A0A\u7684\u9644\u5C6C\u6A94\u540D:
|
||||||
generalsettings.coverartmask = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D
|
generalsettings.coverartmask = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D
|
||||||
generalsettings.index = \u7D22\u5F15
|
generalsettings.index = \u7D22\u5F15
|
||||||
generalsettings.ignoredarticles = \u5FFD\u7565\u7684\u6B4C\u624B\u540D\u7A31
|
generalsettings.ignoredarticles = \u5FFD\u7565\u7684\u6B4C\u624B\u540D\u7A31
|
||||||
generalsettings.shortcuts = \u6377\u5F91
|
generalsettings.shortcuts = \u6377\u5F91
|
||||||
|
generalsettings.sortalbumsbyyear = \u7531\u5E74\u4EFD\u6392\u5E8F\u5C08\u8F2F
|
||||||
generalsettings.showgettingstarted = \u5728\u9996\u9801\u986F\u793A "\u521D\u6B21\u4F7F\u7528"
|
generalsettings.showgettingstarted = \u5728\u9996\u9801\u986F\u793A "\u521D\u6B21\u4F7F\u7528"
|
||||||
generalsettings.welcometitle = \u6B61\u8FCE\u6A19\u984C
|
generalsettings.welcometitle = \u6B61\u8FCE\u6A19\u984C
|
||||||
generalsettings.welcomesubtitle = \u6B61\u8FCE\u6B21\u6A19\u984C
|
generalsettings.welcomesubtitle = \u6B61\u8FCE\u6B21\u6A19\u984C
|
||||||
generalsettings.welcomemessage = \u6B61\u8FCE\u8A0A\u606F
|
generalsettings.welcomemessage = \u6B61\u8FCE\u8A0A\u606F
|
||||||
generalsettings.loginmessage = \u767B\u5165\u8A0A\u606F
|
generalsettings.loginmessage = \u767B\u5165\u8A0A\u606F
|
||||||
generalsettings.language = Default language
|
generalsettings.language = \u9810\u8A2D\u8A9E\u8A00
|
||||||
generalsettings.theme = \u9810\u8A2D\u4F48\u666F\u4E3B\u984C
|
generalsettings.theme = \u9810\u8A2D\u4F48\u666F\u4E3B\u984C
|
||||||
|
|
||||||
# advancedSettings.jsp
|
# advancedSettings.jsp
|
||||||
advancedsettings.downsamplecommand = \u964D\u983B\u6307\u4EE4
|
advancedsettings.downsamplecommand = \u964D\u983B\u6307\u4EE4
|
||||||
advancedsettings.coverartlimit = \u5C01\u9762\u9650\u5236<br><div class="detail">(0 = \u4E0D\u9650)</div>
|
advancedsettings.hlscommand = HTTP \u7DDA\u4E0A\u4E32\u6D41\u6307\u4EE4
|
||||||
advancedsettings.downloadlimit = \u4E0B\u8F09\u9650\u5236 (Kbps)<br><div class="detail">(0 = \u4E0D\u9650)</div>
|
advancedsettings.downloadlimit = \u4E0B\u8F09\u9650\u5236 (Kbps)<br><div class="detail">(0 = \u4E0D\u9650)</div>
|
||||||
advancedsettings.uploadlimit = \u4E0A\u50B3\u9650\u5236 (Kbps)<br><div class="detail">(0 = \u4E0D\u9650)</div>
|
advancedsettings.uploadlimit = \u4E0A\u50B3\u9650\u5236 (Kbps)<br><div class="detail">(0 = \u4E0D\u9650)</div>
|
||||||
advancedsettings.streamport = \u975ESSL \u4E32\u6D41Port<br><div class="detail">(0 = \u53D6\u6D88)</div>
|
advancedsettings.streamport = \u975E SSL \u4E32\u6D41 Port <br><div class="detail">(0 = \u53D6\u6D88)</div>
|
||||||
advancedsettings.ldapenabled = \u555F\u52D5LDAP\u9A57\u8B49
|
advancedsettings.ldapenabled = \u555F\u52D5 LDAP \u9A57\u8B49
|
||||||
advancedsettings.ldapurl = LDAP\u7DB2\u5740
|
advancedsettings.ldapurl = LDAP \u7DB2\u5740
|
||||||
advancedsettings.ldapsearchfilter = LDAP\u641C\u5C0B\u904E\u6FFE
|
advancedsettings.ldapsearchfilter = LDAP \u641C\u5C0B\u904E\u6FFE
|
||||||
advancedsettings.ldapmanagerdn = LDAP \u7BA1\u7406\u8005DN<br><div class="detail">(\u53EF\u9078\u64C7)</div>
|
advancedsettings.ldapmanagerdn = LDAP \u7BA1\u7406\u8005 DN <br><div class="detail">(\u53EF\u9078\u64C7)</div>
|
||||||
advancedsettings.ldapmanagerpassword = \u5BC6\u78BC
|
advancedsettings.ldapmanagerpassword = \u5BC6\u78BC
|
||||||
advancedsettings.ldapautoshadowing = \u81EA\u52D5\u5728{0}\u5EFA\u7ACB\u4F7F\u7528\u8005
|
advancedsettings.ldapautoshadowing = \u81EA\u52D5\u5728{0}\u5EFA\u7ACB\u4F7F\u7528\u8005
|
||||||
|
advancedsettings.smtpPort = SMTP \u9023\u63A5\u57E0
|
||||||
|
advancedsettings.smtpServer = SMTP \u4F3A\u670D\u5668
|
||||||
|
advancedsettings.smtpEncryption = SMTP \u52A0\u5BC6
|
||||||
|
advancedsettings.smtpUser = SMTP \u5E33\u865F
|
||||||
|
advancedsettings.smtpPassword = \u5BC6\u78BC
|
||||||
|
advancedsettings.smtpEncryption.none = \u7121
|
||||||
|
advancedsettings.smtpEncryption.starttls = STARTTLS
|
||||||
|
advancedsettings.smtpEncryption.ssl = SSL/TLS
|
||||||
|
advancedsettings.smtpFrom = \u5BC4\u4EF6\u8005
|
||||||
|
|
||||||
# personalSettings.jsp
|
# personalSettings.jsp
|
||||||
personalsettings.title = {0}\u7684\u500B\u4EBA\u5316\u8A2D\u5B9A
|
personalsettings.title = {0}\u7684\u500B\u4EBA\u5316\u8A2D\u5B9A
|
||||||
personalsettings.language = Language
|
personalsettings.language = \u8A9E\u8A00
|
||||||
personalsettings.theme = \u4F48\u666F\u4E3B\u984C
|
personalsettings.theme = \u4F48\u666F\u4E3B\u984C
|
||||||
|
personalsettings.albumlist = \u9810\u8A2D\u5C08\u8F2F\u6392\u5E8F\u65B9\u5F0F
|
||||||
personalsettings.display = \u986F\u793A
|
personalsettings.display = \u986F\u793A
|
||||||
personalsettings.browse = \u700F\u89BD
|
personalsettings.browse = \u700F\u89BD
|
||||||
personalsettings.playlist = \u9EDE\u64AD\u6E05\u55AE
|
personalsettings.playlist = \u64AD\u653E\u6E05\u55AE
|
||||||
personalsettings.tracknumber = \u97F3\u8ECC #
|
personalsettings.tracknumber = \u97F3\u8ECC #
|
||||||
personalsettings.artist = \u6B4C\u624B
|
personalsettings.artist = \u6B4C\u624B
|
||||||
personalsettings.album = \u5C08\u8F2F
|
personalsettings.album = \u5C08\u8F2F
|
||||||
personalsettings.genre = \u66F2\u98A8\u578B\u614B
|
personalsettings.genre = \u66F2\u98A8
|
||||||
personalsettings.year = \u767C\u884C
|
personalsettings.year = \u767C\u884C
|
||||||
personalsettings.bitrate = Bit rate
|
personalsettings.bitrate = Bit rate
|
||||||
personalsettings.duration = \u6642\u6548
|
personalsettings.duration = \u6642\u6548
|
||||||
personalsettings.format = \u683C\u5F0F
|
personalsettings.format = \u683C\u5F0F
|
||||||
personalsettings.filesize = \u6587\u4EF6\u5927\u5C0F
|
personalsettings.filesize = \u6587\u4EF6\u5927\u5C0F
|
||||||
personalsettings.captioncutoff = Caption cutoff
|
|
||||||
personalsettings.partymode = \u5BB4\u6703\u6A21\u5F0F
|
personalsettings.partymode = \u5BB4\u6703\u6A21\u5F0F
|
||||||
|
personalsettings.queuefollowingsongs = Queue following songs on play
|
||||||
personalsettings.shownowplaying = \u5176\u4ED6\u4EBA\u5728\u807D\u4EC0\u9EBC
|
personalsettings.shownowplaying = \u5176\u4ED6\u4EBA\u5728\u807D\u4EC0\u9EBC
|
||||||
personalsettings.nowplayingallowed = \u8B93\u5225\u4EBA\u770B\u6211\u5728\u807D\u4EC0\u9EBC
|
personalsettings.nowplayingallowed = \u8B93\u5225\u4EBA\u770B\u6211\u5728\u807D\u4EC0\u9EBC
|
||||||
personalsettings.showchat = \u986F\u793A\u4EA4\u8AC7\u8A0A\u606F
|
personalsettings.showchat = \u986F\u793A\u4EA4\u8AC7\u8A0A\u606F
|
||||||
|
personalsettings.showartistinfo = \u986F\u793A\u6B4C\u624B\u8CC7\u8A0A
|
||||||
|
personalsettings.autohideplayqueue = \u81EA\u52D5\u96B1\u85CF\u64AD\u653E\u4F47\u5217
|
||||||
personalsettings.finalversionnotification = \u63D0\u793A\u65B0\u7248\u672C
|
personalsettings.finalversionnotification = \u63D0\u793A\u65B0\u7248\u672C
|
||||||
personalsettings.betaversionnotification = \u63D0\u793A\u65B0\u7684\u6E2C\u8A66\u7248
|
personalsettings.betaversionnotification = \u63D0\u793A\u65B0\u7684\u6E2C\u8A66\u7248
|
||||||
|
personalsettings.songnotification = \u958B\u59CB\u64AD\u653E\u65B0\u6B4C\u6642\u63D0\u9192\u6211 (\u4E0D\u662F\u6240\u6709\u700F\u89BD\u5668\u90FD\u652F\u63F4)
|
||||||
personalsettings.lastfmenabled = \u767B\u9304\u6211\u5728 <a href="http://last.fm/" target="_blank">Last.fm</a>\u7684\u5E33\u865F
|
personalsettings.lastfmenabled = \u767B\u9304\u6211\u5728 <a href="http://last.fm/" target="_blank">Last.fm</a>\u7684\u5E33\u865F
|
||||||
personalsettings.lastfmusername = Last.fm \u5E33\u865F
|
personalsettings.lastfmusername = Last.fm \u5E33\u865F
|
||||||
personalsettings.lastfmpassword = Last.fm \u5BC6\u78BC
|
personalsettings.lastfmpassword = Last.fm \u5BC6\u78BC
|
||||||
@@ -286,28 +394,51 @@ personalsettings.avatar.courtesy = Icons courtesy of <a href="http://www.aftergl
|
|||||||
|
|
||||||
# avatarUploadResult.jsp
|
# avatarUploadResult.jsp
|
||||||
avataruploadresult.title = \u8B8A\u66F4\u500B\u4EBA\u5716\u793A
|
avataruploadresult.title = \u8B8A\u66F4\u500B\u4EBA\u5716\u793A
|
||||||
avataruploadresult.success = \u6210\u529F\u4E0A\u50B3\u500B\u4EBA\u5716\u793A "{0}".
|
avataruploadresult.success = \u6210\u529F\u4E0A\u50B3\u500B\u4EBA\u5716\u793A "{0}"\u3002
|
||||||
avataruploadresult.failure = \u7121\u6CD5\u4E0A\u50B3\u500B\u4EBA\u5716\u793A. \u8ACB\u53C3\u95B1 <a href="help.view?">\u8A18\u9304</a>.
|
avataruploadresult.failure = \u7121\u6CD5\u4E0A\u50B3\u500B\u4EBA\u5716\u793A. \u8ACB\u53C3\u95B1 <a href="help.view?">\u8A18\u9304</a>\u3002
|
||||||
|
|
||||||
# passwordSettings.jsp
|
# passwordSettings.jsp
|
||||||
passwordsettings.title = \u8B8A\u66F4\u5BC6\u78BC {0}
|
passwordsettings.title = \u8B8A\u66F4\u5BC6\u78BC {0}
|
||||||
|
|
||||||
# musicFolderSettings.jsp
|
# musicFolderSettings.jsp
|
||||||
musicfoldersettings.path = \u97F3\u6A02\u593E
|
musicfoldersettings.path = \u97F3\u6A02\u8CC7\u6599\u593E
|
||||||
musicfoldersettings.name = \u540D\u7A31
|
musicfoldersettings.name = \u540D\u7A31
|
||||||
musicfoldersettings.enabled = \u4F7F\u7528
|
musicfoldersettings.enabled = \u4F7F\u7528
|
||||||
musicfoldersettings.add = \u65B0\u589E\u97F3\u6A02\u593E
|
musicfoldersettings.add = \u65B0\u589E\u97F3\u6A02\u8CC7\u6599\u593E
|
||||||
musicfoldersettings.nopath = \u5E6B\u97F3\u6A02\u593E\u547D\u540D\u5427.
|
musicfoldersettings.nopath = \u8ACB\u6307\u5B9A\u8CC7\u6599\u593E\u3002
|
||||||
|
musicfoldersettings.notfound = \u627E\u4E0D\u5230\u8CC7\u6599\u593E
|
||||||
|
musicfoldersettings.scan = \u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E
|
||||||
|
musicfoldersettings.interval.never = \u5F9E\u4E0D
|
||||||
|
musicfoldersettings.interval.one = \u6BCF\u5929
|
||||||
|
musicfoldersettings.interval.many = \u6BCF\u9694 {0} \u5929
|
||||||
|
musicfoldersettings.hour = \u5728 {0}:00
|
||||||
|
musicfoldersettings.nowscanning = \u6B63\u5728\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u3002 \
|
||||||
|
\u9019\u500B\u52D5\u4F5C\u5C07\u9700\u8981\u5E7E\u5206\u9418\uFF0C\u53D6\u6C7A\u65BC\u60A8\u7684\u5A92\u9AD4\u8CC7\u6599\u5EAB\u7684\u5927\u5C0F\u3002
|
||||||
|
musicfoldersettings.scannow = \u7ACB\u5373\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E
|
||||||
|
musicfoldersettings.access = \u7BA1\u7406\u4F7F\u7528\u8005\u5B58\u53D6\u6B0A\u9650
|
||||||
|
musicfoldersettings.access.description = \u8A2D\u5B9A\u54EA\u4E9B\u8CC7\u6599\u593E\u53EF\u4EE5\u88AB\u54EA\u4E9B\u4F7F\u7528\u8005\u5B58\u53D6\u3002
|
||||||
|
musicfoldersettings.fastcache = \u5FEB\u901F\u8B80\u53D6\u6A21\u5F0F
|
||||||
|
musicfoldersettings.fastcache.description = \u5982\u679C\u4F60\u7684\u5A92\u9AD4\u6A94\u6848\u5728\u7DB2\u8DEF\u4E0A\u7684\u78C1\u789F\uFF0C\u4F7F\u7528\u9019\u500B\u9078\u9805\u4F86\u6E1B\u5C11\u78C1\u789F\u5B58\u53D6\u3002 \
|
||||||
|
\u6CE8\u610F\uFF1A\u65B0\u589E\u6216\u66F4\u6539\u5BE6\u969B\u6A94\u6848\u5C07\u6703\u53EA\u6709\u5728\u6383\u63CF\u97F3\u6A02\u8CC7\u6599\u593E\u5F8C\u624D\u6703\u751F\u6548\u3002
|
||||||
|
musicfoldersettings.expunge = \u6E05\u7406\u8CC7\u6599\u5EAB
|
||||||
|
musicfoldersettings.expunge.description = Libresonic \u5132\u5B58\u4E86\u6240\u6709\u5A92\u9AD4\u6A94\u6848\u7684\u8CC7\u8A0A\u3002 \
|
||||||
|
\u6E05\u7406\u8CC7\u6599\u5EAB\u5F8C\uFF0C\u4E0D\u5728\u60A8\u7684\u5A92\u9AD4\u8CC7\u6599\u5EAB\u5167\u7684\u6A94\u6848\uFF0C\u5176\u8CC7\u8A0A\u5C07\u6C38\u4E45\u522A\u9664\u3002
|
||||||
|
musicfoldersettings.organizebyfolderstructure = \u4EE5\u8CC7\u6599\u593E\u7D50\u69CB\u6574\u7406
|
||||||
|
musicfoldersettings.organizebyfolderstructure.description = \u958B\u555F\u9019\u500B\u9078\u9805\u4F7F\u60A8\u700F\u89BD\u5A92\u9AD4\u8CC7\u6599\u5EAB\u6642\u4F7F\u7528\u539F\u4F86\u7684\u8CC7\u6599\u593E\u7D50\u69CB\uFF0C\u800C\u4E0D\u662F\u4F9D\u7167 ID3 \u6A19\u7C64\u5167\u7684\u6B4C\u624B\u8207\u5C08\u8F2F\u8CC7\u8A0A\u3002
|
||||||
|
|
||||||
# networkSettings.jsp
|
# networkSettings.jsp
|
||||||
networksettings.text = \u4EE5\u4E0B\u8A2D\u5B9A\u8B93\u60A8\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u5B58\u53D6Libresonic\u4F3A\u670D\u5668.<br> \
|
networksettings.text = \u4EE5\u4E0B\u8A2D\u5B9A\u8B93\u60A8\u900F\u904E\u7DB2\u969B\u7DB2\u8DEF\u5B58\u53D6Libresonic\u4F3A\u670D\u5668\u3002<br> \
|
||||||
\u6709\u4EFB\u4F55\u554F\u984C, \u8ACB\u53C3\u8003 <a href="http://libresonic.org/pages/getting-started.jsp" target="_blank"><b>\u521D\u6B21\u4F7F\u7528</b></a>\u624B\u518A.
|
\u6709\u4EFB\u4F55\u554F\u984C\uFF0C\u8ACB\u53C3\u8003 <a href="http://libresonic.org/pages/getting-started.jsp" target="_blank"><b>\u521D\u6B21\u4F7F\u7528</b></a>\u624B\u518A\u3002
|
||||||
networksettings.portforwardingenabled = \u81EA\u52D5\u914D\u7F6E\u8DEF\u7531\u5668\u5B58\u53D6Libresonic\u4F3A\u670D\u5668 (UPnP port \u8F49\u767C).
|
networksettings.portforwardingenabled = \u81EA\u52D5\u914D\u7F6E\u8DEF\u7531\u5668\u5B58\u53D6 Libresonic \u4F3A\u670D\u5668 (UPnP port \u8F49\u767C)\u3002
|
||||||
networksettings.portforwardinghelp = \u5982\u679C\u8DEF\u7531\u7121\u6CD5\u81EA\u52D5\u914D\u7F6E\uFF0C\u8ACB\u4F7F\u7528\u624B\u52D5\u914D\u7F6E.<br> \
|
networksettings.portforwardinghelp = \u5982\u679C\u8DEF\u7531\u7121\u6CD5\u81EA\u52D5\u914D\u7F6E\uFF0C\u8ACB\u4F7F\u7528\u624B\u52D5\u914D\u7F6E\u3002<br> \
|
||||||
\u4F9D\u7167 <a href="http://portforward.com/" target="_blank">portforward.com</a> \u7684\u8AAA\u660E<br>\
|
\u4F9D\u7167 <a href="http://portforward.com/" target="_blank">portforward.com</a> \u7684\u8AAA\u660E<br>\
|
||||||
\u4F60\u5FC5\u9808\u8F49\u767CPort:{0}\u5230\u96FB\u8166\u4E0A\u904B\u884C\u7684Libresonic\u4F3A\u670D\u5668.
|
\u60A8\u5FC5\u9808\u8F49\u767CPort {0}\u5230\u96FB\u8166\u4E0A\u904B\u884C\u7684Libresonic\u4F3A\u670D\u5668\u3002
|
||||||
networksettings.urlredirectionenabled = \u7528\u7C21\u55AE\u597D\u8A18\u7684\u7DB2\u5740\u9023\u7DDA\u5230\u60A8\u7684\u4F3A\u670D\u5668.
|
networksettings.urlredirectionenabled = \u7528\u7C21\u55AE\u597D\u8A18\u7684\u7DB2\u5740\u9023\u7DDA\u5230\u60A8\u7684\u4F3A\u670D\u5668\u3002
|
||||||
networksettings.status = \u72C0\u614B:
|
networksettings.status = \u72C0\u614B\uFF1A
|
||||||
|
networksettings.normalurl = Use
|
||||||
|
networksettings.customurl = Use custom URL (advanced)
|
||||||
|
networksettings.urlRedirectDisabled = Feature not currently available
|
||||||
|
|
||||||
|
|
||||||
# transcodingSettings.jsp
|
# transcodingSettings.jsp
|
||||||
transcodingsettings.name = \u8F49\u6A94\u540D\u7A31
|
transcodingsettings.name = \u8F49\u6A94\u540D\u7A31
|
||||||
@@ -316,22 +447,23 @@ transcodingsettings.targetformat = \u8F49\u63DB\u6210
|
|||||||
transcodingsettings.step1 = \u6B65\u9A5F\u4E00
|
transcodingsettings.step1 = \u6B65\u9A5F\u4E00
|
||||||
transcodingsettings.step2 = \u6B65\u9A5F\u4E8C
|
transcodingsettings.step2 = \u6B65\u9A5F\u4E8C
|
||||||
transcodingsettings.step3 = \u6B65\u9A5F\u4E09
|
transcodingsettings.step3 = \u6B65\u9A5F\u4E09
|
||||||
transcodingsettings.defaultactive = \u9810\u8A2D
|
|
||||||
transcodingsettings.add = \u65B0\u589E\u8F49\u78BC\u5668
|
transcodingsettings.add = \u65B0\u589E\u8F49\u78BC\u5668
|
||||||
transcodingsettings.noname = \u8ACB\u6307\u5B9A\u4E00\u500B\u540D\u7A31.
|
transcodingsettings.defaultactive = \u9810\u8A2D
|
||||||
transcodingsettings.nosourceformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u683C\u5F0F.
|
transcodingsettings.recommended = Recommended configuration
|
||||||
transcodingsettings.notargetformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u683C\u5F0F.
|
transcodingsettings.noname = \u8ACB\u6307\u5B9A\u4E00\u500B\u540D\u7A31\u3002
|
||||||
transcodingsettings.nostep1 = \u8ACB\u81F3\u5C11\u6307\u5B9A\u4E00\u500B\u8F49\u63DB\u6B65\u9A5F.
|
transcodingsettings.nosourceformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u7684\u4F86\u6E90\u683C\u5F0F\u3002
|
||||||
transcodingsettings.info = <p class="detail">(%s = \u6A94\u6848\u5C07\u88AB\u8F49\u63DB, %b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387)</p> \
|
transcodingsettings.notargetformat = \u8ACB\u6307\u5B9A\u8F49\u63DB\u7684\u76EE\u7684\u683C\u5F0F\u3002
|
||||||
<p>\u8F49\u6A94\u904E\u7A0B\u662F\u7531\u4E00\u500B\u97F3\u6A02\u683C\u5F0F\u7BA1\u63DB\u6210\u53E6\u4E00\u7A2E\u683C\u5F0F. {1}\u7684\u8F49\u6A94 \
|
transcodingsettings.nostep1 = \u8ACB\u81F3\u5C11\u6307\u5B9A\u4E00\u500B\u8F49\u63DB\u6B65\u9A5F\u3002
|
||||||
\u5F15\u64CE\u5C07\u975E\u4E32\u6D41\u683C\u5F0F\u8F49\u63DB\u6210\u4E32\u6D41. \u76F4\u63A5\u8F49\u6A94\u4E26\u4E14\u4E0D\u9700\u8981\u78C1\u789F\u904B\u4F5C<p/> \
|
transcodingsettings.info = <p class="detail">(%s = \u6A94\u6848\u5C07\u88AB\u8F49\u63DB\uFF0C%b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387\uFF0C%t = \u6A19\u984C\uFF0C%a = \u6B4C\u624B\uFF0C%l = \u5C08\u8F2F)</p> \
|
||||||
<p>\u5BE6\u969B\u7684\u5C08\u63DB\u6771\u505A\u901A\u5E38\u662F\u900F\u904E\u7B2C\u4E09\u65B9\u8EDF\u9AD4\u4EE5\u547D\u4EE4\u5217\u65B9\u5F0F\u8F49\u63DB\uFF0C\u7A0B\u5F0F\u5B89\u88DD\u5728 {0}. </p>\
|
<p>\u8F49\u6A94\u904E\u7A0B\u662F\u7531\u4E00\u500B\u97F3\u6A02\u683C\u5F0F\u8F49\u63DB\u6210\u53E6\u4E00\u7A2E\u683C\u5F0F\u3002{1}\u7684\u8F49\u6A94 \
|
||||||
<p>\u800CWindows\u7CFB\u7D71\u7684\u8F49\u63DB\u7A0B\u5F0F\u53EF\u4EE5\u5728<a target="_blank" href="http://libresonic.org/pages/transcoding.jsp"><b>\u9019\u88E1\u627E\u5230</b></a>. \
|
\u5F15\u64CE\u5C07\u975E\u4E32\u6D41\u683C\u5F0F\u8F49\u63DB\u6210\u4E32\u6D41\u3002\u76F4\u63A5\u8F49\u6A94\u4E26\u4E14\u4E0D\u9700\u8981\u78C1\u789F\u904B\u4F5C<p/> \
|
||||||
|
<p>\u5BE6\u969B\u7684\u8F49\u63DB\u52D5\u4F5C\u901A\u5E38\u662F\u900F\u904E\u7B2C\u4E09\u65B9\u8EDF\u9AD4\u4EE5\u547D\u4EE4\u5217\u65B9\u5F0F\u8F49\u63DB\uFF0C\u7A0B\u5F0F\u5B89\u88DD\u5728 {0}\u3002</p>\
|
||||||
|
<p>\u800CWindows\u7CFB\u7D71\u7684\u8F49\u63DB\u7A0B\u5F0F\u53EF\u4EE5\u5728<a target="_blank" href="http://libresonic.org/pages/transcoding.jsp"><b>\u9019\u88E1\u627E\u5230</b></a>\u3002 \
|
||||||
\u60A8\u4E5F\u80FD\u4EE5\u81EA\u5B9A\u7684\u8F49\u63DB\uFF0C\u53EA\u8981\u6EFF\u8DB3\u4E0B\u9762\u8981\u6C42\uFF1A\
|
\u60A8\u4E5F\u80FD\u4EE5\u81EA\u5B9A\u7684\u8F49\u63DB\uFF0C\u53EA\u8981\u6EFF\u8DB3\u4E0B\u9762\u8981\u6C42\uFF1A\
|
||||||
<ul> \
|
<ul> \
|
||||||
<li>\u5FC5\u9808\u4EE5\u4E00\u500B\u547D\u4EE4\u884C\u6307\u4EE4\u754C\u9762.</li> \
|
<li>\u5FC5\u9808\u6709\u547D\u4EE4\u5217\u754C\u9762\u3002</li> \
|
||||||
<li>\u5FC5\u9808\u80FD\u5920\u5C07\u8F38\u51FA\u767C\u9001\u5230\u6A19\u6E96\u8F38\u51FA(Stdout).</li> \
|
<li>\u5FC5\u9808\u80FD\u5920\u5C07\u7D50\u679C\u9001\u5230\u6A19\u6E96\u8F38\u51FA(Stdout)\u3002</li> \
|
||||||
<li>\u5982\u679C\u4F7F\u7528\u6B65\u9A5F2\u62163\uFF0C\u5B83\u5FC5\u9808\u80FD\u5920\u5F9E\u6A19\u6E96\u8F38\u5165(Stdin)\u8B80\u53D6.</li> \
|
<li>\u5982\u679C\u5728\u6B65\u9A5F2\u4F7F\u7528\uFF0C\u5B83\u5FC5\u9808\u80FD\u5920\u5F9E\u6A19\u6E96\u8F38\u5165(Stdin)\u8B80\u53D6\u3002</li> \
|
||||||
</ul> \
|
</ul> \
|
||||||
</p> \
|
</p> \
|
||||||
<p> \u8ACB\u6CE8\u610F\uFF0C\u8F49\u63DB\u7684\u7A0B\u5E8F\u7684\u7531\u64A5\u653E\u5668\u8A2D\u5B9A\u4E2D\u52FE\u9078\u3002\u5982\u679C"\u9810\u8A2D"\u662F\u5DF2\u52FE\u9078\u7684\uFF0C\u90A3\u9EBC\u8F49\u63DB\u6703\u81EA\u52D5\u5728\u65B0\u64AD\u653E\u5668\u4E2D\u4F7F\u7528\u3002</p>
|
<p> \u8ACB\u6CE8\u610F\uFF0C\u8F49\u63DB\u7684\u7A0B\u5E8F\u7684\u7531\u64A5\u653E\u5668\u8A2D\u5B9A\u4E2D\u52FE\u9078\u3002\u5982\u679C"\u9810\u8A2D"\u662F\u5DF2\u52FE\u9078\u7684\uFF0C\u90A3\u9EBC\u8F49\u63DB\u6703\u81EA\u52D5\u5728\u65B0\u64AD\u653E\u5668\u4E2D\u4F7F\u7528\u3002</p>
|
||||||
@@ -363,35 +495,60 @@ podcastsettings.interval.weekly = \u6BCF\u9031
|
|||||||
podcastsettings.folder = \u5132\u5B58\u64AD\u5BA2\u5728
|
podcastsettings.folder = \u5132\u5B58\u64AD\u5BA2\u5728
|
||||||
|
|
||||||
# playerSettings.jsp
|
# playerSettings.jsp
|
||||||
playersettings.noplayers = \u6C92\u6709\u64A5\u653E\u5668.
|
playersettings.noplayers = \u6C92\u6709\u64A5\u653E\u5668\u3002
|
||||||
playersettings.type = \u5F62\u614B
|
playersettings.type = \u5F62\u614B
|
||||||
playersettings.lastseen = \u4E0A\u6B21\u767B\u5165
|
playersettings.lastseen = \u4E0A\u6B21\u767B\u5165
|
||||||
playersettings.title = \u9078\u64C7\u64A5\u653E\u5668
|
playersettings.title = \u9078\u64C7\u64A5\u653E\u5668
|
||||||
|
|
||||||
playersettings.technology.web.title = \u7DB2\u9801\u64AD\u653E
|
playersettings.technology.web.title = \u7DB2\u9801\u64AD\u653E
|
||||||
playersettings.technology.external.title = \u76F4\u63A5\u7528\u5916\u90E8\u64AD\u653E\u5668\u64AD\u653E
|
playersettings.technology.external.title = \u76F4\u63A5\u7528\u5916\u90E8\u64AD\u653E\u5668\u64AD\u653E
|
||||||
playersettings.technology.external_with_playlist.title = \u4EE5\u9EDE\u64AD\u6E05\u55AE\u5728\u5916\u90E8\u64A5\u653E\u5668\u64AD\u653E
|
playersettings.technology.external_with_playlist.title = \u4EE5\u64AD\u653E\u6E05\u55AE\u5728\u5916\u90E8\u64A5\u653E\u5668\u64AD\u653E
|
||||||
playersettings.technology.jukebox.title = \u9EDE\u64AD\u6A5F\u6A21\u5F0F
|
playersettings.technology.jukebox.title = \u9EDE\u64AD\u6A5F\u6A21\u5F0F
|
||||||
playersettings.technology.web.text = \u76F4\u63A5\u5728\u7DB2\u9801\u4E2D\u7684Flash\u64AD\u653E\u5668\u64AD\u653E.
|
playersettings.technology.web.text = \u76F4\u63A5\u5728\u7DB2\u9801\u4E2D\u7684Flash\u64AD\u653E\u5668\u64AD\u653E.
|
||||||
playersettings.technology.external.text = \u5728\u60A8\u5E38\u7528\u7684\u64A5\u653E\u5668\u4E2D\u64AD\u653E\uFF0C\u4F8B\u5982:WinAmp\u3001Windows Media Player\u3001iTunes.
|
playersettings.technology.external.text = \u5728\u60A8\u5E38\u7528\u7684\u64A5\u653E\u5668\u4E2D\u64AD\u653E\uFF0C\u4F8B\u5982:WinAmp\u3001Windows Media Player\u3001iTunes.
|
||||||
playersettings.technology.external_with_playlist.text = \u5982\u540C\u4E0A\u9762\u7684\u9078\u9805\uFF0C\u4F46\u662F\u9EDE\u64AD\u6E05\u55AE\u7531\u5BA2\u6236\u7AEF\u7BA1\u7406\uFF0C\u800C\u4E0D\u662F\u4F3A\u670D\u5668<br>\
|
playersettings.technology.external_with_playlist.text = \u5982\u540C\u4E0A\u9762\u7684\u9078\u9805\uFF0C\u4F46\u662F\u64AD\u653E\u6E05\u55AE\u7531\u5BA2\u6236\u7AEF\u7BA1\u7406\uFF0C\u800C\u4E0D\u662F\u4F3A\u670D\u5668\u3002 \
|
||||||
\u56E0\u6B64\u53EF\u80FD\u7684\u60C5\u6CC1\u4E0B\u53EF\u4EE5\u76F4\u63A5\u8DF3\u807D\u4E0B\u4E00\u9996\u6B4C\u66F2\u3002
|
\u5728\u9019\u500B\u6A21\u5F0F\u4E2D\u53EF\u4EE5\u8DF3\u8457\u64AD\u653E\u3002
|
||||||
playersettings.technology.jukebox.text = \u76F4\u63A5\u5728Libresonic\u4F3A\u670D\u5668\u4E2D\u64AD\u653E. (\u9650\u5DF2\u6388\u6B0A\u7684\u7528\u6236).
|
playersettings.technology.jukebox.text = \u76F4\u63A5\u5728Libresonic\u4F3A\u670D\u5668\u4E2D\u64AD\u653E\u3002(\u9650\u5DF2\u6388\u6B0A\u7684\u7528\u6236\u3002)
|
||||||
playersettings.name = \u64A5\u653E\u5668\u540D\u7A31
|
playersettings.name = \u64A5\u653E\u5668\u540D\u7A31
|
||||||
playersettings.coverartsize = \u5C08\u8F2F\u5C01\u9762\u5927\u5C0F
|
|
||||||
playersettings.maxbitrate = \u6700\u5927\u50B3\u8F38\u7387
|
playersettings.maxbitrate = \u6700\u5927\u50B3\u8F38\u7387
|
||||||
playersettings.coverart.off = \u4E0D\u986F\u793A
|
playersettings.notranscoder = <em>\u6CE8\u610F:</em> \u8F49\u78BC\u5F15\u64CE\u5C1A\u672A\u5B89\u88DD\u3002<br>\u9EDE\u9078\u3010\u8AAA\u660E\u3011\u7372\u5F97\u66F4\u591A\u8CC7\u8A0A\u3002
|
||||||
playersettings.coverart.small = \u5C0F
|
|
||||||
playersettings.coverart.medium = \u4E2D
|
|
||||||
playersettings.coverart.large = \u5927
|
|
||||||
playersettings.notranscoder = <em>\u6CE8\u610F:</em> ffmpeg \u5C1A\u672A\u5B89\u88DD.<br>\u9EDE\u64CA\u3010\u5354\u52A9\u3011.
|
|
||||||
playersettings.autocontrol = \u81EA\u52D5\u64AD\u653E
|
playersettings.autocontrol = \u81EA\u52D5\u64AD\u653E
|
||||||
|
playersettings.m3ubom = \u70ba\u7522\u751f\u7684M3U\u6a94\u6848\u589e\u52a0BOM\u6a19\u8a18
|
||||||
playersettings.dynamicip = \u64A5\u653E\u5668\u4F7F\u7528\u52D5\u614BIP\u4F4D\u5740
|
playersettings.dynamicip = \u64A5\u653E\u5668\u4F7F\u7528\u52D5\u614BIP\u4F4D\u5740
|
||||||
playersettings.transcodings = \u555F\u52D5\u7684\u8F49\u78BC\u7A0B\u5F0F
|
playersettings.transcodings = \u555F\u52D5\u7684\u8F49\u78BC\u7A0B\u5F0F
|
||||||
playersettings.ok = \u5132\u5B58
|
playersettings.ok = \u5132\u5B58
|
||||||
playersettings.forget = \u522A\u9664\u64A5\u653E\u5668
|
playersettings.forget = \u522A\u9664\u64A5\u653E\u5668
|
||||||
playersettings.clone = \u8907\u88FD\u64A5\u653E\u5668
|
playersettings.clone = \u8907\u88FD\u64A5\u653E\u5668
|
||||||
|
|
||||||
|
dlnasettings.enabled = Enable DLNA server
|
||||||
|
dlnasettings.description = Use this option to turn on the DLNA/UPnP Media Server in Libresonic, \
|
||||||
|
and stream your media to compatible DLNA players.
|
||||||
|
dlnasettings.servername = Media Server name
|
||||||
|
dlnasettings.servername.description = The name of the Media Server as it will appear in DLNA players.
|
||||||
|
|
||||||
|
sonossettings.enabled = Enable Sonos music service
|
||||||
|
sonossettings.description = Use this option to turn on the Sonos music service in Libresonic, \
|
||||||
|
and stream your media to Sonos devices on your local network. Remember to add Libresonic \
|
||||||
|
as a music service from your Sonos controller. Visit \
|
||||||
|
<a href="http://sonos.libresonic.org" target="_blank">sonos.libresonic.org</a> for more info. \
|
||||||
|
For trouble-shooting, please see the <a href="help.view">log</a>.
|
||||||
|
sonossettings.servicename = Music service name
|
||||||
|
sonossettings.servicename.description = The name of the music service as it will appear in the Sonos controller.
|
||||||
|
|
||||||
|
# shareSettings.jsp
|
||||||
|
sharesettings.name = Name
|
||||||
|
sharesettings.owner = Shared by
|
||||||
|
sharesettings.description = Description
|
||||||
|
sharesettings.visits = Visits
|
||||||
|
sharesettings.lastvisited = Last visited
|
||||||
|
sharesettings.expires = Expires
|
||||||
|
sharesettings.files = Shared files
|
||||||
|
sharesettings.expirein = Expire in
|
||||||
|
sharesettings.expirein.week = 1w
|
||||||
|
sharesettings.expirein.month = 1m
|
||||||
|
sharesettings.expirein.year = 1y
|
||||||
|
sharesettings.expirein.never = never
|
||||||
|
sharesettings.deleteexpired = Delete all expired
|
||||||
|
|
||||||
# userSettings.jsp
|
# userSettings.jsp
|
||||||
usersettings.title = \u9078\u64C7\u4F7F\u7528\u8005
|
usersettings.title = \u9078\u64C7\u4F7F\u7528\u8005
|
||||||
usersettings.newuser = \u65B0\u4F7F\u7528\u8005
|
usersettings.newuser = \u65B0\u4F7F\u7528\u8005
|
||||||
@@ -401,52 +558,67 @@ usersettings.stream = \u53EF\u4EE5\u64AD\u653E\u6A94\u6848
|
|||||||
usersettings.jukebox = \u53EF\u4EE5\u7528\u9EDE\u64A5\u6A5F\u6A21\u5F0F
|
usersettings.jukebox = \u53EF\u4EE5\u7528\u9EDE\u64A5\u6A5F\u6A21\u5F0F
|
||||||
usersettings.download = \u53EF\u4EE5\u4E0B\u8F09\u6A94\u6848
|
usersettings.download = \u53EF\u4EE5\u4E0B\u8F09\u6A94\u6848
|
||||||
usersettings.upload = \u53EF\u4EE5\u4E0A\u50B3\u6A94\u6848
|
usersettings.upload = \u53EF\u4EE5\u4E0A\u50B3\u6A94\u6848
|
||||||
|
usersettings.share = \u53EF\u4EE5\u8207\u4EFB\u4F55\u4EBA\u5206\u4EAB\u6A94\u6848
|
||||||
usersettings.coverart = \u53EF\u4EE5\u66F4\u63DB\u5C08\u8F2F\u5C01\u9762\u53CA\u6A19\u7C64
|
usersettings.coverart = \u53EF\u4EE5\u66F4\u63DB\u5C08\u8F2F\u5C01\u9762\u53CA\u6A19\u7C64
|
||||||
usersettings.comment= \u53EF\u4EE5\u5EFA\u7ACB\u6216\u7DE8\u8F2F\u8A55\u8AD6\u53CA\u8A55\u5206
|
usersettings.comment= \u53EF\u4EE5\u5EFA\u7ACB\u6216\u7DE8\u8F2F\u8A55\u8AD6\u53CA\u8A55\u5206
|
||||||
usersettings.podcast= \u53EF\u4EE5\u7BA1\u7406\u64AD\u5BA2
|
usersettings.podcast= \u53EF\u4EE5\u7BA1\u7406\u64AD\u5BA2
|
||||||
|
usersettings.folderaccess = \u53EF\u4EE5\u5B58\u53D6\u9019\u4E9B\u5A92\u9AD4\u8CC7\u6599\u593E
|
||||||
usersettings.username = \u4F7F\u7528\u8005
|
usersettings.username = \u4F7F\u7528\u8005
|
||||||
|
usersettings.email = Email
|
||||||
usersettings.changepassword = \u8B8A\u66F4\u5BC6\u78BC
|
usersettings.changepassword = \u8B8A\u66F4\u5BC6\u78BC
|
||||||
usersettings.password = \u5BC6\u78BC
|
usersettings.password = \u5BC6\u78BC
|
||||||
usersettings.newpassword = \u65B0\u5BC6\u78BC
|
usersettings.newpassword = \u65B0\u5BC6\u78BC
|
||||||
usersettings.confirmpassword = \u518D\u6B21\u78BA\u8A8D\u5BC6\u78BC
|
usersettings.confirmpassword = \u518D\u6B21\u78BA\u8A8D\u5BC6\u78BC
|
||||||
usersettings.delete = \u522A\u9664\u4F7F\u7528\u8005
|
usersettings.delete = \u522A\u9664\u4F7F\u7528\u8005
|
||||||
usersettings.ldap = \u5728LDAP\u9A57\u8B49\u7528\u6236
|
usersettings.ldap = \u5728LDAP\u9A57\u8B49\u7528\u6236
|
||||||
usersettings.nousername = \u7F3A\u5C11\u4F7F\u7528\u8005\u540D\u7A31.
|
usersettings.nousername = \u7F3A\u5C11\u4F7F\u7528\u8005\u540D\u7A31\u3002
|
||||||
usersettings.useralreadyexists = \u4F7F\u7528\u8005\u540D\u7A31\u5DF2\u7D93\u88AB\u4F7F\u7528\u4E86\uFF01.
|
usersettings.noemail= \u4E0D\u5408\u6CD5\u7684 email \u4F4D\u5740\u3002
|
||||||
usersettings.nopassword = \u5FC5\u9808\u8A2D\u5B9A\u5BC6\u78BC.
|
usersettings.useralreadyexists = \u5E33\u865F\u540D\u7A31\u5DF2\u7D93\u88AB\u4F7F\u7528\u4E86\u3002
|
||||||
usersettings.wrongpassword = \u5169\u6B21\u8F38\u5165\u5BC6\u78BC\u4E0D\u540C.
|
usersettings.nopassword = \u5FC5\u9808\u8A2D\u5B9A\u5BC6\u78BC\u3002
|
||||||
usersettings.ldapdisabled = LDAP\u9A57\u8B49\u6C92\u6709\u555F\u52D5. \u8ACB\u5148\u5230\u9032\u968E\u8A2D\u5B9A.
|
usersettings.wrongpassword = \u5169\u6B21\u8F38\u5165\u5BC6\u78BC\u4E0D\u540C\u3002
|
||||||
usersettings.passwordnotsupportedforldap = \u7121\u6CD5\u8A2D\u5B9A\u6216\u8B8A\u66F4LDAP\u9A57\u8B49\u7528\u6236\u7684\u5BC6\u78BC.
|
usersettings.ldapdisabled = LDAP\u9A57\u8B49\u6C92\u6709\u555F\u52D5\u3002\u8ACB\u5230\u9032\u968E\u8A2D\u5B9A\u3002
|
||||||
usersettings.ok = \u4F7F\u7528\u8005 {0}\u7684\u5BC6\u78BC\u5DF2\u7D93\u8B8A\u66F4.
|
usersettings.passwordnotsupportedforldap = \u7121\u6CD5\u8A2D\u5B9A\u6216\u8B8A\u66F4 LDAP \u9A57\u8B49\u7528\u6236\u7684\u5BC6\u78BC\u3002
|
||||||
|
usersettings.ok = \u4F7F\u7528\u8005 {0} \u7684\u5BC6\u78BC\u5DF2\u7D93\u8B8A\u66F4\u3002
|
||||||
# musicFolderSettings.jsp
|
|
||||||
musicfoldersettings.interval.never = \u5F9E\u4E0D
|
|
||||||
musicfoldersettings.interval.one = \u6BCF\u5929
|
|
||||||
musicfoldersettings.interval.many = \u6BCF\u9694 {0} \u5929
|
|
||||||
musicfoldersettings.hour = \u5728 {0}:00
|
|
||||||
|
|
||||||
# main.jsp
|
# main.jsp
|
||||||
main.up = \u4E0A\u4E00\u9801
|
main.up = \u4E0A\u4E00\u9801
|
||||||
main.playall = \u5168\u90E8\u64AD\u653E
|
main.playall = \u5168\u90E8\u64AD\u653E
|
||||||
main.playrandom = \u96A8\u8208\u64AD\u653E
|
main.playrandom = \u96A8\u8208\u64AD\u653E
|
||||||
main.addall = \u5168\u90E8\u52A0\u5230\u9EDE\u64AD\u6E05\u55AE\u4E2D
|
main.addall = \u5168\u90E8\u52A0\u5230\u64AD\u653E\u6E05\u55AE\u4E2D
|
||||||
main.downloadall = \u5168\u90E8\u4E0B\u8F09
|
main.downloadall = \u5168\u90E8\u4E0B\u8F09
|
||||||
main.tags = \u7DE8\u8F2F\u6A19\u7C64
|
main.tags = \u7DE8\u8F2F\u6A19\u7C64
|
||||||
main.playcount = \u9EDE\u64AD {0} \u6B21.
|
main.playcount = \u64AD\u653E {0} \u6B21\u3002
|
||||||
main.lastplayed =\u4E0A\u6B21\u9EDE\u64AD\u5728 {0}.
|
main.lastplayed =\u4E0A\u6B21\u64AD\u653E\u5728 {0} \u3002
|
||||||
main.comment = \u8A55\u8AD6
|
main.comment = \u8A55\u8AD6
|
||||||
main.wiki = <table class="detail">\
|
main.wiki = <table class="detail">\
|
||||||
<tr><td style="padding-right:1em">__text__</td><td>Bold text </td><td style="padding-left:3em;padding-right:1em">\\\\ </td><td>Line break</td></tr>\
|
<tr><td style="padding-right:1em">__text__</td><td>\u7C97\u9AD4 </td><td style="padding-left:3em;padding-right:1em">\\\\ </td><td>\u63DB\u884C</td></tr>\
|
||||||
<tr><td style="padding-right:1em">~~text~~</td><td>Italic text </td><td style="padding-left:3em;padding-right:1em">(empty line) </td><td>New paragraph</td></tr>\
|
<tr><td style="padding-right:1em">~~text~~</td><td>\u659C\u9AD4 </td><td style="padding-left:3em;padding-right:1em">(empty line) </td><td>\u65B0\u6BB5\u843D</td></tr>\
|
||||||
<tr><td style="padding-right:1em">* text </td><td>List item </td><td style="padding-left:3em;padding-right:1em">http://foo.com/ </td><td>Link</td></tr>\
|
<tr><td style="padding-right:1em">* text </td><td>\u6E05\u55AE </td><td style="padding-left:3em;padding-right:1em">http://foo.com/ </td><td>\u934A\u7D50</td></tr>\
|
||||||
<tr><td style="padding-right:1em">1. text </td><td>Enumerated list item</td><td style="padding-left:3em;padding-right:1em">{link:Foo|http://foo.com}</td><td>Named link</td></tr>\
|
<tr><td style="padding-right:1em">1. text </td><td>\u5217\u8209\u6E05\u55AE</td><td style="padding-left:3em;padding-right:1em">{link:Foo|http://foo.com}</td><td>\u5DF2\u547D\u540D\u934A\u7D50</td></tr>\
|
||||||
</table>
|
</table>
|
||||||
|
main.sharealbum = \u5206\u4EAB
|
||||||
|
main.more = \u66F4\u591A\u52D5\u4F5C\u2026
|
||||||
|
main.more.selection = \u9078\u64C7\u6B4C\u66F2\u2026
|
||||||
|
main.more.share = \u5206\u4EAB
|
||||||
|
main.premium = <a href="{0}" style="text-decoration:underline">\u53D6\u5F97 Subsonic Premium</a><br>(\u4E26\u522A\u9664\u6B64\u5EE3\u544A)
|
||||||
main.nowplaying =\u76EE\u524D\u64A5\u653E
|
main.nowplaying =\u76EE\u524D\u64A5\u653E
|
||||||
main.lyrics = \u6B4C\u8A5E
|
main.lyrics = \u6B4C\u8A5E
|
||||||
main.minutesago = \u5206\u9418\u524D
|
main.minutesago = \u5206\u9418\u524D
|
||||||
main.chat = \u4EA4\u8AC7
|
main.chat = \u4EA4\u8AC7
|
||||||
|
main.scanning = \u6383\u63CF\u6A94\u6848\uFF1A
|
||||||
main.message = \u5BEB\u5728\u9019\u88E1
|
main.message = \u5BEB\u5728\u9019\u88E1
|
||||||
main.clearchat = \u6E05\u9664
|
main.clearchat = \u6E05\u9664
|
||||||
|
main.addtoplaylist.title = \u589E\u52A0\u81F3\u64AD\u653E\u6E05\u55AE
|
||||||
|
main.addtoplaylist.text = \u589E\u52A0\u5DF2\u9078\u64C7\u7684\u6B4C\u66F2\u81F3\u6B64\u64AD\u653E\u6E05\u55AE\uFF1A
|
||||||
|
main.addnext = \u52A0\u5230\u4E0B\u4E00\u9996
|
||||||
|
main.addlast = \u52A0\u5230\u6700\u5F8C\u4E00\u9996
|
||||||
|
main.addnext.toast = \u6B64\u6B4C\u66F2\u5C07\u6703\u65BC\u4E0B\u4E00\u9996\u6642\u64AD\u653E
|
||||||
|
main.addlast.toast = \u6B64\u6B4C\u66F2\u5C07\u6703\u65BC\u6700\u5F8C\u4E00\u9996\u6642\u64AD\u653E
|
||||||
|
main.similarartists = \u76F8\u4F3C\u7684\u6B4C\u624B
|
||||||
|
main.startradio = Start radio
|
||||||
|
main.playtopsongs = \u64AD\u653E\u6392\u884C\u699C\u6B4C\u66F2
|
||||||
|
main.showall = \u986F\u793A\u6240\u6709\u5C08\u8F2F
|
||||||
|
main.topsongs = \u6392\u884C\u699C\u6B4C\u66F2
|
||||||
|
|
||||||
# rating.jsp
|
# rating.jsp
|
||||||
rating.rating = \u7B49\u7D1A
|
rating.rating = \u7B49\u7D1A
|
||||||
@@ -457,17 +629,18 @@ coverart.change = \u8B8A\u66F4
|
|||||||
coverart.zoom = \u653E\u5927
|
coverart.zoom = \u653E\u5927
|
||||||
|
|
||||||
# allmusic.jsp
|
# allmusic.jsp
|
||||||
allmusic.text = \u5728 allmusic.com \u641C\u5C0B\u5C08\u8F2F <em>{0}</em> - \u8ACB\u7A0D\u5019.
|
allmusic.text = \u5728 allmusic.com \u641C\u5C0B\u5C08\u8F2F <em>{0}</em> - \u8ACB\u7A0D\u5019\u3002
|
||||||
|
|
||||||
# changeCoverArt.jsp
|
# changeCoverArt.jsp
|
||||||
changecoverart.title = \u8B8A\u66F4\u5C08\u8F2F\u5C01\u9762
|
changecoverart.title = \u8B8A\u66F4\u5C08\u8F2F\u5C01\u9762
|
||||||
changecoverart.address = \u6216\u662F\u8F38\u5165\u5716\u5F62\u7684\u4F4D\u5740
|
changecoverart.address = \u6216\u662F\u8F38\u5165\u5716\u5F62\u7684\u4F4D\u5740
|
||||||
changecoverart.artist = \u6B4C\u624B
|
changecoverart.artist = \u6B4C\u624B
|
||||||
changecoverart.album = \u5C08\u8F2F
|
changecoverart.album = \u5C08\u8F2F
|
||||||
changecoverart.wait = \u8ACB\u7A0D\u5019...
|
changecoverart.search = Google \u5716\u7247\u641C\u5C0B
|
||||||
changecoverart.success = \u5716\u5F62\u4E0B\u8F09\u6210\u529F.
|
changecoverart.wait = \u8ACB\u7A0D\u5019\u2026
|
||||||
changecoverart.error = \u7121\u6CD5\u4E0B\u8F09\u5716\u5F62.
|
changecoverart.success = \u5716\u7247\u4E0B\u8F09\u6210\u529F\u3002
|
||||||
changecoverart.noimagesfound = \u627E\u4E0D\u5230\u5716\u5F62\u6A94.
|
changecoverart.error = \u7121\u6CD5\u4E0B\u8F09\u5716\u7247\u3002
|
||||||
|
changecoverart.noimagesfound = \u627E\u4E0D\u5230\u5716\u7247\u3002
|
||||||
|
|
||||||
# changeCoverArtConfirm.jsp
|
# changeCoverArtConfirm.jsp
|
||||||
changeCoverArtConfirm.failed = \u7121\u6CD5\u4FEE\u6539\u5C08\u8F2F\u5C01\u9762:<br><b>"{0}"</b>
|
changeCoverArtConfirm.failed = \u7121\u6CD5\u4FEE\u6539\u5C08\u8F2F\u5C01\u9762:<br><b>"{0}"</b>
|
||||||
@@ -492,8 +665,48 @@ edittags.updated = Updated
|
|||||||
edittags.skipped = \u7565\u904E
|
edittags.skipped = \u7565\u904E
|
||||||
edittags.error = \u932F\u8AA4
|
edittags.error = \u932F\u8AA4
|
||||||
|
|
||||||
|
# share.jsp
|
||||||
|
share.title = Share
|
||||||
|
share.warning = <h2>IMPORTANT NOTICE!</h2><p>Play fair – Don't share copyrighted material in any manner that violates the law.</p>
|
||||||
|
share.facebook = \u5206\u4EAB\u81F3 Facebook
|
||||||
|
share.twitter = \u5206\u4EAB\u81F3 Twitter
|
||||||
|
share.googleplus = \u5206\u4EAB\u81F3 Google+
|
||||||
|
share.link = Or share this with someone by sending them this link: <a href="{0}" target="_blank">{0}</a>
|
||||||
|
share.disabled = To share your music with someone you must first register your own <em>libresonic.org</em> address.<br> \
|
||||||
|
Please go to <a href="networkSettings.view"><b>Settings > Network</b></a> (administrative rights required).
|
||||||
|
share.manage = Manage my shared media
|
||||||
|
|
||||||
|
# premium.jsp
|
||||||
|
premium.title = Subsonic Premium
|
||||||
|
premium.invalidlicense = Invalid license key.
|
||||||
|
premium.text = <p>Upgrade to <a href="http://premium.libresonic.org/" target="_blank">Subsonic Premium</a> to enjoy these extra features:</p> \
|
||||||
|
<ul> \
|
||||||
|
<li><a href="http://libresonic.org/pages/apps.jsp" target="_blank">Apps</a> for Android, iPhone, Windows Phone, Mac, Chrome and more*.</li> \
|
||||||
|
<li>Video streaming.</li> \
|
||||||
|
<li>Stream to your Chromecast and Sonos devices.</li> \
|
||||||
|
<li>Podcast receiver.</li> \
|
||||||
|
<li>Your personal server address: <em>yourname</em>.libresonic.org (see <a href="networkSettings.view">Settings > Network</a>).</li> \
|
||||||
|
<li>Play your media on compatible DLNA/UPnP devices.</li> \
|
||||||
|
<li>Share your media on Facebook, Twitter, Google+.</li> \
|
||||||
|
<li>No ads in the web interface.</li> \
|
||||||
|
<li>Other features to be released later.</li> \
|
||||||
|
</ul> \
|
||||||
|
<p style="font-size:10px;">* Some apps must be purchased separately.</p>
|
||||||
|
premium.getpremium = \u53D6\u5F97 Subsonic Premium
|
||||||
|
premium.licensed = You have a valid Subsonic Premium license!
|
||||||
|
premium.licensedexpires = Your Subsonic Premium license is valid until {0}
|
||||||
|
premium.licensedexpired = Your Subsonic Premium license expired {0}
|
||||||
|
premium.licensedto = The license is registered to {0}.
|
||||||
|
premium.forcechange = Register a different license key
|
||||||
|
premium.register = When upgrading to Subsonic Premium you receive a license key by email. Please register it below.
|
||||||
|
premium.resend = Lost the license key? <a href="http://libresonic.org/backend/requestLicense.view" target="_blank">Send it again</a>.
|
||||||
|
premium.register.email = Email
|
||||||
|
premium.register.license = License key
|
||||||
|
|
||||||
# podcastReceiver.jsp
|
# podcastReceiver.jsp
|
||||||
podcastreceiver.title = \u64AD\u5BA2\u63A5\u6536\u5668
|
podcastreceiver.title = \u64AD\u5BA2\u63A5\u6536\u5668
|
||||||
|
podcastreceiver.empty = You haven't subscribed to any podcasts yet.
|
||||||
|
podcastreceiver.episodes = {0} \u7AE0\u7BC0
|
||||||
podcastreceiver.expandall = \u986F\u793A\u6536\u85CF\u96C6
|
podcastreceiver.expandall = \u986F\u793A\u6536\u85CF\u96C6
|
||||||
podcastreceiver.collapseall = \u96B1\u85CF\u6536\u85CF\u96C6
|
podcastreceiver.collapseall = \u96B1\u85CF\u6536\u85CF\u96C6
|
||||||
podcastreceiver.status.new = \u65B0\u7684
|
podcastreceiver.status.new = \u65B0\u7684
|
||||||
@@ -509,78 +722,86 @@ podcastreceiver.check = \u6838\u5C0D\u65B0\u7684\u6536\u85CF\u96C6
|
|||||||
podcastreceiver.refresh = \u5237\u65B0\u672C\u9801
|
podcastreceiver.refresh = \u5237\u65B0\u672C\u9801
|
||||||
podcastreceiver.settings = \u64AD\u5BA2\u8A2D\u5B9A
|
podcastreceiver.settings = \u64AD\u5BA2\u8A2D\u5B9A
|
||||||
podcastreceiver.subscribe = \u8A02\u95B1\u64AD\u5BA2
|
podcastreceiver.subscribe = \u8A02\u95B1\u64AD\u5BA2
|
||||||
|
podcastreceiver.newestepisodes = \u6700\u65B0\u7AE0\u7BC0
|
||||||
|
|
||||||
# lyrics.jsp
|
# lyrics.jsp
|
||||||
lyrics.title = \u6B4C\u8A5E
|
lyrics.title = \u6B4C\u8A5E
|
||||||
lyrics.artist = \u6B4C\u624B
|
lyrics.artist = \u6B4C\u624B
|
||||||
lyrics.song = \u6B4C\u66F2
|
lyrics.song = \u6B4C\u66F2
|
||||||
lyrics.search = \u641C\u5C0B
|
lyrics.search = \u641C\u5C0B
|
||||||
lyrics.wait = \u641C\u5C0B\u6B4C\u8A5E\u4E2D, \u8ACB\u7A0D\u5019...
|
lyrics.wait = \u641C\u5C0B\u6B4C\u8A5E\u4E2D\uFF0C\u8ACB\u7A0D\u5019\u2026
|
||||||
lyrics.courtesy = (\u6B4C\u8A5E\u7531<a href="http://www.chartlyrics.com/" target="_blank">chartlyrics.com</a>\u63D0\u4F9B)
|
lyrics.courtesy = (\u6B4C\u8A5E\u7531<a href="http://www.chartlyrics.com/" target="_blank">chartlyrics.com</a>\u63D0\u4F9B)
|
||||||
lyrics.nolyricsfound = \u627E\u4E0D\u5230\u6B4C\u8A5E.
|
lyrics.nolyricsfound = \u627E\u4E0D\u5230\u6B4C\u8A5E\u3002
|
||||||
|
lyrics.trylater = Sorry, the lyrics search engine allows just one search every 20 seconds. Try again later.
|
||||||
|
|
||||||
# helpPopup.jsp
|
# helpPopup.jsp
|
||||||
helppopup.title = {0} \u5354\u52A9
|
helppopup.title = {0} \u5354\u52A9
|
||||||
helppopup.cover.title = \u5C08\u8F2F\u5C01\u9762\u5927\u5C0F
|
|
||||||
helppopup.cover.text = <p>\u7531\u60A8\u6307\u5B9A\u986F\u793A\u5C08\u8F2F\u5C01\u9762\u7684\u5927\u5C0F\uFF0C\u4E5F\u53EF\u4EE5\u5B8C\u5168\u95DC\u9589.</p>
|
|
||||||
helppopup.transcode.title = \u6700\u5927\u50B3\u8F38\u7387
|
helppopup.transcode.title = \u6700\u5927\u50B3\u8F38\u7387
|
||||||
helppopup.transcode.text = <p>\u5982\u679C\u60A8\u7684\u64AD\u653E\u983B\u5BEC\u6709\u9650\uFF0C\u53EF\u4EE5\u904E\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u4F86\u6539\u5584. \
|
helppopup.transcode.text = <p>\u5982\u679C\u60A8\u7684\u64AD\u653E\u983B\u5BEC\u6709\u9650\uFF0C\u53EF\u4EE5\u904E\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u4F86\u6539\u5584\u3002 \
|
||||||
\u4F8B\u5982,\u5982\u679Cmp3\u539F\u672C\u7684\u58D3\u7E2E\u6BD4\u4F8B\u70BA256Kbps(kilobits per second), \u5982\u679C\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u70BA128\
|
\u4F8B\u5982\uFF0C\u5982\u679C\u60A8\u539F\u672C\u7684 mp3 \u6A94\u6848\u7684\u7DE8\u78BC\u7387\u70BA 256Kbps(\u6BCF\u79D2\u5343\u4F4D\u5143)\uFF0C\u5982\u679C\u8A2D\u5B9A\u6700\u5927\u50B3\u8F38\u7387\u70BA128\
|
||||||
\u6703\u4F7F{0}\u81EA\u52D5\u5C07\u539F\u672C 256Kbps\u7684\u97F3\u6A02\u8ABF\u964D\u6210 128 Kbps.</p>
|
\u6703\u4F7F {0} \u81EA\u52D5\u5C07\u539F\u672C 256Kbps \u7684\u97F3\u6A02\u7DE8\u78BC\u70BA\u6210 128 Kbps\u3002</p>
|
||||||
helppopup.playlistfolder.title = \u9EDE\u64AD\u6E05\u55AE\u8CC7\u6599\u593E
|
helppopup.playlistfolder.title = \u64AD\u653E\u6E05\u55AE\u8CC7\u6599\u593E
|
||||||
helppopup.playlistfolder.text = <p>\u5B58\u653E\u9EDE\u64AD\u6E05\u55AE\u7684\u8CC7\u6599\u593E.</p>
|
helppopup.playlistfolder.text = <p>\u5B58\u653E\u64AD\u653E\u6E05\u55AE\u7684\u8CC7\u6599\u593E\u3002</p>
|
||||||
helppopup.musicmask.title = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D
|
helppopup.musicmask.title = \u97F3\u6A02\u7684\u9644\u5C6C\u6A94\u540D
|
||||||
helppopup.musicmask.text = <p>\u6307\u5B9A\u97F3\u6A02\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D</p>
|
helppopup.musicmask.text = <p>\u6307\u5B9A\u97F3\u6A02\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D</p>
|
||||||
helppopup.videomask.title = \u8996\u8A0A\u6A94\u7684\u9644\u5C6C\u6A94\u540D
|
helppopup.videomask.title = \u8996\u8A0A\u6A94\u7684\u9644\u5C6C\u6A94\u540D
|
||||||
helppopup.videomask.text = <p>\u6307\u5B9A\u8996\u8A0A\u6A94\u6848\u7684\u8CA0\u6578\u6A94\u540D</p>
|
helppopup.videomask.text = <p>\u6307\u5B9A\u8996\u8A0A\u6A94\u6848\u7684\u8CA0\u6578\u6A94\u540D</p>
|
||||||
helppopup.coverartmask.title = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D
|
helppopup.coverartmask.title = \u5C08\u8F2F\u5C01\u9762\u9644\u5C6C\u6A94\u540D
|
||||||
helppopup.coverartmask.text = <p>\u8207\u97F3\u6A02\u593E\u653E\u5728\u4E00\u8D77\u7684\u5C08\u8F2F\u5C01\u9762\uFF0C\u5148\u6307\u5B9A\u5C08\u8F2F\u5C01\u9762\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D.</p>
|
helppopup.coverartmask.text = <p>\u8207\u97F3\u6A02\u8CC7\u6599\u593E\u653E\u5728\u4E00\u8D77\u7684\u5C08\u8F2F\u5C01\u9762\uFF0C\u5148\u6307\u5B9A\u5C08\u8F2F\u5C01\u9762\u6A94\u6848\u7684\u9644\u5C6C\u6A94\u540D\u3002</p>
|
||||||
helppopup.downsamplecommand.title = \u964D\u983B\u6307\u4EE4
|
helppopup.downsamplecommand.title = \u964D\u983B\u6307\u4EE4
|
||||||
helppopup.downsamplecommand.text = <p>\u8B93\u60A8\u8A2D\u5B9A\u8ABF\u964D\u64AD\u653E\u97F3\u6A02\u6642\u964D\u4F4E\u53D6\u6A23\u983B\u7387\u7684\u6307\u4EE4.</p>\
|
helppopup.downsamplecommand.text = <p>\u8B93\u60A8\u8A2D\u5B9A\u8ABF\u964D\u64AD\u653E\u97F3\u6A02\u6642\u964D\u4F4E\u53D6\u6A23\u983B\u7387\u7684\u6307\u4EE4\u3002</p>\
|
||||||
<p>(%s = \u8981\u964D\u983B\u7684\u6A94\u6848, %b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387)</p>
|
<p>(%s = \u8981\u964D\u983B\u7684\u6A94\u6848\uFF0C%b = \u64A5\u653E\u5668\u7684\u6700\u5927\u50B3\u8F38\u7387\uFF0C%t = \u6A19\u984C\uFF0C%a = \u6B4C\u624B\uFF0C%l = \u5C08\u8F2F)</p>
|
||||||
|
helppopup.hlscommand.title = HTTP Live Streaming command
|
||||||
|
helppopup.hlscommand.text = <p>The command used to create video segments for Apple''s HLS (HTTP Live Streaming) protocol.</p>
|
||||||
helppopup.index.title = \u5206\u985E\u6AA2\u7D22
|
helppopup.index.title = \u5206\u985E\u6AA2\u7D22
|
||||||
helppopup.index.text = <p>\u8A2D\u5B9A\u97F3\u6A02\u6AA2\u7D22\u7684\u65B9\u5F0F\uFF0C\uFF08\u5C31\u5982\u540C\u73FE\u5728\u5728\u87A2\u5E55\u5DE6\u4E0A\u65B9\u7684\u5206\u985E\uFF09. \u5728\u97F3\u6A02\u593E\u88E1\u7684\u6A94\u6848\u5F88\u5BB9\u6613\u5206\u985E\u6AA2\u7D22</p> \
|
helppopup.index.text = <p>\u8A2D\u5B9A\u97F3\u6A02\u7D22\u5F15(\u5728\u87A2\u5E55\u5DE6\u65B9)\u6B78\u985E\u7684\u65B9\u5F0F\u3002\u5728\u97F3\u6A02\u8CC7\u6599\u593E\u88E1\u7684 \
|
||||||
<p>\u901A\u5E38\u4EE5\u7A7A\u767D\u4F86\u5206\u9694\u6AA2\u7D22\u9805\u76EE. \u4E00\u822C\u4F86\u8AAA\uFF0C\u4E00\u500B\u5B57\u6BCD\uFF08\u570B\u5B57\uFF09\u70BA\u4E00\u500B\u9805\u76EE, \
|
\u6A94\u6848\u5F88\u5BB9\u6613\u900F\u904E\u7D22\u5F15\u5B58\u53D6\u3002</p> \
|
||||||
\u4F46\u4E5F\u53EF\u4EE5\u591A\u500B\u5B57\u6BCD\uFF08\u570B\u5B57\uFF09\u653E\u5728\u540C\u4E00\u5206\u985E\u9805\u76EE\u4E2D. \u4F8B\u5982\uFF1A\u3105(\u5305\u9B91),\u53EF\u4EE5\u5C07 <em>\u5305\u9B91</em>\u8996\u70BA\u540C\u4E00\u5206\u985E\
|
<p>\u5B9A\u7FA9\u65B9\u5F0F\u662F\u4EE5\u7A7A\u767D\u5206\u9694\u7684\u7D22\u5F15\u9805\u76EE\u3002\u4E00\u822C\u4F86\u8AAA\uFF0C\u9805\u76EE\u662F\u55AE\u4E00\u5B57\u6BCD\uFF0C \
|
||||||
<p>\u800C\u7121\u6CD5\u6B78\u985E\u7684\u6A94\u6848\uFF0C\u5C07\u5168\u90E8\u6B78\u65BC "#"\u9805\u76EE\u4E2D.</p>
|
\u4F46\u60A8\u4E5F\u53EF\u4EE5\u6307\u5B9A\u591A\u500B\u5B57\u6BCD\u3002\u4F8B\u5982\uFF1A\u9805\u76EE The \u6703\u9023\u7D50\u5230\u6240\u6709 \
|
||||||
|
\u958B\u982D\u70BA "The" \u7684\u8CC7\u6599\u593E\u8207\u6A94\u6848\u3002</p> \
|
||||||
|
<p>\u60A8\u4E5F\u53EF\u4EE5\u7528\u62EC\u5F27\u4F86\u5305\u542B\u591A\u500B\u7D22\u5F15\u5B57\u5143\u3002\u4F8B\u5982\uFF1A \
|
||||||
|
<em>A-E(ABCDE)</em> \u6703\u986F\u793A\u70BA <em>A-E</em> \u4E26\u9023\u7D50\u5230\u6240\u6709\u958B\u982D\u70BA \
|
||||||
|
A\u3001B\u3001C\u3001D\u6216E\u7684\u8CC7\u6599\u593E\u8207\u6A94\u6848\u3002\u9019\u5C0D\u65BC\u6536\u7D0D\u5C11\u898B\u7684\u5B57\u5143(\u50CF\u662FX\u3001Y\u8207Z)\u5F88\u6709\u5E6B\u52A9\uFF0C\u6216 \
|
||||||
|
\u6B78\u985E\u91CD\u97F3\u5B57\u5143(\u5982A\u3001\u00C0\u8207\u00C1)</p> \
|
||||||
|
<p>\u7121\u6CD5\u6B78\u985E\u7684\u8CC7\u6599\u593E\u8207\u6A94\u6848\uFF0C\u5C07\u5168\u90E8\u6B78\u65BC "#" \u9805\u76EE\u4E2D\u3002</p>
|
||||||
helppopup.ignoredarticles.title = \u5FFD\u7565\u5B57\u9996
|
helppopup.ignoredarticles.title = \u5FFD\u7565\u5B57\u9996
|
||||||
helppopup.ignoredarticles.text = <p>\u6709\u4E9B\u5B57\u9996(\u4F8B\u5982"The") \u901A\u5E38\u5728\u66F2\u76EE\u6B78\u985E\u4E2D\u61C9\u8A72\u5FFD\u7565\uFF0C\u8ACB\u5728\u6B64\u8655\u8A2D\u5B9A.</p>
|
helppopup.ignoredarticles.text = <p>\u6709\u4E9B\u5B57\u9996(\u4F8B\u5982"The") \u901A\u5E38\u5728\u66F2\u76EE\u6B78\u985E\u4E2D\u61C9\u8A72\u5FFD\u7565\uFF0C\u8ACB\u5728\u6B64\u8655\u8A2D\u5B9A\u3002</p>
|
||||||
helppopup.shortcuts.title = \u6377\u5F91
|
helppopup.shortcuts.title = \u6377\u5F91
|
||||||
helppopup.shortcuts.text = <p>\u4EE5\u7A7A\u767D\u4F86\u5206\u9694\u5728\u6700\u4E0A\u5C64\u76EE\u9304\u4E2D\u5EFA\u7ACB\u6377\u5F91\u6AA2\u7D22. \u7528\u5F15\u865F\u4F86\u5206\u7D44\u5B57\u5143, \u4F8B\u5982:</p> \
|
helppopup.shortcuts.text = <p>\u4EE5\u7A7A\u767D\u4F86\u5206\u9694\u5728\u6700\u4E0A\u5C64\u76EE\u9304\u4E2D\u5EFA\u7ACB\u6377\u5F91\u6AA2\u7D22\u3002\u7528\u5F15\u865F\u4F86\u5206\u7D44\u5B57\u5143\uFF0C\u4F8B\u5982\uFF1A</p> \
|
||||||
<p><em>New Incoming "Sound tracks"</em></p>
|
<p><em>New Incoming "Sound tracks"</em></p>
|
||||||
helppopup.language.title = Language
|
helppopup.language.title = \u8A9E\u8A00
|
||||||
helppopup.language.text = <p>\u5728\u9019\u88E1\u9078\u64C7\u6240\u63D0\u4F9B\u7684\u986F\u793A\u8A9E\u8A00.</p>
|
helppopup.language.text = <p>\u5728\u9019\u88E1\u9078\u64C7\u6240\u63D0\u4F9B\u7684\u986F\u793A\u8A9E\u8A00\u3002</p>
|
||||||
helppopup.visibility.title = \u986F\u793A\u9805\u76EE
|
helppopup.visibility.title = \u986F\u793A\u9805\u76EE
|
||||||
helppopup.visibility.text = <p>\u9078\u64C7\u5728\u700F\u89BD\u6216\u662F\u5728\u9EDE\u64AD\u6E05\u55AE\u4E2D\uFF0C\u986F\u793A\u97F3\u6A02\u7684\u5404\u7A2E\u8A73\u7D30\u8CC7\u8A0A</p>
|
helppopup.visibility.text = <p>\u9078\u64C7\u5728\u700F\u89BD\u6216\u662F\u5728\u64AD\u653E\u6E05\u55AE\u4E2D\uFF0C\u986F\u793A\u97F3\u6A02\u7684\u5404\u7A2E\u8A73\u7D30\u8CC7\u8A0A</p>
|
||||||
helppopup.partymode.title = \u5BB4\u6703\u6A21\u5F0F
|
helppopup.partymode.title = \u5BB4\u6703\u6A21\u5F0F
|
||||||
helppopup.partymode.text = <p>\u4F7F\u7528\u5BB4\u6703\u6A21\u5F0F\u7C21\u5316\u4F7F\u7528\u8005\u754C\u9762\uFF0C\u63D0\u4F9B\u7D66\u7121\u7D93\u9A57\u7684\u4F7F\u7528\u8005\u64CD\u4F5C\
|
helppopup.partymode.text = <p>\u4F7F\u7528\u5BB4\u6703\u6A21\u5F0F\u7C21\u5316\u4F7F\u7528\u8005\u754C\u9762\uFF0C\u63D0\u4F9B\u7D66\u7121\u7D93\u9A57\u7684\u4F7F\u7528\u8005\u64CD\u4F5C\
|
||||||
\u4E5F\u53EF\u4EE5\u907F\u514D\u56E0\u70BA\u610F\u5916\u64CD\u4F5C\u800C\u5F04\u4E82\u4E86\u9EDE\u64AD\u6E05\u55AE.</p>
|
\u4E5F\u53EF\u4EE5\u907F\u514D\u56E0\u70BA\u610F\u5916\u64CD\u4F5C\u800C\u5F04\u4E82\u4E86\u64AD\u653E\u6E05\u55AE\u3002</p>
|
||||||
helppopup.theme.title = \u4F48\u666F\u4E3B\u984C
|
helppopup.theme.title = \u4F48\u666F\u4E3B\u984C
|
||||||
helppopup.theme.text = <p>\u8B93\u60A8\u53EF\u4EE5\u9078\u64C7\u4E0D\u540C\u7684\u4F48\u666F\u4E3B\u984C. \u4F48\u666F\u4E3B\u984C\u900F\u904E\u4E0D\u540C\u7684\u984F\u8272\u3001\u5B57\u9AD4\u3001\u5716\u50CF\u7B49\uFF0C\u5E36\u7D66\u60A8\u4E0D\u540C\u7684{0}\u611F\u53D7.</p>
|
helppopup.theme.text = <p>\u8B93\u60A8\u53EF\u4EE5\u9078\u64C7\u4E0D\u540C\u7684\u4F48\u666F\u4E3B\u984C\u3002\u4F48\u666F\u4E3B\u984C\u900F\u904E\u4E0D\u540C\u7684\u984F\u8272\u3001\u5B57\u9AD4\u3001\u5716\u50CF\u7B49\uFF0C\u5E36\u7D66\u60A8\u4E0D\u540C\u7684{0}\u611F\u53D7\u3002</p>
|
||||||
helppopup.welcomemessage.title = \u6B61\u8FCE\u6A19\u984C
|
helppopup.welcomemessage.title = \u6B61\u8FCE\u6A19\u984C
|
||||||
helppopup.welcomemessage.text = <p>\u5728\u9996\u9801\u4E2D\u986F\u793A\u7684\u6A19\u984C.</p>
|
helppopup.welcomemessage.text = <p>\u5728\u9996\u9801\u4E2D\u986F\u793A\u7684\u6A19\u984C\u3002</p>
|
||||||
helppopup.loginmessage.title = \u767B\u5165\u8A0A\u606F
|
helppopup.loginmessage.title = \u767B\u5165\u8A0A\u606F
|
||||||
helppopup.loginmessage.text = <p>\u5728\u767B\u5165\u756B\u9762\u986F\u793A\u7684\u63D0\u793A\u8A0A\u606F.</p>
|
helppopup.loginmessage.text = <p>\u5728\u767B\u5165\u756B\u9762\u986F\u793A\u7684\u63D0\u793A\u8A0A\u606F\u3002</p>
|
||||||
helppopup.coverartlimit.title = \u5C08\u8F2F\u5C01\u9762\u9650\u5236
|
helppopup.coverartlimit.title = \u5C08\u8F2F\u5C01\u9762\u9650\u5236
|
||||||
helppopup.coverartlimit.text = <p>\u5728\u4E00\u9801\u756B\u9762\u4E2D\u986F\u793A\u5C08\u8F2F\u5C01\u9762\u7684\u6700\u5927\u6578\u91CF.</p>
|
helppopup.coverartlimit.text = <p>\u5728\u4E00\u9801\u756B\u9762\u4E2D\u986F\u793A\u5C08\u8F2F\u5C01\u9762\u7684\u6700\u5927\u6578\u91CF\u3002</p>
|
||||||
helppopup.downloadlimit.title = \u4E0B\u8F09\u9650\u5236
|
helppopup.downloadlimit.title = \u4E0B\u8F09\u9650\u5236
|
||||||
helppopup.downloadlimit.text = <p>\u4E0B\u8F09\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236.</p>
|
helppopup.downloadlimit.text = <p>\u4E0B\u8F09\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236\u3002</p>
|
||||||
helppopup.uploadlimit.title = \u4E0A\u50B3\u9650\u5236
|
helppopup.uploadlimit.title = \u4E0A\u50B3\u9650\u5236
|
||||||
helppopup.uploadlimit.text = <p>\u4E0A\u50B3\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236.</p>
|
helppopup.uploadlimit.text = <p>\u4E0A\u50B3\u6A94\u6848\u6642\u7684\u983B\u5BEC\u9650\u5236\u3002</p>
|
||||||
helppopup.streamport.title = \u975E-SSL \u4E32\u6D41 Port
|
helppopup.streamport.title = \u975ESSL \u4E32\u6D41 Port
|
||||||
helppopup.streamport.text = <p>\u672C\u9078\u9805\u53EA\u662F\u7528\u65BC\u5728\u4F3A\u670D\u5668\u4E0A\u7684 {0} \u4F7F\u7528 SSL (HTTPS)\u50B3\u8F38\u5354\u5B9A.</p><p>\u6709\u4E9B\u64AD\u653E\u5668 \
|
helppopup.streamport.text = <p>\u672C\u9078\u9805\u53EA\u662F\u7528\u65BC\u5728\u4F3A\u670D\u5668\u4E0A\u7684 {0} \u4F7F\u7528 SSL (HTTPS)\u50B3\u8F38\u5354\u5B9A\u3002</p><p>\u6709\u4E9B\u64AD\u653E\u5668 \
|
||||||
(\u4F8B\u5982 Winamp) \u4E26\u672A\u652F\u63F4\u7D93\u7531SSL\u7684\u4E32\u6D41\u5354\u5B9A. \u5982\u679C\u60A8\u4E0D\u7D93\u7531SSL\u50B3\u9001\u4E32\u6D41\uFF0C\u8ACB\u6307\u5B9A\u901A\u8A0APORT(\u901A\u5E38\u662F80\u62164040)\
|
(\u4F8B\u5982 Winamp) \u4E0D\u652F\u63F4\u7D93\u7531SSL\u7684\u4E32\u6D41\u5354\u5B9A\u3002\u5982\u679C\u60A8\u4E0D\u7D93\u7531SSL\u50B3\u9001\u4E32\u6D41\uFF0C\u8ACB\u6307\u5B9A\u901A\u8A0APORT(\u901A\u5E38\u662F80\u62164040)\
|
||||||
\u8ACB\u6CE8\u610F\uFF0C\u4E32\u6D41\u97F3\u6A02\u4E26\u4E0D\u6703\u88AB\u52A0\u5BC6.</p>
|
\u8ACB\u6CE8\u610F\uFF0C\u4E32\u6D41\u97F3\u6A02\u4E26\u4E0D\u6703\u88AB\u52A0\u5BC6\u3002</p>
|
||||||
helppopup.ldap.title = LDAP \u9A57\u8B49
|
helppopup.ldap.title = LDAP \u9A57\u8B49
|
||||||
helppopup.ldap.text = <p>\u4F7F\u7528\u8005\u53EF\u4EE5\u7D93\u7531\u5916\u90E8\u7684LDAP\u4F3A\u670D\u5668\u9A57\u8B49 (\u5305\u62ECWindows Active Directory). \
|
helppopup.ldap.text = <p>\u4F7F\u7528\u8005\u53EF\u4EE5\u7D93\u7531\u5916\u90E8\u7684LDAP\u4F3A\u670D\u5668\u9A57\u8B49 (\u5305\u62ECWindows Active Directory)\u3002\
|
||||||
\u7576\u8A2D\u5B9A\u4F7F\u7528LDAP\u4F7F\u7528\u8005\u767B\u5165 {0}, \u5E33\u865F\u53CA\u5BC6\u78BC\u5C31\u7531\u5916\u90E8\u4F3A\u670D\u5668\u9A57\u8B49, \u800C\u4E0D\u662F\u7531{0}\u4F86\u9A57\u8B49.</p>
|
\u7576\u8A2D\u5B9A\u4F7F\u7528LDAP\u4F7F\u7528\u8005\u767B\u5165 {0}\uFF0C\u5E33\u865F\u53CA\u5BC6\u78BC\u5C31\u7531\u5916\u90E8\u4F3A\u670D\u5668\u9A57\u8B49\uFF0C\u800C\u4E0D\u662F\u7531{0}\u4F86\u9A57\u8B49\u3002</p>
|
||||||
helppopup.ldapurl.title = LDAP \u4F4D\u5740
|
helppopup.ldapurl.title = LDAP \u4F4D\u5740
|
||||||
helppopup.ldapurl.text = <p>\u8A2D\u5B9A LDAP \u4F3A\u670D\u5668\u7684\u4F4D\u5740. \u5354\u5B9A\u61C9\u8A72\u662F <em>ldap://</em> \u6216 <em>ldaps://</em> \
|
helppopup.ldapurl.text = <p>\u8A2D\u5B9A LDAP \u4F3A\u670D\u5668\u7684\u4F4D\u5740\u3002\u5354\u5B9A\u61C9\u8A72\u662F <em>ldap://</em> \u6216 <em>ldaps://</em> \
|
||||||
(\u7D93\u7531SSL\u7684LDAP\u5354\u5B9A). \u8ACB\u53C3\u8003<a href="http://java.sun.com/products/jndi/tutorial/ldap/misc/url.html" target="_blank">\u9019\u88E1</a> \
|
(\u7D93\u7531SSL\u7684LDAP\u5354\u5B9A)\u3002\u8ACB\u53C3\u8003<a href="http://java.sun.com/products/jndi/tutorial/ldap/misc/url.html" target="_blank">\u9019\u88E1</a> \
|
||||||
\u6709\u66F4\u591A\u8A73\u7D30\u8AAA\u660E.</p>
|
\u6709\u66F4\u591A\u8A73\u7D30\u8AAA\u660E\u3002</p>
|
||||||
helppopup.ldapsearchfilter.title = LDAP \u641C\u5C0B\u904E\u6FFE
|
helppopup.ldapsearchfilter.title = LDAP \u641C\u5C0B\u904E\u6FFE
|
||||||
helppopup.ldapsearchfilter.text = <p>\u8490\u5C0BLDAP\u7528\u6236\u6642\uFF0C\u5728\u9019\u88E1\u8A2D\u5B9A\u904E\u6FFE\u8868\u793A\u5F0F \
|
helppopup.ldapsearchfilter.text = <p>\u8490\u5C0BLDAP\u7528\u6236\u6642\uFF0C\u5728\u9019\u88E1\u8A2D\u5B9A\u904E\u6FFE\u8868\u793A\u5F0F \
|
||||||
(\u5B9A\u7FA9\u5728<a href="http://www.ietf.org/rfc/rfc2254.txt" target="_blank">RFC 2254</a>). \
|
(\u5B9A\u7FA9\u5728<a href="http://www.ietf.org/rfc/rfc2254.txt" target="_blank">RFC 2254</a>)\u3002 \
|
||||||
The pattern "'{0'}" is replaced by the username, \u4F8B\u5982: \
|
The pattern "'{0'}" is replaced by the username, \u4F8B\u5982: \
|
||||||
<ul>\
|
<ul>\
|
||||||
<li>(uid='{0'}) - this would search for a username match on the uid attribute.</li> \
|
<li>(uid='{0'}) - this would search for a username match on the uid attribute.</li> \
|
||||||
@@ -588,22 +809,33 @@ helppopup.ldapsearchfilter.text = <p>\u8490\u5C0BLDAP\u7528\u6236\u6642\uFF0C\u5
|
|||||||
</ul></p>
|
</ul></p>
|
||||||
helppopup.ldapmanagerdn.title = LDAP \u7BA1\u7406\u8005 DN
|
helppopup.ldapmanagerdn.title = LDAP \u7BA1\u7406\u8005 DN
|
||||||
helppopup.ldapmanagerdn.text = <p>\u5982\u679C LDAP \u4F3A\u670D\u5668\u4E0D\u652F\u63F4\u533F\u540D\u4F7F\u7528\u8005\u9023\u7DDA\uFF0C\u60A8\u5FC5\u9808\u6307\u5B9A DN \
|
helppopup.ldapmanagerdn.text = <p>\u5982\u679C LDAP \u4F3A\u670D\u5668\u4E0D\u652F\u63F4\u533F\u540D\u4F7F\u7528\u8005\u9023\u7DDA\uFF0C\u60A8\u5FC5\u9808\u6307\u5B9A DN \
|
||||||
(<em>Distinguished Name</em>)\u53CALDAP\u4F7F\u7528\u8005\u7684\u5BC6\u78BC.</p>
|
(<em>Distinguished Name</em>)\u53CALDAP\u4F7F\u7528\u8005\u7684\u5BC6\u78BC\u3002</p>
|
||||||
helppopup.ldapautoshadowing.title = \u5728 {0} \u81EA\u52D5\u5EFA\u7ACB LDAP \u5E33\u865F
|
helppopup.ldapautoshadowing.title = \u5728 {0} \u81EA\u52D5\u5EFA\u7ACB LDAP \u5E33\u865F
|
||||||
helppopup.ldapautoshadowing.text = <p>\u8A2D\u5B9A\u9019\u500B\u9078\u9805, \u5247LDAP \u7528\u6236\u4E0D\u5FC5\u5728\u767B\u5165\u4E4B\u524D\u624B\u52D5\u5EFA\u7ACB{0}\u7684\u5E33\u865F. </p> \
|
helppopup.ldapautoshadowing.text = <p>\u8A2D\u5B9A\u9019\u500B\u9078\u9805\uFF0C\u5247LDAP \u7528\u6236\u4E0D\u5FC5\u5728\u767B\u5165\u4E4B\u524D\u624B\u52D5\u5EFA\u7ACB{0}\u7684\u5E33\u865F\u3002</p> \
|
||||||
<p>\u6CE8\u610F! \u9019\u610F\u5473\u6240\u6709\u5728LDAP\u4E0A\u7684\u4F7F\u7528\u8005\u90FD\u53EF\u4EE5\u767B\u5165\u60A8\u7684{0}, \
|
<p>\u6CE8\u610F\uFF01 \u9019\u8868\u793A\u6240\u6709\u5728LDAP\u4E0A\u7684\u4F7F\u7528\u8005\u90FD\u53EF\u4EE5\u767B\u5165\u60A8\u7684{0}\uFF0C\
|
||||||
\u4E5F\u8A31\u9019\u4E0D\u662F\u60A8\u60F3\u8981\u7684\u529F\u80FD.</p>
|
\u4E5F\u8A31\u9019\u4E0D\u662F\u60A8\u60F3\u8981\u7684\u529F\u80FD\u3002</p>
|
||||||
helppopup.playername.title = \u64A5\u653E\u5668\u540D\u7A31
|
helppopup.playername.title = \u64A5\u653E\u5668\u540D\u7A31
|
||||||
helppopup.playername.text = <p>\u8B93\u4F60\u5E6B\u64AD\u653E\u5668\u6307\u5B9A\u4E00\u500B\u5BB9\u6613\u8A18\u4F4F\u7684\u540D\u5B57\uFF0C\u5982\u201C\u5DE5\u4F5C\u5BA4\u201D\u6216\u201C\u5BA2\u5EF3\u201D</p>
|
helppopup.playername.text = <p>\u8B93\u60A8\u5E6B\u64AD\u653E\u5668\u6307\u5B9A\u4E00\u500B\u5BB9\u6613\u8A18\u4F4F\u7684\u540D\u5B57\uFF0C\u5982\u201C\u5DE5\u4F5C\u5BA4\u201D\u6216\u201C\u5BA2\u5EF3\u201D</p>
|
||||||
helppopup.autocontrol.title = \u63A7\u5236\u64AD\u653E\u5668\u81EA\u52D5\u64AD\u653E
|
helppopup.autocontrol.title = \u63A7\u5236\u64AD\u653E\u5668\u81EA\u52D5\u64AD\u653E
|
||||||
helppopup.autocontrol.text = <p>\u8A2D\u5B9A\u9019\u500B\u9078\u9805, {0} \u5728\u60A8\u958B\u59CB\u64AD\u653E\u6642\uFF0C\u6703\u81EA\u52D5\u555F\u52D5\u64AD\u653E\u5668\
|
helppopup.autocontrol.text = <p>\u8A2D\u5B9A\u9019\u500B\u9078\u9805\uFF0C {0} \u5728\u60A8\u958B\u59CB\u64AD\u653E\u6642\uFF0C\u6703\u81EA\u52D5\u555F\u52D5\u64AD\u653E\u5668\
|
||||||
\u5426\u5247\u60A8\u5FC5\u9808\u81EA\u5DF1\u555F\u52D5\u4E26\u4E14\u9023\u63A5\u60A8\u7684\u64A5\u653E\u5668.</p>
|
\u5426\u5247\u60A8\u5FC5\u9808\u81EA\u5DF1\u555F\u52D5\u4E26\u4E14\u9023\u63A5\u60A8\u7684\u64A5\u653E\u5668\u3002</p>
|
||||||
helppopup.dynamicip.title = \u52D5\u614B IP \u4F4D\u5740
|
helppopup.dynamicip.title = \u52D5\u614B IP \u4F4D\u5740
|
||||||
helppopup.dynamicip.text = <p>\u95DC\u9589\u6B64\u9078\u9805\uFF0C\u5982\u679C\u60A8\u4F7F\u7528\u975C\u614BIP\u4F4D\u5740.</p>
|
helppopup.dynamicip.text = <p>\u95DC\u9589\u6B64\u9078\u9805\uFF0C\u5982\u679C\u60A8\u4F7F\u7528\u975C\u614BIP\u4F4D\u5740\u3002</p>
|
||||||
|
helppopup.smtpServer.title = SMTP \u4F3A\u670D\u5668
|
||||||
|
helppopup.smtpServer.text = <p>The hostname of the SMTP server. This server will be used to send e-mails to users \
|
||||||
|
who have requested a password reset.</p>
|
||||||
|
helppopup.smtpPort.title = SMTP Port
|
||||||
|
helppopup.smtpPort.text = <p>The server's port that should be connected to for SMTP traffic.</p>
|
||||||
|
helppopup.smtpCredentials.title = SMTP Credentials
|
||||||
|
helppopup.smtpCredentials.text = <p>The credentials to be used to connect to the SMTP server. Leave empty to connect without authentication.</p>
|
||||||
|
helppopup.smtpEncryption.title = SMTP Encryption
|
||||||
|
helppopup.smtpEncryption.text = <p>The encryption method to be used to connect to the SMTP server. Choose "None" for no encryption.</p>
|
||||||
|
helppopup.smtpFrom.title = From address
|
||||||
|
helppopup.smtpFrom.text = <p>The sender address for mails originating from the Libresonic server. Must be a valid e-mail address.</p>
|
||||||
|
|
||||||
# wap/index.jsp
|
# wap/index.jsp
|
||||||
wap.index.missing = \u627E\u4E0D\u5230\u97F3\u6A02
|
wap.index.missing = \u627E\u4E0D\u5230\u97F3\u6A02
|
||||||
wap.index.playlist = \u9EDE\u64AD\u6E05\u55AE
|
wap.index.playlist = \u64AD\u653E\u6E05\u55AE
|
||||||
wap.index.search = \u641C\u5C0B
|
wap.index.search = \u641C\u5C0B
|
||||||
wap.index.settings = \u8A2D\u5B9A
|
wap.index.settings = \u8A2D\u5B9A
|
||||||
|
|
||||||
@@ -616,7 +848,7 @@ wap.browse.downloadone = \u4E0B\u8F09\u6B4C\u66F2
|
|||||||
wap.browse.downloadall = \u5168\u90E8\u4E0B\u8F09
|
wap.browse.downloadall = \u5168\u90E8\u4E0B\u8F09
|
||||||
|
|
||||||
# wap/playlist.jsp
|
# wap/playlist.jsp
|
||||||
wap.playlist.title =\u9EDE\u64AD\u6E05\u55AE
|
wap.playlist.title = \u64AD\u653E\u6E05\u55AE
|
||||||
wap.playlist.noplayer = \u9023\u63A5\u4E0D\u5230\u64AD\u653E\u5668
|
wap.playlist.noplayer = \u9023\u63A5\u4E0D\u5230\u64AD\u653E\u5668
|
||||||
wap.playlist.clear = \u6E05\u9664
|
wap.playlist.clear = \u6E05\u9664
|
||||||
wap.playlist.load = \u8F09\u5165
|
wap.playlist.load = \u8F09\u5165
|
||||||
@@ -627,7 +859,7 @@ wap.playlist.play = \u5728\u96FB\u8A71\u4E2D\u64AD\u9001
|
|||||||
wap.search.title = \u641C\u5C0B
|
wap.search.title = \u641C\u5C0B
|
||||||
|
|
||||||
# wap/searchResult.jsp
|
# wap/searchResult.jsp
|
||||||
wap.searchresult.index = \u6B63\u5728\u5EFA\u7ACB\u641C\u5C0B\u7D22\u5F15\u3002\u8ACB\u7A0D\u5F8C\u518D\u8A66.
|
wap.searchresult.index = \u6B63\u5728\u5EFA\u7ACB\u641C\u5C0B\u7D22\u5F15\u3002\u8ACB\u7A0D\u5F8C\u518D\u8A66\u3002
|
||||||
|
|
||||||
# wap/settings.jsp
|
# wap/settings.jsp
|
||||||
wap.settings.selectplayer = \u9078\u64C7\u64AD\u653E\u5668
|
wap.settings.selectplayer = \u9078\u64C7\u64AD\u653E\u5668
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<bean id="cacheFactory" class="org.libresonic.player.cache.CacheFactory"/>
|
<bean id="cacheFactory" class="org.libresonic.player.cache.CacheFactory"/>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<!-- DAO's -->
|
<!-- DAO's -->
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:jaxws="http://cxf.apache.org/jaxws"
|
xmlns:jaxws="http://cxf.apache.org/jaxws"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
|
||||||
|
|
||||||
<import resource="classpath:META-INF/cxf/cxf.xml"/>
|
<import resource="classpath:META-INF/cxf/cxf.xml"/>
|
||||||
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
|
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
|
||||||
|
|||||||
@@ -481,6 +481,7 @@
|
|||||||
<c:param name="coverArtSize" value="${model.coverArtSizeMedium}"/>
|
<c:param name="coverArtSize" value="${model.coverArtSizeMedium}"/>
|
||||||
<c:param name="showLink" value="true"/>
|
<c:param name="showLink" value="true"/>
|
||||||
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
||||||
|
<c:param name="hideOverflow" value="true"/>
|
||||||
</c:import>
|
</c:import>
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
|||||||
@@ -273,6 +273,7 @@
|
|||||||
<c:param name="coverArtSize" value="${model.coverArtSizeMedium}"/>
|
<c:param name="coverArtSize" value="${model.coverArtSizeMedium}"/>
|
||||||
<c:param name="showLink" value="true"/>
|
<c:param name="showLink" value="true"/>
|
||||||
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
||||||
|
<c:param name="hideOverflow" value="true"/>
|
||||||
</c:import>
|
</c:import>
|
||||||
</div>
|
</div>
|
||||||
</c:if>
|
</c:if>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ PARAMETERS
|
|||||||
showZoom: Whether to display a link for zooming the cover art.
|
showZoom: Whether to display a link for zooming the cover art.
|
||||||
showChange: Whether to display a link for changing the cover art.
|
showChange: Whether to display a link for changing the cover art.
|
||||||
appearAfter: Fade in after this many milliseconds, or nil if no fading in should happen.
|
appearAfter: Fade in after this many milliseconds, or nil if no fading in should happen.
|
||||||
|
hideOverflow: Hide cover art overflow when height is greater than width
|
||||||
--%>
|
--%>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${empty param.coverArtSize}">
|
<c:when test="${empty param.coverArtSize}">
|
||||||
@@ -32,7 +33,7 @@ PARAMETERS
|
|||||||
<str:randomString count="5" type="alphabet" var="playId"/>
|
<str:randomString count="5" type="alphabet" var="playId"/>
|
||||||
|
|
||||||
<div class="coverart dropshadow">
|
<div class="coverart dropshadow">
|
||||||
<div style="width:${size};max-width:${size};height:${size};max-height:${size};cursor:pointer" title="${param.caption1}" id="${divId}">
|
<div style="width:${size};max-width:${size};height:${size};max-height:${size};cursor:pointer;<c:if test="${param.hideOverflow}">overflow:hidden</c:if>;" title="${param.caption1}" id="${divId}">
|
||||||
|
|
||||||
<c:if test="${not empty param.albumId}">
|
<c:if test="${not empty param.albumId}">
|
||||||
<c:url value="main.view" var="targetUrl">
|
<c:url value="main.view" var="targetUrl">
|
||||||
|
|||||||
@@ -7,7 +7,9 @@
|
|||||||
|
|
||||||
<script type="text/javascript" language="javascript">
|
<script type="text/javascript" language="javascript">
|
||||||
function init() {
|
function init() {
|
||||||
setTimeout("refresh()", 60000);
|
<c:if test="${model.listReloadDelay gt 0}">
|
||||||
|
setTimeout("refresh()", ${model.listReloadDelay * 1000});
|
||||||
|
</c:if>
|
||||||
|
|
||||||
<c:if test="${not model.musicFoldersExist}">
|
<c:if test="${not model.musicFoldersExist}">
|
||||||
$().toastmessage("showNoticeToast", "<fmt:message key="top.missing"/>");
|
$().toastmessage("showNoticeToast", "<fmt:message key="top.missing"/>");
|
||||||
@@ -109,6 +111,7 @@
|
|||||||
<c:param name="coverArtSize" value="${model.coverArtSize}"/>
|
<c:param name="coverArtSize" value="${model.coverArtSize}"/>
|
||||||
<c:param name="showLink" value="true"/>
|
<c:param name="showLink" value="true"/>
|
||||||
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
||||||
|
<c:param name="hideOverflow" value="true"/>
|
||||||
</c:import>
|
</c:import>
|
||||||
|
|
||||||
<c:if test="${not empty album.rating}">
|
<c:if test="${not empty album.rating}">
|
||||||
|
|||||||
@@ -179,6 +179,13 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<table class="indent">
|
||||||
|
<tr>
|
||||||
|
<td><fmt:message key="personalsettings.listreloaddelay"/></td>
|
||||||
|
<td><form:input path="listReloadDelay" size="24"/></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
<table id="lastFmTable" style="padding-left:2em">
|
<table id="lastFmTable" style="padding-left:2em">
|
||||||
<tr>
|
<tr>
|
||||||
<td><fmt:message key="personalsettings.lastfmusername"/></td>
|
<td><fmt:message key="personalsettings.lastfmusername"/></td>
|
||||||
|
|||||||
@@ -132,6 +132,14 @@
|
|||||||
</td>
|
</td>
|
||||||
<td><c:import url="helpToolTip.jsp"><c:param name="topic" value="autocontrol"/></c:import></td>
|
<td><c:import url="helpToolTip.jsp"><c:param name="topic" value="autocontrol"/></c:import></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<form:checkbox path="m3uBomEnabled" id="m3uBomEnabled" cssClass="checkbox"/>
|
||||||
|
<label for="m3uBomEnabled"><fmt:message key="playersettings.m3ubom"/></label>
|
||||||
|
</td>
|
||||||
|
<td><c:import url="helpToolTip.jsp"><c:param name="topic" value="m3ubom"/></c:import></td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<c:if test="${not empty command.allTranscodings}">
|
<c:if test="${not empty command.allTranscodings}">
|
||||||
|
|||||||
@@ -73,6 +73,7 @@
|
|||||||
<c:param name="coverArtSize" value="${model.coverArtSize}"/>
|
<c:param name="coverArtSize" value="${model.coverArtSize}"/>
|
||||||
<c:param name="showLink" value="true"/>
|
<c:param name="showLink" value="true"/>
|
||||||
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
<c:param name="appearAfter" value="${loopStatus.count * 30}"/>
|
||||||
|
<c:param name="hideOverflow" value="true"/>
|
||||||
</c:import>
|
</c:import>
|
||||||
</div>
|
</div>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<bean id="leftController" class="org.libresonic.player.controller.LeftController">
|
<bean id="leftController" class="org.libresonic.player.controller.LeftController">
|
||||||
<property name="viewName" value="left"/>
|
<property name="viewName" value="left"/>
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.libresonic.player</groupId>
|
<groupId>org.libresonic.player</groupId>
|
||||||
<artifactId>libresonic</artifactId>
|
<artifactId>libresonic</artifactId>
|
||||||
<version>6.1.beta1</version>
|
<version>6.1.beta2</version>
|
||||||
<name>Libresonic</name>
|
<name>Libresonic</name>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<organization>
|
<organization>
|
||||||
@@ -212,6 +212,10 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<failOnWarning>${failOnDependencyWarning}</failOnWarning>
|
<failOnWarning>${failOnDependencyWarning}</failOnWarning>
|
||||||
<ignoreNonCompile>true</ignoreNonCompile>
|
<ignoreNonCompile>true</ignoreNonCompile>
|
||||||
|
<ignoredUnusedDeclaredDependencies>
|
||||||
|
<ignoredUnusedDeclaredDependency>com.sun.mail:javax.mail*</ignoredUnusedDeclaredDependency>
|
||||||
|
<ignoredUnusedDeclaredDependency>org.seamless:seamless-http*</ignoredUnusedDeclaredDependency>
|
||||||
|
</ignoredUnusedDeclaredDependencies>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
|
|||||||
Reference in New Issue
Block a user