Compare commits
315 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eb5a6913e0 | ||
|
|
34d7cb949d | ||
|
|
3c935a0b67 | ||
|
|
982cf044ef | ||
|
|
7a21e9816c | ||
|
|
fd6701079e | ||
|
|
757cfff0e6 | ||
|
|
560277663f | ||
|
|
a10d0336c5 | ||
|
|
114ab6834c | ||
|
|
840a96255c | ||
|
|
fd857b1298 | ||
|
|
281b4512e8 | ||
|
|
ec7081c4b5 | ||
|
|
7dff44bcb4 | ||
|
|
e62c7141af | ||
|
|
dd3455d273 | ||
|
|
e9cd8317aa | ||
|
|
ac7fe91593 | ||
|
|
c349c28e12 | ||
|
|
cf302edabe | ||
|
|
20180eb890 | ||
|
|
60b5f82adb | ||
|
|
a0b07196de | ||
|
|
74907d4067 | ||
|
|
f83a7a2ef7 | ||
|
|
b8cd0b024c | ||
|
|
397718fbb4 | ||
|
|
a41ed14fea | ||
|
|
e8f0cfb4bd | ||
|
|
ff32b0e1c9 | ||
|
|
e505ed5b7f | ||
|
|
6ef5f824da | ||
|
|
7b8801f6db | ||
|
|
c8e33aa6c7 | ||
|
|
45ea215aaf | ||
|
|
8b3da58969 | ||
|
|
04981bdcef | ||
|
|
39be4fec4e | ||
|
|
f9e7958e8b | ||
|
|
3d8c0ca663 | ||
|
|
febb6b19dd | ||
|
|
96c4431534 | ||
|
|
1a8ca2242c | ||
|
|
888545e857 | ||
|
|
c5e9e60ab0 | ||
|
|
afbbd07a13 | ||
|
|
cf96a0a84e | ||
|
|
0329c7d876 | ||
|
|
0c25412f03 | ||
|
|
bbf04c4687 | ||
|
|
33b683d037 | ||
|
|
21ec54408e | ||
|
|
f0f46169e4 | ||
|
|
fa6a3494ae | ||
|
|
4c0206324d | ||
|
|
5867b51f3b | ||
|
|
c56c213da7 | ||
|
|
9d070bd33c | ||
|
|
986fd25942 | ||
|
|
bbcd79e49f | ||
|
|
4dabf47822 | ||
|
|
db258d4ecc | ||
|
|
8b237db690 | ||
|
|
416350c004 | ||
|
|
8d63377e78 | ||
|
|
377176df05 | ||
|
|
95da0078b3 | ||
|
|
6392b87afc | ||
|
|
ba04d2adfe | ||
|
|
517ce1a726 | ||
|
|
36492cbff5 | ||
|
|
4b46aa08ac | ||
|
|
1a9a80c0da | ||
|
|
32a30019a7 | ||
|
|
bb72131354 | ||
|
|
3a8d72cab4 | ||
|
|
f5f7a8e63b | ||
|
|
570c4f3a1f | ||
|
|
172164b74b | ||
|
|
49835ae234 | ||
|
|
c4f1e910f8 | ||
|
|
3a621b61c6 | ||
|
|
c28f0d6788 | ||
|
|
2db9224ffc | ||
|
|
043b1df585 | ||
|
|
0626200787 | ||
|
|
b7ee61a8df | ||
|
|
6e1cdaf50e | ||
|
|
e770f802e7 | ||
|
|
8e4cf77fcb | ||
|
|
bc3bd42ce3 | ||
|
|
f73e0ba307 | ||
|
|
5703b5e8d4 | ||
|
|
cecbb2cf72 | ||
|
|
8638e4751d | ||
|
|
3b69e3b029 | ||
|
|
dced21c8e4 | ||
|
|
dab26af294 | ||
|
|
65f118e561 | ||
|
|
67f533b9f6 | ||
|
|
93573bcdb7 | ||
|
|
2263801c55 | ||
|
|
10c34d0440 | ||
|
|
4430ef3847 | ||
|
|
8e331b908d | ||
|
|
dbc6fb58e0 | ||
|
|
db298ab684 | ||
|
|
170a6095e6 | ||
|
|
6dd1bf3281 | ||
|
|
b1500cebfd | ||
|
|
6202bdbc28 | ||
|
|
39bfb61b95 | ||
|
|
fa79524ed4 | ||
|
|
ab5b70e52b | ||
|
|
4f8cd53b83 | ||
|
|
afb6221e5e | ||
|
|
f78aedc30d | ||
|
|
80ff2c8ff7 | ||
|
|
579a77dfc9 | ||
|
|
f902d967a6 | ||
|
|
0899e0b0bf | ||
|
|
65d6f8616b | ||
|
|
5c27f0834c | ||
|
|
a5f7b56bf2 | ||
|
|
63ec92038c | ||
|
|
464ac36ddb | ||
|
|
840bc2ef7a | ||
|
|
e248504528 | ||
|
|
f4f3d9ca48 | ||
|
|
e727ee414b | ||
|
|
1e9295b386 | ||
|
|
b980cdc2c2 | ||
|
|
fbe722facd | ||
|
|
1897d8e0c0 | ||
|
|
3745a152aa | ||
|
|
a7731acb08 | ||
|
|
16dd5deed4 | ||
|
|
c9f70650a0 | ||
|
|
eaa84253df | ||
|
|
45abcd7385 | ||
|
|
8a633aa648 | ||
|
|
05e092062d | ||
|
|
e83602a05c | ||
|
|
abf8666e24 | ||
|
|
af1ccc6669 | ||
|
|
cdcbfbff68 | ||
|
|
6860940afc | ||
|
|
bfc2ee3663 | ||
|
|
b104622081 | ||
|
|
a861387bd7 | ||
|
|
b0f2260fad | ||
|
|
97f0d98ffd | ||
|
|
1ad58a029c | ||
|
|
4c27da0433 | ||
|
|
faf69b43c3 | ||
|
|
7fff561268 | ||
|
|
5e1360a65b | ||
|
|
cc92d2f546 | ||
|
|
def75a250f | ||
|
|
15cd7caf9b | ||
|
|
41a51530ef | ||
|
|
3a101941b3 | ||
|
|
0976fee4df | ||
|
|
f87da777da | ||
|
|
e1c2bf0890 | ||
|
|
b829defb30 | ||
|
|
fa8770d2a7 | ||
|
|
222c8a65af | ||
|
|
76f5b67ac4 | ||
|
|
1791d49efe | ||
|
|
64e1b5df09 | ||
|
|
e1ff077623 | ||
|
|
1361072558 | ||
|
|
5119434d21 | ||
|
|
b29540b14e | ||
|
|
e69785bb89 | ||
|
|
76465fee07 | ||
|
|
b52c459ebb | ||
|
|
1d73982545 | ||
|
|
74f6c45f36 | ||
|
|
0490b528e4 | ||
|
|
ffa1e14449 | ||
|
|
b8fe89b2f4 | ||
|
|
94b293202c | ||
|
|
7ef143a642 | ||
|
|
057f6916e9 | ||
|
|
e24e892cb3 | ||
|
|
78976b06e2 | ||
|
|
96cfcd5b2b | ||
|
|
12bda0122c | ||
|
|
4ac4e5abf2 | ||
|
|
268f0f53a8 | ||
|
|
71521f3428 | ||
|
|
6101fb2bef | ||
|
|
8f6aa0896b | ||
|
|
b8f0af5b2e | ||
|
|
32730f6c41 | ||
|
|
7caa99f8f2 | ||
|
|
4f8e2ab478 | ||
|
|
5c44f392ca | ||
|
|
174d21fd4e | ||
|
|
c2ed6d47f1 | ||
|
|
0f6f717d09 | ||
|
|
d7fb637f68 | ||
|
|
fce9086b27 | ||
|
|
97586cd2c8 | ||
|
|
b74458f0b0 | ||
|
|
7c7a0fceaf | ||
|
|
425a8880cd | ||
|
|
23fe90ec64 | ||
|
|
c01ec5d039 | ||
|
|
4f284165c2 | ||
|
|
2a62ccff11 | ||
|
|
d09cf472dd | ||
|
|
5c721ae6f5 | ||
|
|
2bb8fcdb5f | ||
|
|
6eda93098b | ||
|
|
6344f554d6 | ||
|
|
7e4c1f374c | ||
|
|
28eaab7f7d | ||
|
|
1937944f7e | ||
|
|
3b4b84fdab | ||
|
|
32325bb49c | ||
|
|
c01c1e93f9 | ||
|
|
eac096019f | ||
|
|
9f9389e846 | ||
|
|
a71317881f | ||
|
|
7092824c96 | ||
|
|
0ff998bbd7 | ||
|
|
fc318ad211 | ||
|
|
73323335cb | ||
|
|
ef57c5523d | ||
|
|
846f4a7222 | ||
|
|
05036778d6 | ||
|
|
52df661238 | ||
|
|
7957dc237e | ||
|
|
3fe419ba2f | ||
|
|
61944656b8 | ||
|
|
1cb997b66d | ||
|
|
89463808db | ||
|
|
6aca66d8cf | ||
|
|
38f8102fb3 | ||
|
|
e709499240 | ||
|
|
0b714d5e52 | ||
|
|
98e4f0c6dc | ||
|
|
d82d0af565 | ||
|
|
d8abb7039d | ||
|
|
84dc11048d | ||
|
|
bad915bbaa | ||
|
|
287dea2d36 | ||
|
|
a0b937769d | ||
|
|
6acef4a406 | ||
|
|
8b77eb9850 | ||
|
|
6f22836dcb | ||
|
|
a4347c8878 | ||
|
|
836f7eff09 | ||
|
|
c993bd472d | ||
|
|
431ab92a02 | ||
|
|
94f469a6b1 | ||
|
|
3fec1c6890 | ||
|
|
f8316911bd | ||
|
|
642d1f6be5 | ||
|
|
5a82c3a130 | ||
|
|
6a8174afac | ||
|
|
f4c86634f7 | ||
|
|
322e588a4e | ||
|
|
822dee7a13 | ||
|
|
101e179788 | ||
|
|
57abee6cf0 | ||
|
|
b615847b09 | ||
|
|
ffef87e249 | ||
|
|
ba3b8df4c9 | ||
|
|
40175d3e54 | ||
|
|
06b047cfe6 | ||
|
|
1f4d62ab47 | ||
|
|
a7b826bd4f | ||
|
|
407481faa6 | ||
|
|
305b68546c | ||
|
|
136c41c6aa | ||
|
|
587b25b18b | ||
|
|
beaa40ad65 | ||
|
|
1389a5a238 | ||
|
|
2f34ff8a9f | ||
|
|
d3626b0e7c | ||
|
|
bb4529b6f1 | ||
|
|
dd94125d52 | ||
|
|
a7149e3740 | ||
|
|
b64d041385 | ||
|
|
cc04bdfbc5 | ||
|
|
d8c772ed5e | ||
|
|
dfcc4eeebd | ||
|
|
e491841d4a | ||
|
|
ccb72837b3 | ||
|
|
6560fc9d05 | ||
|
|
14d5879735 | ||
|
|
7fa8bef3de | ||
|
|
966caae727 | ||
|
|
a14484ee03 | ||
|
|
fb9b42ab12 | ||
|
|
6974abdb95 | ||
|
|
65efdeb1df | ||
|
|
54a39ea0a9 | ||
|
|
641350cbde | ||
|
|
06ece8f5ee | ||
|
|
ca87f1c47a | ||
|
|
c38ddb5d00 | ||
|
|
1acd7c4a01 | ||
|
|
d92c2ebdf7 | ||
|
|
8f19e9408e | ||
|
|
3ecb47da5a | ||
|
|
ae03b42c6d | ||
|
|
ee4eb9bb07 | ||
|
|
a0be2e0879 | ||
|
|
a3414d7156 |
24
.gitignore
vendored
@@ -1,19 +1,27 @@
|
||||
#runtime files
|
||||
commafeed.log
|
||||
derby.log
|
||||
data/
|
||||
java_pid*
|
||||
# config gile
|
||||
config.yml
|
||||
|
||||
# Maven build directory
|
||||
# build directory
|
||||
target
|
||||
deployments/ROOT.war
|
||||
|
||||
# log files
|
||||
log
|
||||
|
||||
# jetty sessions
|
||||
sessions
|
||||
|
||||
# node
|
||||
node
|
||||
node_modules
|
||||
|
||||
# bower
|
||||
src/main/app/lib
|
||||
|
||||
# Eclipse files
|
||||
.project
|
||||
.classpath
|
||||
.settings
|
||||
.factorypath
|
||||
/target
|
||||
|
||||
# IntelliJ Idea files
|
||||
.idea
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
For information about which action hooks are supported, consult the OpenShift documentation:
|
||||
|
||||
https://github.com/openshift/origin-server/blob/master/node/README.writing_applications.md
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This is a simple build script and will be executed on your CI system if
|
||||
# available. Otherwise it will execute while your application is stopped
|
||||
# before the deploy step. This script gets executed directly, so it
|
||||
# could be python, php, ruby, etc.
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This deploy hook gets executed after dependencies are resolved and the
|
||||
# build hook has been run but before the application has been started back
|
||||
# up again. This script gets executed directly, so it could be python, php,
|
||||
# ruby, etc.
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This is a simple post deploy hook executed after your application
|
||||
# is deployed and started. This script gets executed directly, so
|
||||
# it could be python, php, ruby, etc.
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This is a simple script and will be executed on your CI system if
|
||||
# available. Otherwise it will execute while your application is stopped
|
||||
# before the build step. This script gets executed directly, so it
|
||||
# could be python, php, ruby, etc.
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This is a simple bash script and will be sourced prior to building
|
||||
# your application. This script can be used to modify the Maven build
|
||||
# arguments for non-CI/Jenkins builds by exporting MAVEN_ARGS. The default
|
||||
# is "clean package -Popenshift -DskipTests"
|
||||
export MAVEN_ARGS="clean package -Popenshift -Pprod -DskipTests=true"
|
||||
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m -Dmaven.artifact.threads=20"
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# The pre_start_cartridge and pre_stop_cartridge hooks are *SOURCED*
|
||||
# immediately before (re)starting or stopping the specified cartridge.
|
||||
# They are able to make any desired environment variable changes as
|
||||
# well as other adjustments to the application environment.
|
||||
|
||||
# The post_start_cartridge and post_stop_cartridge hooks are executed
|
||||
# immediately after (re)starting or stopping the specified cartridge.
|
||||
|
||||
# Exercise caution when adding commands to these hooks. They can
|
||||
# prevent your application from stopping cleanly or starting at all.
|
||||
# Application start and stop is subject to different timeouts
|
||||
# throughout the system.
|
||||
@@ -1,3 +0,0 @@
|
||||
Place your jboss-as7 modules in this directory. This directory is added to the
|
||||
module path of the jboss-as7 server associated with your application. It has the
|
||||
same structure as the jboss-as7/modules directory.
|
||||
@@ -1,517 +0,0 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
|
||||
<server xmlns="urn:jboss:domain:1.3">
|
||||
|
||||
<extensions>
|
||||
<extension module="org.jboss.as.clustering.infinispan" />
|
||||
<extension module="org.jboss.as.clustering.jgroups" />
|
||||
<extension module="org.jboss.as.cmp" />
|
||||
<extension module="org.jboss.as.configadmin" />
|
||||
<extension module="org.jboss.as.connector" />
|
||||
<extension module="org.jboss.as.deployment-scanner" />
|
||||
<extension module="org.jboss.as.ee" />
|
||||
<extension module="org.jboss.as.ejb3" />
|
||||
<extension module="org.jboss.as.jacorb" />
|
||||
<extension module="org.jboss.as.jaxr" />
|
||||
<extension module="org.jboss.as.jaxrs" />
|
||||
<extension module="org.jboss.as.jdr" />
|
||||
<extension module="org.jboss.as.jmx" />
|
||||
<extension module="org.jboss.as.jpa" />
|
||||
<extension module="org.jboss.as.jsr77" />
|
||||
<extension module="org.jboss.as.logging" />
|
||||
<extension module="org.jboss.as.mail" />
|
||||
<extension module="org.jboss.as.messaging" />
|
||||
<extension module="org.jboss.as.naming" />
|
||||
<extension module="org.jboss.as.osgi" />
|
||||
<extension module="org.jboss.as.pojo" />
|
||||
<extension module="org.jboss.as.remoting" />
|
||||
<extension module="org.jboss.as.sar" />
|
||||
<extension module="org.jboss.as.security" />
|
||||
<extension module="org.jboss.as.threads" />
|
||||
<extension module="org.jboss.as.transactions" />
|
||||
<extension module="org.jboss.as.web" />
|
||||
<extension module="org.jboss.as.webservices" />
|
||||
<extension module="org.jboss.as.weld" />
|
||||
</extensions>
|
||||
|
||||
<system-properties>
|
||||
<property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION" value="on"/>
|
||||
</system-properties>
|
||||
|
||||
<management>
|
||||
<management-interfaces>
|
||||
<native-interface>
|
||||
<socket-binding native="management-native"/>
|
||||
</native-interface>
|
||||
<http-interface>
|
||||
<socket-binding http="management-http"/>
|
||||
</http-interface>
|
||||
</management-interfaces>
|
||||
</management>
|
||||
|
||||
<profile>
|
||||
<subsystem xmlns="urn:jboss:domain:logging:1.1">
|
||||
<!--console-handler name="CONSOLE"> <level name="INFO"/> <formatter> <pattern-formatter
|
||||
pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/> </formatter> </console-handler -->
|
||||
<periodic-rotating-file-handler name="FILE">
|
||||
<formatter>
|
||||
<pattern-formatter
|
||||
pattern="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n" />
|
||||
</formatter>
|
||||
<file relative-to="jboss.server.log.dir" path="server.log" />
|
||||
<suffix value=".yyyy-MM-dd" />
|
||||
<append value="true" />
|
||||
</periodic-rotating-file-handler>
|
||||
<logger category="com.arjuna">
|
||||
<level name="WARN" />
|
||||
</logger>
|
||||
<logger category="org.apache.tomcat.util.modeler">
|
||||
<level name="WARN" />
|
||||
</logger>
|
||||
<logger category="sun.rmi">
|
||||
<level name="WARN" />
|
||||
</logger>
|
||||
<logger category="jacorb">
|
||||
<level name="WARN" />
|
||||
</logger>
|
||||
<logger category="jacorb.config">
|
||||
<level name="ERROR" />
|
||||
</logger>
|
||||
<root-logger>
|
||||
<level name="INFO" />
|
||||
<handlers>
|
||||
<!--handler name="CONSOLE"/ -->
|
||||
<handler name="FILE" />
|
||||
</handlers>
|
||||
</root-logger>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:cmp:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:configadmin:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:datasources:1.1">
|
||||
<datasources>
|
||||
<datasource jndi-name="java:jboss/datasources/MysqlDS"
|
||||
enabled="${mysql.enabled}" use-java-context="true" pool-name="MysqlDS">
|
||||
<connection-url>jdbc:mysql://${env.OPENSHIFT_MYSQL_DB_HOST}:${env.OPENSHIFT_MYSQL_DB_PORT}/${env.OPENSHIFT_APP_NAME}?useUnicode=true&characterEncoding=UTF-8
|
||||
</connection-url>
|
||||
<driver>mysql</driver>
|
||||
<security>
|
||||
<user-name>${env.OPENSHIFT_MYSQL_DB_USERNAME}</user-name>
|
||||
<password>${env.OPENSHIFT_MYSQL_DB_PASSWORD}</password>
|
||||
</security>
|
||||
</datasource>
|
||||
<drivers>
|
||||
<driver name="mysql" module="com.mysql.jdbc">
|
||||
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
|
||||
</driver>
|
||||
</drivers>
|
||||
</datasources>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:deployment-scanner:1.1">
|
||||
<deployment-scanner path="deployments"
|
||||
relative-to="jboss.server.base.dir" scan-interval="5000"
|
||||
deployment-timeout="300" />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:ee:1.1">
|
||||
<spec-descriptor-property-replacement>false
|
||||
</spec-descriptor-property-replacement>
|
||||
<jboss-descriptor-property-replacement>true
|
||||
</jboss-descriptor-property-replacement>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:ejb3:1.3">
|
||||
<session-bean>
|
||||
<stateless>
|
||||
<bean-instance-pool-ref pool-name="slsb-strict-max-pool" />
|
||||
</stateless>
|
||||
<stateful default-access-timeout="5000" cache-ref="simple"
|
||||
clustered-cache-ref="clustered" />
|
||||
<singleton default-access-timeout="5000" />
|
||||
</session-bean>
|
||||
<mdb>
|
||||
<resource-adapter-ref resource-adapter-name="hornetq-ra" />
|
||||
<bean-instance-pool-ref pool-name="mdb-strict-max-pool" />
|
||||
</mdb>
|
||||
<pools>
|
||||
<bean-instance-pools>
|
||||
<strict-max-pool name="slsb-strict-max-pool"
|
||||
max-pool-size="20" instance-acquisition-timeout="5"
|
||||
instance-acquisition-timeout-unit="MINUTES" />
|
||||
<strict-max-pool name="mdb-strict-max-pool"
|
||||
max-pool-size="20" instance-acquisition-timeout="5"
|
||||
instance-acquisition-timeout-unit="MINUTES" />
|
||||
</bean-instance-pools>
|
||||
</pools>
|
||||
<caches>
|
||||
<cache name="simple" aliases="NoPassivationCache" />
|
||||
<cache name="passivating" passivation-store-ref="file"
|
||||
aliases="SimpleStatefulCache" />
|
||||
<cache name="clustered" passivation-store-ref="infinispan"
|
||||
aliases="StatefulTreeCache" />
|
||||
</caches>
|
||||
<passivation-stores>
|
||||
<file-passivation-store name="file" />
|
||||
<cluster-passivation-store name="infinispan"
|
||||
cache-container="ejb" />
|
||||
</passivation-stores>
|
||||
<async thread-pool-name="default" />
|
||||
<timer-service thread-pool-name="default">
|
||||
<data-store path="timer-service-data" relative-to="jboss.server.data.dir" />
|
||||
</timer-service>
|
||||
<remote connector-ref="remoting-connector" thread-pool-name="default" />
|
||||
<thread-pools>
|
||||
<thread-pool name="default">
|
||||
<max-threads count="10" />
|
||||
<keepalive-time time="100" unit="milliseconds" />
|
||||
</thread-pool>
|
||||
</thread-pools>
|
||||
<iiop enable-by-default="false" use-qualified-name="false" />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:infinispan:1.3">
|
||||
<cache-container name="cluster" aliases="ha-partition"
|
||||
default-cache="default">
|
||||
<transport lock-timeout="60000" />
|
||||
<replicated-cache name="default" mode="SYNC"
|
||||
batching="true">
|
||||
<locking isolation="REPEATABLE_READ" />
|
||||
</replicated-cache>
|
||||
</cache-container>
|
||||
<cache-container name="web" aliases="standard-session-cache"
|
||||
default-cache="repl">
|
||||
<transport lock-timeout="60000" />
|
||||
<replicated-cache name="repl" mode="ASYNC"
|
||||
batching="true">
|
||||
<file-store />
|
||||
</replicated-cache>
|
||||
<replicated-cache name="sso" mode="SYNC" batching="true" />
|
||||
<distributed-cache name="dist" mode="ASYNC"
|
||||
batching="true" l1-lifespan="0">
|
||||
<file-store />
|
||||
</distributed-cache>
|
||||
</cache-container>
|
||||
<cache-container name="ejb" aliases="sfsb sfsb-cache"
|
||||
default-cache="repl">
|
||||
<transport lock-timeout="60000" />
|
||||
<replicated-cache name="repl" mode="ASYNC"
|
||||
batching="true">
|
||||
<eviction strategy="LRU" max-entries="10000" />
|
||||
<file-store />
|
||||
</replicated-cache>
|
||||
<!-- ~ Clustered cache used internally by EJB subsytem for managing the
|
||||
client-mapping(s) of ~ the socketbinding referenced by the EJB remoting connector -->
|
||||
<replicated-cache name="remote-connector-client-mappings"
|
||||
mode="SYNC" batching="true" />
|
||||
<distributed-cache name="dist" mode="ASYNC"
|
||||
batching="true" l1-lifespan="0">
|
||||
<eviction strategy="LRU" max-entries="10000" />
|
||||
<file-store />
|
||||
</distributed-cache>
|
||||
</cache-container>
|
||||
<cache-container name="hibernate" default-cache="local-query"
|
||||
module="org.jboss.as.jpa.hibernate:4">
|
||||
<transport lock-timeout="60000" />
|
||||
<local-cache name="local-query">
|
||||
<transaction mode="NONE" />
|
||||
<eviction strategy="LRU" max-entries="10000" />
|
||||
<expiration max-idle="100000" />
|
||||
</local-cache>
|
||||
<invalidation-cache name="entity" mode="SYNC">
|
||||
<transaction mode="NON_XA" />
|
||||
<eviction strategy="LRU" max-entries="10000" />
|
||||
<expiration max-idle="100000" />
|
||||
</invalidation-cache>
|
||||
<replicated-cache name="timestamps" mode="ASYNC">
|
||||
<transaction mode="NONE" />
|
||||
<eviction strategy="NONE" />
|
||||
</replicated-cache>
|
||||
</cache-container>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jacorb:1.2">
|
||||
<orb>
|
||||
<initializers transactions="spec" security="on" />
|
||||
</orb>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jaxr:1.1">
|
||||
<connection-factory jndi-name="java:jboss/jaxr/ConnectionFactory" />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jaxrs:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:jca:1.1">
|
||||
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
|
||||
<bean-validation enabled="true"/>
|
||||
<default-workmanager>
|
||||
<short-running-threads>
|
||||
<core-threads count="50" />
|
||||
<queue-length count="50" />
|
||||
<max-threads count="50" />
|
||||
<keepalive-time time="10" unit="seconds" />
|
||||
</short-running-threads>
|
||||
<long-running-threads>
|
||||
<core-threads count="50" />
|
||||
<queue-length count="50" />
|
||||
<max-threads count="50" />
|
||||
<keepalive-time time="10" unit="seconds" />
|
||||
</long-running-threads>
|
||||
</default-workmanager>
|
||||
<cached-connection-manager />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jdr:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:jgroups:1.1"
|
||||
default-stack="tcp">
|
||||
<stack name="tcp">
|
||||
<transport type="TCP" socket-binding="jgroups-tcp">
|
||||
<property name="external_addr">${env.OPENSHIFT_GEAR_DNS}</property>
|
||||
<property name="external_port">${env.OPENSHIFT_JBOSSEAP_CLUSTER_PROXY_PORT}
|
||||
</property>
|
||||
<property name="bind_port">7600</property>
|
||||
<property name="bind_addr">${env.OPENSHIFT_INTERNAL_IP}</property>
|
||||
</transport>
|
||||
<protocol type="TCPPING">
|
||||
<property name="timeout">3000</property>
|
||||
<property name="initial_hosts">${env.OPENSHIFT_JBOSSEAP_CLUSTER}</property>
|
||||
<property name="port_range">0</property>
|
||||
<property name="num_initial_members">1</property>
|
||||
</protocol>
|
||||
<protocol type="MERGE2" />
|
||||
<protocol type="FD" />
|
||||
<protocol type="VERIFY_SUSPECT" />
|
||||
<protocol type="BARRIER" />
|
||||
<protocol type="pbcast.NAKACK" />
|
||||
<protocol type="UNICAST2" />
|
||||
<protocol type="pbcast.STABLE" />
|
||||
<protocol type="AUTH">
|
||||
<property name="auth_class">org.jgroups.auth.MD5Token</property>
|
||||
<property name="token_hash">SHA</property>
|
||||
<property name="auth_value">${env.OPENSHIFT_APP_UUID}</property>
|
||||
</protocol>
|
||||
<protocol type="pbcast.GMS" />
|
||||
<protocol type="UFC" />
|
||||
<protocol type="MFC" />
|
||||
<protocol type="FRAG2" />
|
||||
<!--protocol type="pbcast.STATE_TRANSFER"/> <protocol type="pbcast.FLUSH"/ -->
|
||||
</stack>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jmx:1.1">
|
||||
<show-model value="true" />
|
||||
<remoting-connector />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jpa:1.0">
|
||||
<jpa default-datasource="" />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:jsr77:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:mail:1.0">
|
||||
<mail-session jndi-name="java:jboss/mail/Default">
|
||||
<smtp-server outbound-socket-binding-ref="mail-smtp" />
|
||||
</mail-session>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:messaging:1.2">
|
||||
<hornetq-server>
|
||||
<clustered>false</clustered>
|
||||
<persistence-enabled>false</persistence-enabled>
|
||||
<security-enabled>false</security-enabled>
|
||||
<journal-file-size>102400</journal-file-size>
|
||||
<journal-min-files>2</journal-min-files>
|
||||
|
||||
<thread-pool-max-size>${messaging.thread.pool.max.size}</thread-pool-max-size>
|
||||
<scheduled-thread-pool-max-size>${messaging.scheduled.thread.pool.max.size}</scheduled-thread-pool-max-size>
|
||||
|
||||
<connectors>
|
||||
<netty-connector name="netty" socket-binding="messaging" />
|
||||
<netty-connector name="netty-throughput"
|
||||
socket-binding="messaging-throughput">
|
||||
<param key="batch-delay" value="50" />
|
||||
</netty-connector>
|
||||
<in-vm-connector name="in-vm" server-id="0" />
|
||||
</connectors>
|
||||
<acceptors>
|
||||
<netty-acceptor name="netty" socket-binding="messaging" />
|
||||
<netty-acceptor name="netty-throughput"
|
||||
socket-binding="messaging-throughput">
|
||||
<param key="batch-delay" value="50" />
|
||||
<param key="direct-deliver" value="false" />
|
||||
</netty-acceptor>
|
||||
<in-vm-acceptor name="in-vm" server-id="0" />
|
||||
</acceptors>
|
||||
<!--broadcast-groups> <broadcast-group name="bg-group1"> <socket-binding>messaging-group</socket-binding>
|
||||
<broadcast-period>5000</broadcast-period> <connector-ref>netty</connector-ref>
|
||||
</broadcast-group> </broadcast-groups> <discovery-groups> <discovery-group
|
||||
name="dg-group1"> <socket-binding>messaging-group</socket-binding> <refresh-timeout>10000</refresh-timeout>
|
||||
</discovery-group> </discovery-groups> <cluster-connections> <cluster-connection
|
||||
name="my-cluster"> <address>jms</address> <connector-ref>netty</connector-ref>
|
||||
<discovery-group-ref discovery-group-name="dg-group1"/> </cluster-connection>
|
||||
</cluster-connections -->
|
||||
<address-settings>
|
||||
<!--default for catch all -->
|
||||
<address-setting match="#">
|
||||
<dead-letter-address>jms.queue.DLQ</dead-letter-address>
|
||||
<expiry-address>jms.queue.ExpiryQueue</expiry-address>
|
||||
<redelivery-delay>0</redelivery-delay>
|
||||
<redistribution-delay>1000</redistribution-delay>
|
||||
<max-size-bytes>10485760</max-size-bytes>
|
||||
<address-full-policy>BLOCK</address-full-policy>
|
||||
<message-counter-history-day-limit>10
|
||||
</message-counter-history-day-limit>
|
||||
</address-setting>
|
||||
</address-settings>
|
||||
<jms-connection-factories>
|
||||
<connection-factory name="InVmConnectionFactory">
|
||||
<connectors>
|
||||
<connector-ref connector-name="in-vm" />
|
||||
</connectors>
|
||||
<entries>
|
||||
<entry name="java:/ConnectionFactory" />
|
||||
</entries>
|
||||
</connection-factory>
|
||||
<!--
|
||||
<connection-factory name="RemoteConnectionFactory">
|
||||
<connectors>
|
||||
<connector-ref connector-name="netty" />
|
||||
</connectors>
|
||||
<entries>
|
||||
<entry name="java:jboss/exported/jms/RemoteConnectionFactory" />
|
||||
</entries>
|
||||
</connection-factory>
|
||||
-->
|
||||
<pooled-connection-factory name="hornetq-ra">
|
||||
<transaction mode="xa" />
|
||||
<connectors>
|
||||
<connector-ref connector-name="in-vm" />
|
||||
</connectors>
|
||||
<entries>
|
||||
<entry name="java:/JmsXA" />
|
||||
</entries>
|
||||
</pooled-connection-factory>
|
||||
</jms-connection-factories>
|
||||
<jms-destinations>
|
||||
<jms-queue name="refreshQueue">
|
||||
<entry name="jms/refreshQueue"/>
|
||||
<entry name="java:jboss/exported/jms/refreshQueue"/>
|
||||
</jms-queue>
|
||||
</jms-destinations>
|
||||
</hornetq-server>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:naming:1.2">
|
||||
<remote-naming />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:osgi:1.2" activation="lazy">
|
||||
<properties>
|
||||
<!-- Specifies the beginning start level of the framework -->
|
||||
<property name="org.osgi.framework.startlevel.beginning">1</property>
|
||||
</properties>
|
||||
<capabilities>
|
||||
<!-- modules registered with the OSGi layer on startup -->
|
||||
<capability name="javax.servlet.api:v25" />
|
||||
<capability name="javax.transaction.api" />
|
||||
<!-- bundles started in startlevel 1 -->
|
||||
<capability name="org.apache.felix.log" startlevel="1" />
|
||||
<capability name="org.jboss.osgi.logging" startlevel="1" />
|
||||
<capability name="org.apache.felix.configadmin"
|
||||
startlevel="1" />
|
||||
<capability name="org.jboss.as.osgi.configadmin"
|
||||
startlevel="1" />
|
||||
</capabilities>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:pojo:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:remoting:1.1">
|
||||
<connector name="remoting-connector" socket-binding="remoting" />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:resource-adapters:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:sar:1.0" />
|
||||
<subsystem xmlns="urn:jboss:domain:security:1.2">
|
||||
<security-domains>
|
||||
<security-domain name="other" cache-type="default">
|
||||
<authentication>
|
||||
<login-module code="Remoting" flag="optional">
|
||||
<module-option name="password-stacking" value="useFirstPass"/>
|
||||
</login-module>
|
||||
<login-module code="RealmDirect" flag="required">
|
||||
<module-option name="password-stacking" value="useFirstPass"/>
|
||||
</login-module>
|
||||
</authentication>
|
||||
</security-domain>
|
||||
<security-domain name="jboss-web-policy" cache-type="default">
|
||||
<authorization>
|
||||
<policy-module code="Delegating" flag="required"/>
|
||||
</authorization>
|
||||
</security-domain>
|
||||
<security-domain name="jboss-ejb-policy" cache-type="default">
|
||||
<authorization>
|
||||
<policy-module code="Delegating" flag="required"/>
|
||||
</authorization>
|
||||
</security-domain>
|
||||
</security-domains>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:threads:1.1" />
|
||||
<subsystem xmlns="urn:jboss:domain:transactions:1.2">
|
||||
<core-environment>
|
||||
<process-id>
|
||||
<uuid />
|
||||
</process-id>
|
||||
</core-environment>
|
||||
<recovery-environment socket-binding="txn-recovery-environment"
|
||||
status-socket-binding="txn-status-manager" />
|
||||
<coordinator-environment default-timeout="300" />
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:web:1.1"
|
||||
default-virtual-server="default-host" native="false">
|
||||
<connector name="http" protocol="HTTP/1.1" scheme="http"
|
||||
socket-binding="http" />
|
||||
<virtual-server name="default-host"
|
||||
enable-welcome-root="false">
|
||||
<alias name="localhost" />
|
||||
</virtual-server>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:webservices:1.1">
|
||||
<modify-wsdl-address>true</modify-wsdl-address>
|
||||
<wsdl-host>${env.OPENSHIFT_GEAR_DNS}</wsdl-host>
|
||||
<wsdl-port>80</wsdl-port>
|
||||
<endpoint-config name="Standard-Endpoint-Config" />
|
||||
<endpoint-config name="Recording-Endpoint-Config">
|
||||
<pre-handler-chain name="recording-handlers"
|
||||
protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
|
||||
<handler name="RecordingHandler"
|
||||
class="org.jboss.ws.common.invocation.RecordingServerHandler" />
|
||||
</pre-handler-chain>
|
||||
</endpoint-config>
|
||||
</subsystem>
|
||||
<subsystem xmlns="urn:jboss:domain:weld:1.0" />
|
||||
</profile>
|
||||
|
||||
<interfaces>
|
||||
<interface name="management">
|
||||
<loopback-address value="${env.OPENSHIFT_INTERNAL_IP}" />
|
||||
</interface>
|
||||
<interface name="public">
|
||||
<loopback-address value="${env.OPENSHIFT_INTERNAL_IP}" />
|
||||
</interface>
|
||||
<interface name="unsecure">
|
||||
<!-- Used for IIOP sockets in the standarad configuration. To secure JacORB
|
||||
you need to setup SSL -->
|
||||
<loopback-address value="${env.OPENSHIFT_INTERNAL_IP}" />
|
||||
</interface>
|
||||
</interfaces>
|
||||
|
||||
<socket-binding-group name="standard-sockets"
|
||||
default-interface="public" port-offset="0">
|
||||
<socket-binding name="management-native" interface="management"
|
||||
port="9999" />
|
||||
<socket-binding name="management-http" interface="management"
|
||||
port="9990" />
|
||||
|
||||
<socket-binding name="http" port="8080" />
|
||||
<socket-binding name="jacorb" interface="unsecure"
|
||||
port="3528" />
|
||||
<socket-binding name="jacorb-ssl" interface="unsecure"
|
||||
port="3529" />
|
||||
<socket-binding name="jgroups-tcp" port="7600" />
|
||||
<socket-binding name="messaging" port="5445" />
|
||||
<!--socket-binding name="messaging-group" multicast-address="${jboss.messaging.group.address:231.7.7.7}"
|
||||
multicast-port="${jboss.messaging.group.port:9876}"/ -->
|
||||
<socket-binding name="messaging-throughput" port="5455" />
|
||||
<socket-binding name="osgi-http" interface="management"
|
||||
port="8090" />
|
||||
<socket-binding name="remoting" port="4447" />
|
||||
<socket-binding name="txn-recovery-environment" port="4712" />
|
||||
<socket-binding name="txn-status-manager" port="4713" />
|
||||
<outbound-socket-binding name="mail-smtp">
|
||||
<remote-destination host="localhost" port="25" />
|
||||
</outbound-socket-binding>
|
||||
</socket-binding-group>
|
||||
</server>
|
||||
@@ -1,22 +0,0 @@
|
||||
Run scripts or jobs on a periodic basis
|
||||
=======================================
|
||||
Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly
|
||||
directories will be run on a scheduled basis (frequency is as indicated by the
|
||||
name of the directory) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved}
|
||||
|
||||
The presence of two specially named files jobs.deny and jobs.allow controls
|
||||
how run-parts executes your scripts/jobs.
|
||||
jobs.deny ===> Prevents specific scripts or jobs from being executed.
|
||||
jobs.allow ===> Only execute the named scripts or jobs (all other/non-named
|
||||
scripts that exist in this directory are ignored).
|
||||
|
||||
The principles of jobs.deny and jobs.allow are the same as those of cron.deny
|
||||
and cron.allow and are described in detail at:
|
||||
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access
|
||||
|
||||
See: man crontab or above link for more details and see the the weekly/
|
||||
directory for an example.
|
||||
|
||||
0
.openshift/cron/daily/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
rm -rf $OPENSHIFT_JBOSSAS_LOG_DIR\*.log.*
|
||||
0
.openshift/cron/hourly/.gitignore
vendored
0
.openshift/cron/minutely/.gitignore
vendored
0
.openshift/cron/monthly/.gitignore
vendored
@@ -1,16 +0,0 @@
|
||||
Run scripts or jobs on a weekly basis
|
||||
=====================================
|
||||
Any scripts or jobs added to this directory will be run on a scheduled basis
|
||||
(weekly) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
|
||||
the files named jobs.deny and jobs.allow specially.
|
||||
|
||||
In this specific example, the chronograph script is the only script or job file
|
||||
executed on a weekly basis (due to white-listing it in jobs.allow). And the
|
||||
README and chrono.dat file are ignored either as a result of being black-listed
|
||||
in jobs.deny or because they are NOT white-listed in the jobs.allow file.
|
||||
|
||||
For more details, please see ../README.cron file.
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
Time And Relative D...n In Execution (Open)Shift!
|
||||
@@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"
|
||||
@@ -1,12 +0,0 @@
|
||||
#
|
||||
# Script or job files listed in here (one entry per line) will be
|
||||
# executed on a weekly-basis.
|
||||
#
|
||||
# Example: The chronograph script will be executed weekly but the README
|
||||
# and chrono.dat files in this directory will be ignored.
|
||||
#
|
||||
# The README file is actually ignored due to the entry in the
|
||||
# jobs.deny which is checked before jobs.allow (this file).
|
||||
#
|
||||
chronograph
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#
|
||||
# Any script or job files listed in here (one entry per line) will NOT be
|
||||
# executed (read as ignored by run-parts).
|
||||
#
|
||||
|
||||
README
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
Markers
|
||||
===========
|
||||
|
||||
Adding marker files to this directory will have the following effects:
|
||||
|
||||
enable_jpda - Will enable the JPDA socket based transport on the java virtual
|
||||
machine running the JBoss AS 7 application server. This enables
|
||||
you to remotely debug code running inside the JBoss AS 7
|
||||
application server.
|
||||
|
||||
skip_maven_build - Maven build step will be skipped
|
||||
|
||||
force_clean_build - Will start the build process by removing all non
|
||||
essential Maven dependencies. Any current dependencies specified in
|
||||
your pom.xml file will then be re-downloaded.
|
||||
|
||||
hot_deploy - Will prevent a JBoss container restart during build/deployment.
|
||||
Newly build archives will be re-deployed automatically by the
|
||||
JBoss HDScanner component.
|
||||
|
||||
java7 - Will run JBoss AS7 with Java7 if present. If no marker is present then the
|
||||
baseline Java version will be used (currently Java6)
|
||||
75
README.md
@@ -2,9 +2,7 @@ CommaFeed [.
|
||||
|
||||
Google Reader inspired self-hosted RSS reader, based on JAX-RS, Wicket and AngularJS.
|
||||
|
||||
Deploy on your own server (using TomEE, a lightweight JavaEE6 container based on Tomcat) or even in the cloud for free on OpenShift.
|
||||
Google Reader inspired self-hosted RSS reader, based on Dropwizard and AngularJS.
|
||||
|
||||
Related open-source projects
|
||||
----------------------------
|
||||
@@ -13,26 +11,12 @@ Android apps: [News+ extension](https://github.com/Athou/commafeed-newsplus) - [
|
||||
|
||||
Browser extensions: [Chrome](https://github.com/Athou/commafeed-chrome) - [Firefox](https://github.com/Athou/commafeed-firefox) - [Opera](https://github.com/Athou/commafeed-opera) - [Safari](https://github.com/Athou/commafeed-safari)
|
||||
|
||||
Deployment on OpenShift
|
||||
-----------------------
|
||||
|
||||
Hosting an application on OpenShift is free.
|
||||
At the moment those instructions are not working because the application takes too long to build on OpenShift and causes a timeout.
|
||||
See [here](http://jasonwryan.com/blog/2013/05/25/greader/) for an alternative method.
|
||||
|
||||
* Create an account on [OpenShift](http://www.openshift.com/).
|
||||
* Add an application, select `JBoss Enterprise Application Platform 6.0`.
|
||||
* For the `Public URL` set the name you want (e.g. `commafeed`).
|
||||
* For the `Source Code` option, click `Change` and set this repository (`https://github.com/Athou/commafeed.git`).
|
||||
* Click `Create Application`.
|
||||
* Click `Add cartridge` and select `MySQL`.
|
||||
* Wait a couple of minutes and access your application.
|
||||
* The default user is `admin` and the password is `admin`.
|
||||
|
||||
Deployment on your own server
|
||||
-----------------------------
|
||||
|
||||
For storage, you can either use an embedded HSQLDB database or an external MySQL, PostgreSQL or SQLServer database.
|
||||
CommaFeed 2.0 has been rewritten to use Dropwizard and gulp instead of using tomee and wro4j. The latest version of the 1.x branch is available [here](https://github.com/Athou/commafeed/tree/1.x).
|
||||
|
||||
For storage, you can either use an embedded H2 database or an external MySQL, PostgreSQL or SQLServer database.
|
||||
You also need Maven 3.x (and a Java 1.7+ JDK) installed in order to build the application.
|
||||
|
||||
To install maven and openjdk on Ubuntu, issue the following commands
|
||||
@@ -41,65 +25,42 @@ To install maven and openjdk on Ubuntu, issue the following commands
|
||||
sudo apt-get update
|
||||
sudo apt-get install openjdk-7-jdk maven3
|
||||
|
||||
Not required but if you don't, use 'mvn3' instead of 'mvn' for the rest of the instructions.
|
||||
# Not required but if you don't, use 'mvn3' instead of 'mvn' for the rest of the instructions.
|
||||
sudo ln -s /usr/bin/mvn3 /usr/bin/mvn
|
||||
|
||||
On Windows and other operating systems, just download maven 3.x from the [official site](http://maven.apache.org/), extract it somewhere and add the `bin` directory to your `PATH` environment variable.
|
||||
|
||||
Download the sources (it doesn't matter where, you can delete the directory when you're done).
|
||||
If you don't have git you can download the sources as a zip file from [here](https://github.com/Athou/commafeed/archive/master.zip)
|
||||
Clone this repository. If you don't have git you can download the sources as a zip file from [here](https://github.com/Athou/commafeed/archive/master.zip)
|
||||
|
||||
git clone https://github.com/Athou/commafeed.git
|
||||
cd commafeed
|
||||
|
||||
Now build the application
|
||||
|
||||
Embedded HSQL database:
|
||||
mvn clean package tomee:build -Pprod
|
||||
mvn clean package
|
||||
|
||||
External MySQL database:
|
||||
mvn clean package tomee:build -Pprod -Pmysql
|
||||
|
||||
External PostgreSQL database:
|
||||
mvn clean package tomee:build -Pprod -Ppgsql
|
||||
|
||||
External Microsoft SQL Server database:
|
||||
mvn clean package tomee:build -Pprod -Pmssql
|
||||
|
||||
It will generate a zip file at `target/commafeed.zip` with everything you need to run the application.
|
||||
Copy `config.yml.example` to `config.yml` then edit the file to your liking.
|
||||
Issue the following command to run the app, the server will listen by default on ``http://localhost:8082`. The default user is `admin` and the default password is `admin`.
|
||||
|
||||
* Create a directory somewhere (e.g. `/opt/commafeed/`) and extract the generated zip inside this directory.
|
||||
* Create a directory called `logs` (e.g. `/opt/commafeed/logs`)
|
||||
* Copy the file `conf/setenv.sh` (Linux) or `conf/setenv.bat` (Windows) to `bin/`
|
||||
* If you don't use the embedded database, create a database in your external database instance, then uncomment the `Resource` element corresponding to the database engine you use from `conf/tomee.xml` and edit the default credentials.
|
||||
* If you'd like to change the default port (8082), edit `conf/server.xml` and look for `<Connector port="8082" protocol="HTTP/1.1"`. Change the port to the value you'd like to use.
|
||||
* CommaFeed will run on the `/commafeed` context. If you'd like to change the context, go to `webapps` and rename `commafeed.war`. Use the special name `ROOT.war` to deploy to the root context.
|
||||
* To start and stop the application, use `bin/startup.sh` and `bin/shutdown.sh` on Linux (you need to `chmod +x bin/*.sh`) or `bin\startup.bat` and `bin\shutdown.bat` on Windows.
|
||||
* To update the application with a newer version, pull the latest changes and use the same command you used to build the complete TomEE package, but without the `tomee:build` part (keep `-Pprod -P<database>`).
|
||||
This will generate the file `target/commafeed.war`. Copy this file to your tomee `webapps/` directory.
|
||||
* The application is online at [http://localhost:8082/commafeed](http://localhost:8082/commafeed). Don't forget to set the public URL in the admin settings.
|
||||
* The default user is `admin` and the password is `admin`.
|
||||
java -jar target/commafeed.jar server config.yml
|
||||
|
||||
You can use nginx or apache as a proxy http server. Note that when using apache, the `ProxyPreserveHost on` option should be set in your config file.
|
||||
|
||||
Local development
|
||||
-----------------
|
||||
|
||||
Checkout the code and use maven to build and start a local TomEE instance.
|
||||
To start the dropwizard backend, use your IDE to run CommaFeedApplication as your main class, and pass `server config.dev.yml` as arguments to the program.
|
||||
To start the client-side webserver with watches on assets, run `gulp dev`. The server is now running on port 8082 and is proxying REST requests to dropwizard on port 8083.
|
||||
|
||||
`mvn clean package tomee:run`
|
||||
|
||||
The application is online at [http://localhost:8082/commafeed](http://localhost:8082/commafeed). Any change to the source code will be applied immediatly.
|
||||
The default user is `admin` and the password is `admin`.
|
||||
|
||||
Translate CommaFeed into your language
|
||||
--------------------------------------
|
||||
|
||||
Files for internationalization are located [here](https://github.com/Athou/commafeed/tree/master/src/main/resources/i18n).
|
||||
Files for internationalization are located [here](https://github.com/Athou/commafeed/tree/master/src/main/app/i18n).
|
||||
|
||||
To add a new language, create a new file in that directory.
|
||||
The name of the file should be the two-letters [ISO-639-1 language code](http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
|
||||
The language has to be referenced in the `languages.properties` file to be picked up.
|
||||
|
||||
When adding new translations, add them in en.properties then run `mvn -e groovy:execute -Pi18n`. It will parse the english file and add placeholders in the other translation files.
|
||||
The language has to be referenced in the `src/main/app/js/i18n.js` file to be picked up.
|
||||
|
||||
Themes
|
||||
---------------------
|
||||
@@ -114,7 +75,7 @@ See [_test.scss](https://github.com/Athou/commafeed/blob/master/src/main/webapp/
|
||||
Copyright and license
|
||||
---------------------
|
||||
|
||||
Copyright 2013 CommaFeed.
|
||||
Copyright 2013-2014 CommaFeed.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this work except in compliance with the License.
|
||||
@@ -126,4 +87,4 @@ Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
limitations under the License.
|
||||
33
bower.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "commafeed",
|
||||
"version": "2.0.0",
|
||||
"dependencies": {
|
||||
"jquery": "1.11.0",
|
||||
"jquery-ui": "1.11",
|
||||
"jquery-mousewheel": "3.1.12",
|
||||
"lodash": "2.4.1",
|
||||
"bootstrap": "3.1.1",
|
||||
"font-awesome": "3.2.1",
|
||||
"angular": "1.2.16",
|
||||
"angular-resource": "1.2.16",
|
||||
"angular-route": "1.2.16",
|
||||
"angular-sanitize": "1.2.16",
|
||||
"angular-touch": "1.2.16",
|
||||
"angular-animate": "1.2.16",
|
||||
"angular-ui-router": "0.2.8",
|
||||
"angular-ui-utils": "0.1.0",
|
||||
"angular-ui-select2": "0.0.5",
|
||||
"angular-bootstrap": "0.2.0",
|
||||
"angular-loading-bar": "0.5.0",
|
||||
"angular-translate": "2.2.0",
|
||||
"angular-translate-loader-static-files": "2.2.0",
|
||||
"ngInfiniteScroll": "1.0.0",
|
||||
"ng-grid": "2.0.6",
|
||||
"mousetrap": "1.4.6",
|
||||
"momentjs": "2.6.0",
|
||||
"device.js": "matthewhudson/device.js#2ae5c775e35ccc837589e5af34e292c54936778c",
|
||||
"readabilicons": "arc90/readability-readabilicons#34c55561c5b8ec6e90714b50237c06b13cb9d59c",
|
||||
"zocial": "samcollins/css-social-buttons#1f59ecacde475e563fb6771667597493ec4eecb6",
|
||||
"swagger-ui": "2.0.21"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
set JAVA_OPTS=-Djava.net.preferIPv4Stack=true -Xmx1024m -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC
|
||||
@@ -1 +0,0 @@
|
||||
export JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Xmx1024m -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC"
|
||||
102
config.dev.yml
Normal file
@@ -0,0 +1,102 @@
|
||||
# CommaFeed settings
|
||||
# ------------------
|
||||
app:
|
||||
# url used to access commafeed
|
||||
publicUrl: http://localhost:8082/
|
||||
|
||||
# wether to allow user registrations
|
||||
allowRegistrations: true
|
||||
|
||||
# put your google analytics tracking code here
|
||||
googleAnalyticsTrackingCode:
|
||||
|
||||
# number of http threads
|
||||
backgroundThreads: 3
|
||||
|
||||
# number of database updating threads
|
||||
databaseUpdateThreads: 1
|
||||
|
||||
# settings for sending emails (password recovery)
|
||||
smtpHost: localhost
|
||||
smtpPort: 25
|
||||
smtpTls: false
|
||||
smtpUserName: user
|
||||
smtpPassword: pass
|
||||
|
||||
# wether this commafeed instance has a lot of feeds to refresh
|
||||
# leave this to false in almost all cases
|
||||
heavyLoad: false
|
||||
|
||||
# minimum amount of time commafeed will wait before refreshing the same feed
|
||||
refreshIntervalMinutes: 5
|
||||
|
||||
# wether to enable pubsub
|
||||
# probably not needed if refreshIntervalMinutes is low
|
||||
pubsubhubbub: false
|
||||
|
||||
# if enabled, images in feed entries will be proxied through the server instead of accessed directly by the browser
|
||||
# useful if commafeed is usually accessed through a restricting proxy
|
||||
imageProxyEnabled: false
|
||||
|
||||
# database query timeout (in milliseconds), 0 to disable
|
||||
queryTimeout: 0
|
||||
|
||||
# time to keep unread statuses (in days), 0 to disable
|
||||
keepStatusDays: 0
|
||||
|
||||
# cache service to use, possible values are 'noop' and 'redis'
|
||||
cache: noop
|
||||
|
||||
# announcement string displayed on the main page
|
||||
announcement:
|
||||
|
||||
# Database connection
|
||||
# -------------------
|
||||
# for MySQL
|
||||
# driverClass is com.mysql.jdbc.Driver
|
||||
# url is jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true
|
||||
#
|
||||
# for PostgreSQL
|
||||
# driverClass is org.postgresql.Driver
|
||||
# url is jdbc:postgresql://localhost:5432/commafeed
|
||||
#
|
||||
# for Microsoft SQL Server
|
||||
# driverClass is net.sourceforge.jtds.jdbc.Driver
|
||||
# url is jdbc:jtds:sqlserver://localhost:1433/commafeed;instance=<instanceName, remove if not needed>
|
||||
|
||||
database:
|
||||
driverClass: org.h2.Driver
|
||||
url: jdbc:h2:./target/example
|
||||
user: sa
|
||||
password: sa
|
||||
properties:
|
||||
charSet: UTF-8
|
||||
maxWaitForConnection: 1s
|
||||
validationQuery: "/* CommaFeed Health Check */ SELECT 1"
|
||||
minSize: 1
|
||||
maxSize: 50
|
||||
checkConnectionWhileIdle: true
|
||||
|
||||
server:
|
||||
applicationConnectors:
|
||||
- type: http
|
||||
port: 8083
|
||||
adminConnectors:
|
||||
- type: http
|
||||
port: 8084
|
||||
logging:
|
||||
level: INFO
|
||||
loggers:
|
||||
com.commafeed: DEBUG
|
||||
liquibase: INFO
|
||||
org.hibernate.SQL: ALL
|
||||
org.hibernate.engine.internal.StatisticalLoggingSessionEventListener: WARN
|
||||
appenders:
|
||||
- type: console
|
||||
- type: file
|
||||
currentLogFilename: log/commafeed.log
|
||||
threshold: ALL
|
||||
archive: true
|
||||
archivedLogFilenamePattern: log/commafeed-%d.log
|
||||
archivedFileCount: 5
|
||||
timeZone: UTC
|
||||
101
config.yml.example
Normal file
@@ -0,0 +1,101 @@
|
||||
# CommaFeed settings
|
||||
# ------------------
|
||||
app:
|
||||
# url used to access commafeed
|
||||
publicUrl: http://localhost:8082/
|
||||
|
||||
# wether to allow user registrations
|
||||
allowRegistrations: false
|
||||
|
||||
# put your google analytics tracking code here
|
||||
googleAnalyticsTrackingCode:
|
||||
|
||||
# number of http threads
|
||||
backgroundThreads: 3
|
||||
|
||||
# number of database updating threads
|
||||
databaseUpdateThreads: 1
|
||||
|
||||
# settings for sending emails (password recovery)
|
||||
smtpHost:
|
||||
smtpPort:
|
||||
smtpTls: false
|
||||
smtpUserName:
|
||||
smtpPassword:
|
||||
|
||||
# wether this commafeed instance has a lot of feeds to refresh
|
||||
# leave this to false in almost all cases
|
||||
heavyLoad: false
|
||||
|
||||
# minimum amount of time commafeed will wait before refreshing the same feed
|
||||
refreshIntervalMinutes: 5
|
||||
|
||||
# wether to enable pubsub
|
||||
# probably not needed if refreshIntervalMinutes is low
|
||||
pubsubhubbub: false
|
||||
|
||||
# if enabled, images in feed entries will be proxied through the server instead of accessed directly by the browser
|
||||
# useful if commafeed is usually accessed through a restricting proxy
|
||||
imageProxyEnabled: false
|
||||
|
||||
# database query timeout (in milliseconds), 0 to disable
|
||||
queryTimeout: 0
|
||||
|
||||
# time to keep unread statuses (in days), 0 to disable
|
||||
keepStatusDays: 0
|
||||
|
||||
# cache service to use, possible values are 'noop' and 'redis'
|
||||
cache: noop
|
||||
|
||||
# announcement string displayed on the main page
|
||||
announcement:
|
||||
|
||||
# Database connection
|
||||
# -------------------
|
||||
# for MySQL
|
||||
# driverClass is com.mysql.jdbc.Driver
|
||||
# url is jdbc:mysql://localhost/commafeed?autoReconnect=true&failOverReadOnly=false&maxReconnects=20&rewriteBatchedStatements=true
|
||||
#
|
||||
# for PostgreSQL
|
||||
# driverClass is org.postgresql.Driver
|
||||
# url is jdbc:postgresql://localhost:5432/commafeed
|
||||
#
|
||||
# for Microsoft SQL Server
|
||||
# driverClass is net.sourceforge.jtds.jdbc.Driver
|
||||
# url is jdbc:jtds:sqlserver://localhost:1433/commafeed;instance=<instanceName, remove if not needed>
|
||||
|
||||
database:
|
||||
driverClass: org.h2.Driver
|
||||
url: jdbc:h2:./target/example
|
||||
user: sa
|
||||
password: sa
|
||||
properties:
|
||||
charSet: UTF-8
|
||||
maxWaitForConnection: 1s
|
||||
validationQuery: "/* CommaFeed Health Check */ SELECT 1"
|
||||
minSize: 1
|
||||
maxSize: 50
|
||||
checkConnectionWhileIdle: true
|
||||
|
||||
server:
|
||||
applicationConnectors:
|
||||
- type: http
|
||||
port: 8082
|
||||
adminConnectors:
|
||||
- type: http
|
||||
port: 8084
|
||||
logging:
|
||||
level: WARN
|
||||
loggers:
|
||||
com.commafeed: INFO
|
||||
liquibase: INFO
|
||||
io.dropwizard.server.ServerFactory: INFO
|
||||
appenders:
|
||||
- type: console
|
||||
- type: file
|
||||
currentLogFilename: log/commafeed.log
|
||||
threshold: ALL
|
||||
archive: true
|
||||
archivedLogFilenamePattern: log/commafeed-%d.log
|
||||
archivedFileCount: 5
|
||||
timeZone: UTC
|
||||
2
gulp
Normal file
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
"node/node" "node_modules/gulp/bin/gulp.js" "$@"
|
||||
3
gulp.cmd
Normal file
@@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
%~dp0node/node node_modules/gulp/bin/gulp.js %*
|
||||
@echo on
|
||||
116
gulpfile.js
Normal file
@@ -0,0 +1,116 @@
|
||||
var gulp = require('gulp');
|
||||
var rev = require('gulp-rev');
|
||||
var revReplace = require('gulp-rev-replace');
|
||||
var minifyCSS = require('gulp-minify-css');
|
||||
var uglify = require('gulp-uglify');
|
||||
var filter = require('gulp-filter');
|
||||
var bower = require('gulp-bower');
|
||||
var connect = require('gulp-connect');
|
||||
var modRewrite = require('connect-modrewrite');
|
||||
var sass = require('gulp-sass');
|
||||
var useref = require('gulp-useref');
|
||||
var templateCache = require('gulp-angular-templatecache');
|
||||
|
||||
var SRC_DIR = 'src/main/app/';
|
||||
var TEMP_DIR = 'target/gulp/'
|
||||
var BUILD_DIR = 'target/classes/assets/';
|
||||
|
||||
gulp.task('bower', function() {
|
||||
return bower();
|
||||
});
|
||||
|
||||
gulp.task('images', function() {
|
||||
return gulp.src(SRC_DIR + 'images/**/*').pipe(gulp.dest(BUILD_DIR + 'images'));
|
||||
});
|
||||
|
||||
gulp.task('i18n', function() {
|
||||
return gulp.src(SRC_DIR + 'i18n/**/*.js').pipe(gulp.dest(BUILD_DIR + 'i18n'));
|
||||
});
|
||||
|
||||
gulp.task('favicons', function() {
|
||||
var favicons_png = SRC_DIR + '*.png';
|
||||
var favicons_ico = SRC_DIR + '*.ico';
|
||||
var favicons_svg = SRC_DIR + '*.svg';
|
||||
return gulp.src([favicons_png, favicons_ico, favicons_svg]).pipe(gulp.dest(BUILD_DIR));
|
||||
});
|
||||
|
||||
gulp.task('sass', function() {
|
||||
return gulp.src(SRC_DIR + 'sass/app.scss').pipe(sass()).pipe(gulp.dest(TEMP_DIR + 'css'));
|
||||
});
|
||||
|
||||
gulp.task('fonts', ['bower'], function() {
|
||||
var font_awesome = SRC_DIR + 'lib/font-awesome/font/fontawesome-webfont.*';
|
||||
var zocial = SRC_DIR + 'lib/zocial/css/zocial-regular-*';
|
||||
var readabilicons = SRC_DIR + 'lib/readabilicons/webfont/fonts/readabilicons-*';
|
||||
return gulp.src([font_awesome, zocial, readabilicons]).pipe(gulp.dest(BUILD_DIR + 'font'));
|
||||
});
|
||||
|
||||
gulp.task('select2', ['bower'], function() {
|
||||
var gif = SRC_DIR + 'lib/select2/*.gif';
|
||||
var png = SRC_DIR + 'lib/select2/*.png';
|
||||
return gulp.src([gif, png]).pipe(gulp.dest(BUILD_DIR + 'css'));
|
||||
});
|
||||
|
||||
gulp.task('swagger-ui', ['bower'], function() {
|
||||
var index_html = SRC_DIR + 'api/index.html';
|
||||
var lib = SRC_DIR + 'lib/swagger-ui/dist/**/*';
|
||||
return gulp.src([lib, index_html]).pipe(gulp.dest(BUILD_DIR + 'api'));
|
||||
});
|
||||
|
||||
gulp.task('template-cache', function() {
|
||||
var options = {
|
||||
module : 'commafeed.services',
|
||||
root : 'templates/'
|
||||
};
|
||||
return gulp.src(SRC_DIR + 'templates/**/*.html').pipe(templateCache(options)).pipe(gulp.dest(TEMP_DIR + 'js'));
|
||||
});
|
||||
|
||||
gulp.task('build-dev', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2', 'swagger-ui', 'template-cache', 'bower'], function() {
|
||||
var assets = useref.assets({
|
||||
searchPath : [SRC_DIR, TEMP_DIR]
|
||||
});
|
||||
var jsFilter = filter("**/*.js");
|
||||
var cssFilter = filter("**/*.css");
|
||||
return gulp.src([SRC_DIR + 'index.html', TEMP_DIR + 'app.css']).pipe(assets).pipe(rev()).pipe(assets.restore()).pipe(useref()).pipe(
|
||||
revReplace()).pipe(gulp.dest(BUILD_DIR));
|
||||
});
|
||||
|
||||
gulp.task('build', ['images', 'i18n', 'favicons', 'sass', 'fonts', 'select2', 'swagger-ui', 'template-cache', 'bower'], function() {
|
||||
var assets = useref.assets({
|
||||
searchPath : [SRC_DIR, TEMP_DIR]
|
||||
});
|
||||
var jsFilter = filter("**/*.js");
|
||||
var cssFilter = filter("**/*.css");
|
||||
return gulp.src([SRC_DIR + 'index.html', TEMP_DIR + 'app.css']).pipe(assets)
|
||||
|
||||
.pipe(cssFilter).pipe(minifyCSS()).pipe(cssFilter.restore())
|
||||
|
||||
.pipe(jsFilter).pipe(uglify()).pipe(jsFilter.restore())
|
||||
|
||||
.pipe(rev()).pipe(assets.restore()).pipe(useref()).pipe(revReplace()).pipe(gulp.dest(BUILD_DIR));
|
||||
});
|
||||
|
||||
gulp.task('watch', function() {
|
||||
gulp.watch(SRC_DIR + 'sass/**/*.scss', ['build-dev']);
|
||||
gulp.watch(SRC_DIR + 'js/**/*.js', ['build-dev']);
|
||||
gulp.watch(SRC_DIR + 'i18n/**/*.js', ['build-dev']);
|
||||
gulp.watch(SRC_DIR + 'templates/**/*.html', ['build-dev']);
|
||||
});
|
||||
|
||||
gulp.task('serve', function() {
|
||||
connect.server({
|
||||
root : BUILD_DIR,
|
||||
port : 8082,
|
||||
middleware : function() {
|
||||
var rest = '^/rest/(.*)$ http://localhost:8083/rest/$1 [P]';
|
||||
var next = '^/next(.*)$ http://localhost:8083/next$1 [P]';
|
||||
var logout = '^/logout$ http://localhost:8083/logout [P]';
|
||||
var custom_css = '^/custom_css.css$ http://localhost:8083/custom_css.css [P]';
|
||||
var analytics = '^/analytics.js http://localhost:8083/analytics.js [P]';
|
||||
return [modRewrite([rest, next, logout, custom_css, analytics])];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('dev', ['build-dev', 'watch', 'serve']);
|
||||
gulp.task('default', ['build']);
|
||||
20
package.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"name": "commafeed",
|
||||
"version": "2.0.0",
|
||||
"main": "main.js",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"gulp": "3.8.7",
|
||||
"gulp-rev": "1.0.0",
|
||||
"gulp-rev-replace": "0.3.0",
|
||||
"gulp-minify-css": "0.3.7",
|
||||
"gulp-uglify": "0.3.1",
|
||||
"gulp-filter": "1.0.0",
|
||||
"gulp-bower": "0.0.6",
|
||||
"gulp-connect": "2.0.6",
|
||||
"connect-modrewrite": "0.7.7",
|
||||
"gulp-sass": "0.7.2",
|
||||
"gulp-useref": "0.6.0",
|
||||
"gulp-angular-templatecache": "1.3.0"
|
||||
}
|
||||
}
|
||||
625
pom.xml
@@ -1,11 +1,11 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.commafeed</groupId>
|
||||
<artifactId>commafeed</artifactId>
|
||||
<version>1.2.0</version>
|
||||
<packaging>war</packaging>
|
||||
<version>2.0.0</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>CommaFeed</name>
|
||||
|
||||
<prerequisites>
|
||||
@@ -14,12 +14,7 @@
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<production>false</production>
|
||||
<jpa.show_sql>false</jpa.show_sql>
|
||||
<jpa.datasource.name>java:openejb/Resource/My DataSource</jpa.datasource.name>
|
||||
<jpa.cache>false</jpa.cache>
|
||||
<jpa.table.encoding>utf8mb4</jpa.table.encoding>
|
||||
<cache_service.class>com.commafeed.backend.cache.NoopCacheService</cache_service.class>
|
||||
<dropwizard.version>0.7.1</dropwizard.version>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
@@ -29,147 +24,21 @@
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*.java</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
<configuration>
|
||||
<source>1.6</source>
|
||||
<target>1.6</target>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
<webResources combine.children="append">
|
||||
<resource>
|
||||
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
|
||||
<targetPath>WEB-INF</targetPath>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>**/beans.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>target/generated-sources/api-docs/</directory>
|
||||
<targetPath>api/api-docs</targetPath>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.openejb.maven</groupId>
|
||||
<artifactId>tomee-maven-plugin</artifactId>
|
||||
<version>1.5.2</version>
|
||||
<configuration>
|
||||
<tomeeVersion>1.5.2</tomeeVersion>
|
||||
<tomeeClassifier>plus</tomeeClassifier>
|
||||
<tomeeHttpPort>8082</tomeeHttpPort>
|
||||
<args>-Xmx1024m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled</args>
|
||||
<config>${project.basedir}/src/main/tomee/conf</config>
|
||||
<reloadOnUpdate>true</reloadOnUpdate>
|
||||
<synchronization>
|
||||
<updateInterval>1</updateInterval>
|
||||
<extensions>
|
||||
<extension>.class</extension>
|
||||
</extensions>
|
||||
<updateOnlyExtensions>
|
||||
<updateOnlyExtension>.properties</updateOnlyExtension>
|
||||
<updateOnlyExtension>.html</updateOnlyExtension>
|
||||
<updateOnlyExtension>.js</updateOnlyExtension>
|
||||
<updateOnlyExtension>.css</updateOnlyExtension>
|
||||
<updateOnlyExtension>.scss</updateOnlyExtension>
|
||||
</updateOnlyExtensions>
|
||||
</synchronization>
|
||||
<libs>
|
||||
<lib>org.hibernate:hibernate-entitymanager:4.1.11.Final</lib>
|
||||
<lib>org.hibernate:hibernate-core:4.1.11.Final</lib>
|
||||
<lib>org.hibernate.common:hibernate-commons-annotations:4.0.1.Final</lib>
|
||||
<lib>org.hibernate:hibernate-validator:4.3.1.Final</lib>
|
||||
<lib>org.jboss.logging:jboss-logging:3.1.3.GA</lib>
|
||||
|
||||
<lib>dom4j:dom4j:1.6.1</lib>
|
||||
<lib>antlr:antlr:2.7.7</lib>
|
||||
<lib>remove:openjpa-</lib>
|
||||
<lib>remove:hsqldb</lib>
|
||||
<lib>org.hsqldb:hsqldb:2.3.0</lib>
|
||||
<lib>mysql:mysql-connector-java:5.1.24</lib>
|
||||
<lib>postgresql:postgresql:9.1-901.jdbc4</lib>
|
||||
<lib>net.sourceforge.jtds:jtds:1.3.1</lib>
|
||||
|
||||
<lib>org.infinispan:infinispan-core:5.1.4.FINAL</lib>
|
||||
<lib>org.hibernate:hibernate-infinispan:4.1.11.Final</lib>
|
||||
<lib>org.jgroups:jgroups:3.0.9.Final</lib>
|
||||
<lib>org.jboss.marshalling:jboss-marshalling-river:1.3.11.GA</lib>
|
||||
<lib>org.jboss.marshalling:jboss-marshalling:1.3.11.GA</lib>
|
||||
<lib>org.codehaus.woodstox:woodstox-core-asl:4.1.1</lib>
|
||||
<lib>org.codehaus.woodstox:stax2-api:3.1.1</lib>
|
||||
<lib>org.rhq.helpers:rhq-pluginAnnotations:3.0.4</lib>
|
||||
<lib>org.jboss.logmanager:jboss-logmanager:1.2.2.GA</lib>
|
||||
</libs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.bsc.maven</groupId>
|
||||
<artifactId>maven-processor-plugin</artifactId>
|
||||
<version>2.2.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>process</id>
|
||||
<goals>
|
||||
<goal>process</goal>
|
||||
</goals>
|
||||
<phase>generate-sources</phase>
|
||||
<configuration>
|
||||
<processors>
|
||||
<processor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</processor>
|
||||
</processors>
|
||||
<outputDirectory>target/generated-sources/metamodel</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>doc</id>
|
||||
<phase>process-classes</phase>
|
||||
<goals>
|
||||
<goal>process</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<processors>
|
||||
<processor>com.commafeed.frontend.APIGenerator</processor>
|
||||
</processors>
|
||||
<outputDirectory>target/generated-sources/api-docs</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-jpamodelgen</artifactId>
|
||||
<version>1.3.0.Final</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>pl.project13.maven</groupId>
|
||||
<artifactId>git-commit-id-plugin</artifactId>
|
||||
<version>2.1.5</version>
|
||||
<version>2.1.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
@@ -182,6 +51,72 @@
|
||||
<failOnNoGitDirectory>false</failOnNoGitDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>2.3</version>
|
||||
<configuration>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<filters>
|
||||
<filter>
|
||||
<artifact>*:*</artifact>
|
||||
<excludes>
|
||||
<exclude>META-INF/*.SF</exclude>
|
||||
<exclude>META-INF/*.DSA</exclude>
|
||||
<exclude>META-INF/*.RSA</exclude>
|
||||
</excludes>
|
||||
</filter>
|
||||
</filters>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<transformers>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||
<mainClass>com.commafeed.CommaFeedApplication</mainClass>
|
||||
</transformer>
|
||||
</transformers>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<version>0.0.15</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>install node and npm</id>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
</goals>
|
||||
<phase>generate-resources</phase>
|
||||
<configuration>
|
||||
<nodeVersion>v0.10.30</nodeVersion>
|
||||
<npmVersion>1.3.8</npmVersion>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>generate-resources</phase>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>gulp build</id>
|
||||
<goals>
|
||||
<goal>gulp</goal>
|
||||
</goals>
|
||||
<phase>generate-resources</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
@@ -189,58 +124,71 @@
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>0.12.0</version>
|
||||
<version>1.14.4</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jboss.spec</groupId>
|
||||
<artifactId>jboss-javaee-6.0</artifactId>
|
||||
<version>1.0.0.Final</version>
|
||||
<type>pom</type>
|
||||
<scope>provided</scope>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.7</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.dropwizard</groupId>
|
||||
<artifactId>dropwizard-core</artifactId>
|
||||
<version>${dropwizard.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-entitymanager</artifactId>
|
||||
<version>4.1.11.Final</version>
|
||||
<scope>provided</scope>
|
||||
<groupId>io.dropwizard</groupId>
|
||||
<artifactId>dropwizard-hibernate</artifactId>
|
||||
<version>${dropwizard.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dropwizard</groupId>
|
||||
<artifactId>dropwizard-client</artifactId>
|
||||
<version>${dropwizard.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dropwizard</groupId>
|
||||
<artifactId>dropwizard-migrations</artifactId>
|
||||
<version>${dropwizard.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.dropwizard</groupId>
|
||||
<artifactId>dropwizard-assets</artifactId>
|
||||
<version>${dropwizard.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.wordnik</groupId>
|
||||
<artifactId>swagger-jaxrs_2.10</artifactId>
|
||||
<version>1.3.7</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<groupId>dom4j</groupId>
|
||||
<artifactId>jsr311-api</artifactId>
|
||||
<groupId>javax.ws.rs</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>javassist</artifactId>
|
||||
<groupId>javassist</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
<version>2.1.0</version>
|
||||
<groupId>com.mysema.querydsl</groupId>
|
||||
<artifactId>querydsl-apt</artifactId>
|
||||
<version>3.4.2</version>
|
||||
<scope>provided</scope>
|
||||
<classifier>hibernate</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.liquibase</groupId>
|
||||
<artifactId>liquibase-core</artifactId>
|
||||
<version>3.0.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>14.0.1</version>
|
||||
<groupId>com.mysema.querydsl</groupId>
|
||||
<artifactId>querydsl-jpa</artifactId>
|
||||
<version>3.4.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-beanutils</groupId>
|
||||
<artifactId>commons-beanutils</artifactId>
|
||||
<version>1.8.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-collections</groupId>
|
||||
<artifactId>commons-collections</artifactId>
|
||||
<version>3.2.1</version>
|
||||
<groupId>com.sun.jersey.contribs</groupId>
|
||||
<artifactId>jersey-multipart</artifactId>
|
||||
<version>1.18.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
@@ -248,9 +196,14 @@
|
||||
<version>2.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
<groupId>commons-collections</groupId>
|
||||
<artifactId>commons-collections</artifactId>
|
||||
<version>3.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
@@ -258,11 +211,15 @@
|
||||
<version>2.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-fileupload</groupId>
|
||||
<artifactId>commons-fileupload</artifactId>
|
||||
<version>1.3</version>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
<version>2.5.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.sun.mail</groupId>
|
||||
<artifactId>javax.mail</artifactId>
|
||||
<version>1.5.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>net.java.dev.rome</groupId>
|
||||
<artifactId>rome</artifactId>
|
||||
@@ -290,6 +247,11 @@
|
||||
<artifactId>jdom</artifactId>
|
||||
<version>1.1.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jsoup</groupId>
|
||||
<artifactId>jsoup</artifactId>
|
||||
<version>1.7.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.googlecode.juniversalchardet</groupId>
|
||||
<artifactId>juniversalchardet</artifactId>
|
||||
@@ -298,78 +260,33 @@
|
||||
<dependency>
|
||||
<groupId>com.google.gwt</groupId>
|
||||
<artifactId>gwt-servlet</artifactId>
|
||||
<version>2.5.1</version>
|
||||
<version>2.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.cssparser</groupId>
|
||||
<artifactId>cssparser</artifactId>
|
||||
<version>0.9.9</version>
|
||||
<version>0.9.14</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.2.5</version>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<version>1.4.181</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jsoup</groupId>
|
||||
<artifactId>jsoup</artifactId>
|
||||
<version>1.7.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.core</groupId>
|
||||
<artifactId>jackson-databind</artifactId>
|
||||
<version>2.2.2</version>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.32</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.5</version>
|
||||
<groupId>postgresql</groupId>
|
||||
<artifactId>postgresql</artifactId>
|
||||
<version>9.1-901-1.jdbc4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-core</artifactId>
|
||||
<version>6.9.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-auth-roles</artifactId>
|
||||
<version>6.9.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-extensions</artifactId>
|
||||
<version>6.9.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.wicket</groupId>
|
||||
<artifactId>wicket-cdi</artifactId>
|
||||
<version>6.9.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ro.isdc.wro4j</groupId>
|
||||
<artifactId>wro4j-extensions</artifactId>
|
||||
<version>1.6.3</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.wordnik</groupId>
|
||||
<artifactId>swagger-annotations_2.9.1</artifactId>
|
||||
<version>1.2.5</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.wordnik</groupId>
|
||||
<artifactId>swagger-jaxrs_2.9.1</artifactId>
|
||||
<version>1.2.5</version>
|
||||
<scope>provided</scope>
|
||||
<groupId>net.sourceforge.jtds</groupId>
|
||||
<artifactId>jtds</artifactId>
|
||||
<version>1.3.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
@@ -379,228 +296,4 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>default</id>
|
||||
<activation>
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>ro.isdc.wro4j</groupId>
|
||||
<artifactId>wro4j-maven-plugin</artifactId>
|
||||
<version>1.6.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>js</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>jshint</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<targetGroups>app</targetGroups>
|
||||
<options>indent,devel,noarg,quotmark,laxcomma,laxbreak</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>css</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>csslint</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<targetGroups>app</targetGroups>
|
||||
<options>display-property-grouping,duplicate-properties,compatible-vendor-prefixes,vendor-prefix</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>openshift</id>
|
||||
<properties>
|
||||
<jpa.datasource.name>java:jboss/datasources/MysqlDS</jpa.datasource.name>
|
||||
<jpa.table.encoding>utf8</jpa.table.encoding>
|
||||
</properties>
|
||||
<build>
|
||||
<finalName>commafeed</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.14.1</version>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<outputDirectory>deployments</outputDirectory>
|
||||
<warName>ROOT</warName>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
||||
<profile>
|
||||
<id>cache</id>
|
||||
<properties>
|
||||
<jpa.cache>true</jpa.cache>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>redis</id>
|
||||
<properties>
|
||||
<cache_service.class>com.commafeed.backend.cache.RedisCacheService</cache_service.class>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>mysql</id>
|
||||
<properties>
|
||||
<jpa.datasource.name>java:openejb/Resource/MySQL</jpa.datasource.name>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>pgsql</id>
|
||||
<properties>
|
||||
<jpa.datasource.name>java:openejb/Resource/PostgreSQL</jpa.datasource.name>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>mssql</id>
|
||||
<properties>
|
||||
<jpa.datasource.name>java:openejb/Resource/MSSQL</jpa.datasource.name>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>prod</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>skipTests</name>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<timestamp>${maven.build.timestamp}</timestamp>
|
||||
<production>true</production>
|
||||
<jpa.show_sql>false</jpa.show_sql>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.gmaven</groupId>
|
||||
<artifactId>gmaven-plugin</artifactId>
|
||||
<version>1.5</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.4</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>process-classes</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<properties>
|
||||
<source>${basedir}/src/main/webapp/templates</source>
|
||||
<prefix>templates/</prefix>
|
||||
<destination>${basedir}/target/generated-sources/angularjs/all-templates.html</destination>
|
||||
<i18nPath>${basedir}/src/main/resources/i18n/</i18nPath>
|
||||
</properties>
|
||||
<scriptpath>
|
||||
<element>${basedir}/src/main/script</element>
|
||||
</scriptpath>
|
||||
<source>
|
||||
def source = project.properties['source'];
|
||||
def prefix =
|
||||
project.properties['prefix'];
|
||||
def dest =
|
||||
project.properties['destination'];
|
||||
def i18n =
|
||||
project.properties['i18nPath'];
|
||||
new
|
||||
HTMLConcat().concat(source,
|
||||
prefix, dest, i18n);
|
||||
</source>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>ro.isdc.wro4j</groupId>
|
||||
<artifactId>wro4j-maven-plugin</artifactId>
|
||||
<version>1.6.3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<targetGroups>all</targetGroups>
|
||||
<wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
|
||||
<destinationFolder>${project.build.directory}/${project.build.finalName}/static/</destinationFolder>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>target/generated-sources/angularjs/</directory>
|
||||
<targetPath>templates</targetPath>
|
||||
<includes>
|
||||
<include>**/*.html</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>i18n</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.gmaven</groupId>
|
||||
<artifactId>gmaven-plugin</artifactId>
|
||||
<version>1.5</version>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.4</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<properties>
|
||||
<dir>${basedir}/src/main/resources/i18n/</dir>
|
||||
</properties>
|
||||
<scriptpath>
|
||||
<element>${basedir}/src/main/script</element>
|
||||
</scriptpath>
|
||||
<source>
|
||||
def dir = project.properties['dir'];
|
||||
new
|
||||
I18nGenerator().generate(dir);
|
||||
</source>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
</project>
|
||||
88
src/main/app/api/index.html
Normal file
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Swagger UI</title>
|
||||
<link href='//fonts.googleapis.com/css?family=Droid+Sans:400,700' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/>
|
||||
<link href='css/screen.css' media='print' rel='stylesheet' type='text/css'/>
|
||||
<script type="text/javascript" src="lib/shred.bundle.js"></script>
|
||||
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
|
||||
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
|
||||
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
|
||||
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
|
||||
<script src='lib/handlebars-1.0.0.js' type='text/javascript'></script>
|
||||
<script src='lib/underscore-min.js' type='text/javascript'></script>
|
||||
<script src='lib/backbone-min.js' type='text/javascript'></script>
|
||||
<script src='lib/swagger.js' type='text/javascript'></script>
|
||||
<script src='swagger-ui.js' type='text/javascript'></script>
|
||||
<script src='lib/highlight.7.3.pack.js' type='text/javascript'></script>
|
||||
|
||||
<!-- enabling this will enable oauth2 implicit scope support -->
|
||||
<script src='lib/swagger-oauth.js' type='text/javascript'></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
window.swaggerUi = new SwaggerUi({
|
||||
url: "../rest/api-docs",
|
||||
dom_id: "swagger-ui-container",
|
||||
supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
|
||||
onComplete: function(swaggerApi, swaggerUi){
|
||||
log("Loaded SwaggerUI");
|
||||
|
||||
if(typeof initOAuth == "function") {
|
||||
/*
|
||||
initOAuth({
|
||||
clientId: "your-client-id",
|
||||
realm: "your-realms",
|
||||
appName: "your-app-name"
|
||||
});
|
||||
*/
|
||||
}
|
||||
$('pre code').each(function(i, e) {
|
||||
hljs.highlightBlock(e)
|
||||
});
|
||||
},
|
||||
onFailure: function(data) {
|
||||
log("Unable to Load SwaggerUI");
|
||||
},
|
||||
docExpansion: "none",
|
||||
sorter : "alpha"
|
||||
});
|
||||
|
||||
$('#input_apiKey').change(function() {
|
||||
var key = $('#input_apiKey')[0].value;
|
||||
log("key: " + key);
|
||||
if(key && key.trim() != "") {
|
||||
log("added key " + key);
|
||||
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"));
|
||||
}
|
||||
})
|
||||
window.swaggerUi.load();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="swagger-section">
|
||||
<div id='header'>
|
||||
<div class="swagger-ui-wrap">
|
||||
<a id="logo" href="http://swagger.wordnik.com">swagger</a>
|
||||
<form id='api_selector'>
|
||||
<div class='input icon-btn'>
|
||||
<img id="show-pet-store-icon" src="images/pet_store_api.png" title="Show Swagger Petstore Example Apis">
|
||||
</div>
|
||||
<div class='input icon-btn'>
|
||||
<img id="show-wordnik-dev-icon" src="images/wordnik_api.png" title="Show Wordnik Developer Apis">
|
||||
</div>
|
||||
<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div>
|
||||
<div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div>
|
||||
<div class='input'><a id="explore" href="#">Explore</a></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="message-bar" class="swagger-ui-wrap"> </div>
|
||||
<div id="swagger-ui-container" class="swagger-ui-wrap"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 556 B After Width: | Height: | Size: 556 B |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
180
src/main/app/i18n/ar.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "حفظ",
|
||||
"cancel" : "إلغاء",
|
||||
"delete" : "حذف",
|
||||
"required" : "مطلوب",
|
||||
"download" : "تحميل",
|
||||
"link" : "رابط",
|
||||
"bookmark" : "مرجعية",
|
||||
"close" : "أغلق",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "اشترك",
|
||||
"import" : "استورد",
|
||||
"new_category" : "فئة جديدة",
|
||||
"all" : "الكل",
|
||||
"starred" : "المفضل"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "رابط المغذي",
|
||||
"feed_name" : "اسم المغذي",
|
||||
"category" : "فئة"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "اسمح لي استيرا المغذيات الخاص بك",
|
||||
"google_reader_suffix" : "حساب.",
|
||||
"google_download" : "بدلا من ذلك، يمكنك تحميل ملف subscriptions.xml الخاص بك.",
|
||||
"google_download_link" : "تحميل من هنا.",
|
||||
"xml_file" : "ملف OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "الإ سم",
|
||||
"parent" : "الأصل"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "غير مقروء",
|
||||
"all" : "الكل",
|
||||
"previous_entry" : "الإدخال السابقة",
|
||||
"next_entry" : "الإدخال التالي",
|
||||
"refresh" : "إعادة انعاش",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "الترتيب حسب التاريخ تصاعدي / تنازلي",
|
||||
"titles_only" : "العناوين فقط",
|
||||
"expanded_view" : "عرض موسع",
|
||||
"mark_all_as_read" : "اعتبر الكل مقروء",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "العناصر الأقدم من يوم",
|
||||
"mark_all_older_week" : "العناصر الأقدم من أسبوع",
|
||||
"mark_all_older_two_weeks" : "العناصر الأقدم من أسبوعين",
|
||||
"settings" : "إعدادات",
|
||||
"profile" : "الملف الشخصي",
|
||||
"admin" : "المشرف",
|
||||
"about" : "معلومات حول",
|
||||
"logout" : "تسجيل الخروج",
|
||||
"donate" : "تبرع"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "خطأ أثناء تحميل هذه التغذية",
|
||||
"keep_unread" : "إبقائه غير مقروء",
|
||||
"no_unread_items" : "لا يحتوي عناصر غير مقروءة.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "أدخل اشتراك ...",
|
||||
"help" : "استخدام مفتاح العودة للاختيار ومفاتيح الأسهم للتنقل.",
|
||||
"result_prefix" : "الاشتراكات الخاصة بك:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "General",
|
||||
"language" : "Language",
|
||||
"language_contribute" : "Contribute with translations",
|
||||
"show_unread" : "Show feeds and categories with no unread entries",
|
||||
"social_buttons" : "Show social sharing buttons",
|
||||
"scroll_marks" : "In expanded view, scrolling through entries mark them as read"
|
||||
},
|
||||
"appearance" : "Appearance",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Theme",
|
||||
"submit_your_theme" : "Submit your theme",
|
||||
"custom_css" : "Custom CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Feed details",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Name",
|
||||
"category" : "Category",
|
||||
"position" : "Position",
|
||||
"last_refresh" : "Last refresh",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Next refresh",
|
||||
"queued_for_refresh" : "Queued for refresh",
|
||||
"feed_url" : "Feed URL",
|
||||
"generate_api_key_first" : "Generate an API key in your profile first.",
|
||||
"unsubscribe" : "Unsubscribe",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Category details",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Parent category"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "User name",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Change password",
|
||||
"confirm_password" : "Confirm password",
|
||||
"minimum_6_chars" : "Minimum 6 characters",
|
||||
"passwords_do_not_match" : "Passwords do not match",
|
||||
"api_key" : "API key",
|
||||
"api_key_not_generated" : "Not generated yet",
|
||||
"generate_new_api_key" : "Generate new API key",
|
||||
"generate_new_api_key_info" : "Changing password will generate a new API key",
|
||||
"opml_export" : "OPML export",
|
||||
"delete_account" : "Delete account",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed is built on top of JAX-RS and AngularJS. As such, a REST API is available.",
|
||||
"link_to_documentation" : "Link to the documentation."
|
||||
},
|
||||
"keyboard_shortcuts" : "Keyboard shortcuts",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed is an open-source project. Sources are hosted on ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "If you encounter an issue, please report it on the issues page of the ",
|
||||
"line2_suffix" : " project.",
|
||||
"line3" : "If you like this project, please consider a donation to support the developer and help cover the costs of keeping this website online.",
|
||||
"line4" : "For those of you who prefer bitcoin, here is the address",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Subscribe URL",
|
||||
"chrome_extension" : "Chrome extension",
|
||||
"firefox_extension" : "Firefox extension",
|
||||
"opera_extension" : "Opera extension",
|
||||
"subscribe_bookmarklet" : "Add subscription bookmarklet (click)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Next unread item bookmarklet (drag to bookmark bar)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Translation",
|
||||
"message" : "We need your help to translate CommaFeed.",
|
||||
"link" : "See how to contribute with translations."
|
||||
},
|
||||
"announcements" : "Announcements",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "mouse middleclick",
|
||||
"open_next_entry" : "open next entry",
|
||||
"open_previous_entry" : "open previous entry",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "set focus on next entry without opening it",
|
||||
"focus_previous_entry" : "set focus on previous entry without opening it",
|
||||
"open_next_feed" : "open next feed or category",
|
||||
"open_previous_feed" : "open previous feed or category",
|
||||
"open_close_current_entry" : "open/close current entry",
|
||||
"open_current_entry_in_new_window" : "open current entry in a new window",
|
||||
"open_current_entry_in_new_window_background" : "open current entry in a new window in the background",
|
||||
"star_unstar" : "star/unstar current entry",
|
||||
"mark_current_entry" : "mark as read/unread current entry",
|
||||
"mark_all_as_read" : "mark all entries as read",
|
||||
"open_in_new_tab_mark_as_read" : "open entry in new tab and mark as read",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "navigate to a subscription by entering the subscription name"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/ca.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Desa",
|
||||
"cancel" : "Cancel·la",
|
||||
"delete" : "Esborra",
|
||||
"required" : "Requerit",
|
||||
"download" : "Descarrega",
|
||||
"link" : "Enllaç",
|
||||
"bookmark" : "Adreça d'interès",
|
||||
"close" : "Tancar",
|
||||
"tags" : "Etiquetes"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Subscriure",
|
||||
"import" : "Importa",
|
||||
"new_category" : "Nova categoria",
|
||||
"all" : "Tot",
|
||||
"starred" : "Destacats"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL del canal",
|
||||
"feed_name" : "Nom del canal",
|
||||
"category" : "Categoria"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Importaré els canals del teu",
|
||||
"google_reader_suffix" : " compte.",
|
||||
"google_download" : "O be, carrega el teu fitxer subscriptions.xml.",
|
||||
"google_download_link" : "Descarrega'l d'aquí.",
|
||||
"xml_file" : "Fitxer OPML "
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nom",
|
||||
"parent" : "Arrel"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Per llegir",
|
||||
"all" : "Tots",
|
||||
"previous_entry" : "Entrada prèvia",
|
||||
"next_entry" : "Entrada següent",
|
||||
"refresh" : "Actualitzar",
|
||||
"refresh_all" : "Força l'actualització de tots els canals",
|
||||
"sort_by_asc_desc" : "Ordenar per data asc/desc",
|
||||
"titles_only" : "Només títols",
|
||||
"expanded_view" : "Vista ampliada",
|
||||
"mark_all_as_read" : "Marcar tots llegits",
|
||||
"mark_all_older_12_hours" : "Ítems més vells de 12 hores",
|
||||
"mark_all_older_day" : "Ítems més vells d'un dia",
|
||||
"mark_all_older_week" : "Ítems més vells d'una setmana",
|
||||
"mark_all_older_two_weeks" : "Ítems més vells de dues setmanes",
|
||||
"settings" : "Configuració",
|
||||
"profile" : "Perfil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Quant a",
|
||||
"logout" : "Desconnecta't",
|
||||
"donate" : "Donació"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "de ",
|
||||
"entry_author" : "per ",
|
||||
"error_while_loading_feed" : "Error carregant el canal",
|
||||
"keep_unread" : "Conserva com a no llegit",
|
||||
"no_unread_items" : "no té ítems sense llegir.",
|
||||
"mark_up_to_here" : "Marcar com a llegit fins aquí",
|
||||
"search_for" : "cercant: ",
|
||||
"no_search_results" : "No hi ha coincidències per les paraules clau sol·licitades"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Introdueix una subscripció...",
|
||||
"help" : "Utilitza la tecla de retorn per seleccionar i les tecles de cursor per navegar.",
|
||||
"result_prefix" : "Les teves subscripcions:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "General",
|
||||
"language" : "Idioma",
|
||||
"language_contribute" : "Contribueix amb traduccions",
|
||||
"show_unread" : "Mostrar canals i categories amb entrades sense llegir",
|
||||
"social_buttons" : "Mostrar botons per compartir en xarxes socials",
|
||||
"scroll_marks" : "A la vista ampliada si et desplaces per les entrades les marques com a llegides"
|
||||
},
|
||||
"appearance" : "Aparença",
|
||||
"scroll_speed" : "Velocitat de desplaçament quan navegues entre entrades (en mil·lisegons)",
|
||||
"scroll_speed_help" : "Fixa a 0 per desactivar",
|
||||
"theme" : "Tema",
|
||||
"submit_your_theme" : "Envia un tema",
|
||||
"custom_css" : "CSS personalitzat"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Detalls del canal",
|
||||
"url" : "URL",
|
||||
"website" : "Lloc web",
|
||||
"name" : "Nom",
|
||||
"category" : "Categoria",
|
||||
"position" : "Posició",
|
||||
"last_refresh" : "Darrera actualització",
|
||||
"message" : "Darrer missatge d'actualització",
|
||||
"next_refresh" : "Propera actualització",
|
||||
"queued_for_refresh" : "A la cua d'actualització",
|
||||
"feed_url" : "URL del canal",
|
||||
"generate_api_key_first" : "Abans cal que generis una clau API en el teu perfil.",
|
||||
"unsubscribe" : "Cancel·la la subscripció",
|
||||
"unsubscribe_confirmation" : "Segur que vols cancel·lar la subscripció del canal?",
|
||||
"delete_category_confirmation" : "Segur que vols esborrar la categoria?",
|
||||
"category_details" : "Detalls de la categoria",
|
||||
"tag_details" : "Detalls de l'etiqueta",
|
||||
"parent_category" : "Categoria arrel"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Nom d'usuari",
|
||||
"email" : "Adreça electrònica",
|
||||
"change_password" : "Canvia la contrasenya ",
|
||||
"confirm_password" : "Confirma la contrasenya",
|
||||
"minimum_6_chars" : "Mínim de 6 caracters",
|
||||
"passwords_do_not_match" : "Les contrasenyes no coincideixen",
|
||||
"api_key" : "Clau API ",
|
||||
"api_key_not_generated" : "Encara no s'ha generat",
|
||||
"generate_new_api_key" : "Genera una nova clau API ",
|
||||
"generate_new_api_key_info" : "El canvi de contrasenya generarà una nova clau API",
|
||||
"opml_export" : "Exporta OPML ",
|
||||
"delete_account" : "Esborra el compte ",
|
||||
"delete_account_confirmation" : "Vols esborrar el teu compte? No ho podràs desfer!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed funciona amb JAX-RS i AngularJS. Per tant, té disponible una API REST.",
|
||||
"link_to_documentation" : "Enllaç a la documentació."
|
||||
},
|
||||
"keyboard_shortcuts" : "Dreceres de teclat",
|
||||
"version" : "Versió de CommaFeed ",
|
||||
"line1_prefix" : "CommaFeed és un projecte de codi font obert. El codi font és hostatjat a ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Si trobes un problema, si us plau informa'n a la pàgina de problemes del ",
|
||||
"line2_suffix" : " projecte.",
|
||||
"line3" : "Si t'agrada el projecte, pensa en fer un donatiu per recolzar el desenvolupador i per ajudar amb les despeses de l'hostatge del lloc web. ",
|
||||
"line4" : "I pels que preferiu bitcoin, aquí teniu l'adreça",
|
||||
"goodies" : {
|
||||
"value" : "Afegitons",
|
||||
"android_app" : "App Android",
|
||||
"subscribe_url" : "URL de subscripció",
|
||||
"chrome_extension" : "Extensió del Chrome ",
|
||||
"firefox_extension" : "Extensió del Firefox",
|
||||
"opera_extension" : "Extensió de l'Opera",
|
||||
"subscribe_bookmarklet" : "Afegeix bookmarklet de subscripció (clica)",
|
||||
"subscribe_bookmarklet_asc" : "Primer els vells",
|
||||
"subscribe_bookmarklet_desc" : "Primer els nous",
|
||||
"next_unread_bookmarklet" : "Bookmarklet del proper ítem sense llegir (arrosega a la barra d'adreces d'interès)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Traducció",
|
||||
"message" : "Necessitem la teva ajuda per traduir CommaFeed.",
|
||||
"link" : "Informació per contribuir amb traduccions."
|
||||
},
|
||||
"announcements" : "Anuncis",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "Clic amb el botó del mig",
|
||||
"open_next_entry" : "obrir entrada següent",
|
||||
"open_previous_entry" : "obrir entrada prèvia",
|
||||
"spacebar" : "espai/majúscula+espai",
|
||||
"move_page_down_up" : "mou la pàgina avall/amunt",
|
||||
"focus_next_entry" : "fixa el focus en l'entrada següent entrada sense obrir-la",
|
||||
"focus_previous_entry" : "fixa el focus en l'entrada prèvia sense obrir-la",
|
||||
"open_next_feed" : "obrir canal o categoria següent",
|
||||
"open_previous_feed" : "obrir canal o categoria prèvia",
|
||||
"open_close_current_entry" : "obre/tanca entrada actual",
|
||||
"open_current_entry_in_new_window" : "obrir entrada actual en una finestra nova",
|
||||
"open_current_entry_in_new_window_background" : "obrir entrada actual en una finestra nova en segon pla",
|
||||
"star_unstar" : "destacar/treure destacat a l'entrada actual ",
|
||||
"mark_current_entry" : "marcar com a llegida/no llegida l'entrada actual",
|
||||
"mark_all_as_read" : "marcar totes les entrades com a llegides",
|
||||
"open_in_new_tab_mark_as_read" : "obrir entrada en una pestanya nova i marcar com a llegida ",
|
||||
"fullscreen" : "commutar el mode de pantalla completa",
|
||||
"font_size" : "incrementar/reduir la mida de la font de l'entrada actual",
|
||||
"go_to_all" : "anar a la vista de Tot ",
|
||||
"go_to_starred" : "anar a la vista de Destacats",
|
||||
"feed_search" : "navegar a una subscripció introduint-ne el nom"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/cs.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save " : " Uložit",
|
||||
"cancel " : " Zrušit",
|
||||
"delete " : " Odstranit",
|
||||
"required " : " Povinné",
|
||||
"download " : " Stáhnout",
|
||||
"link " : " Odkaz",
|
||||
"bookmark " : " Záložky",
|
||||
"close " : " Zavřít",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe " : " Nový odběr",
|
||||
"import " : " Importovat",
|
||||
"new_category " : " Nová kategorie",
|
||||
"all " : " Vše",
|
||||
"starred " : " Oblíbené"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url " : " URL RSS zdroje",
|
||||
"feed_name " : " Název",
|
||||
"category " : " Kategorie"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix " : " Importujte si RSS zdroje s vašeho",
|
||||
"google_reader_suffix " : " účtu.",
|
||||
"google_download " : " Anebo můžete nahrát váš subscriptions.xml soubor",
|
||||
"google_download_link " : " Stáhnout jej múžete odtud",
|
||||
"xml_file" : "Soubor OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name " : " Název",
|
||||
"parent " : " Hlavní"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread " : " Nepřečtené ",
|
||||
"all " : " Vše",
|
||||
"previous_entry " : " Předchozí položka",
|
||||
"next_entry " : " Následující položka",
|
||||
"refresh " : " Obnovit",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc " : " Seřadit podle nejnovějšího/nejstaršího",
|
||||
"titles_only " : " Zobrazit jenom titulky",
|
||||
"expanded_view " : " Rozšířený náhled",
|
||||
"mark_all_as_read " : " Označit vše jako přečtené",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day " : " Položky starší než den",
|
||||
"mark_all_older_week " : " Položky starší než týden",
|
||||
"mark_all_older_two_weeks " : " Položky starší než dva týdny",
|
||||
"settings " : " Nastavení",
|
||||
"profile " : " Profil",
|
||||
"admin " : " Admin",
|
||||
"about " : " O CommaFeed",
|
||||
"logout " : " Odhlásit",
|
||||
"donate " : " Donate"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source " : " s",
|
||||
"entry_author " : " od",
|
||||
"error_while_loading_feed " : " Během načítání se vyskytla chyba",
|
||||
"keep_unread " : " Označit jako nepřečtené",
|
||||
"no_unread_items " : " nemá žádné nepřečtené položky.",
|
||||
"mark_up_to_here " : " Až potud označit položky jako přečtené",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint " : " Zadejte název pro nový odběr ...",
|
||||
"help " : " Použijte klávesu enter pro výběr a směrové klávesy pro navigaci.",
|
||||
"result_prefix " : " Vaše odebírání:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value " : " Všeobecné",
|
||||
"language " : " Jazyk",
|
||||
"language_contribute " : " Zapojte se a pomozte z překladem",
|
||||
"show_unread " : " Zobrazit položky a kategorie z přečtenými položkami",
|
||||
"social_buttons " : " Zobrazit možnosti sdílení",
|
||||
"scroll_marks " : " Skrolování v rozšířeném náhledu označí položky jako přečtené"
|
||||
},
|
||||
"appearance " : " Vzhled",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme " : " Motiv",
|
||||
"submit_your_theme " : " Nahrát vlastní motiv",
|
||||
"custom_css " : " Vlastní motiv (CSS)"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details " : " Detail odběru",
|
||||
"url " : " URL odkaz",
|
||||
"website " : " Web stránka",
|
||||
"name " : " Název",
|
||||
"category " : " Kategorie",
|
||||
"position " : " Pozice",
|
||||
"last_refresh " : " Poslední obnovení",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh " : " Nadcházející obnovení",
|
||||
"queued_for_refresh " : " Ve frontě na obnovu",
|
||||
"feed_url " : " URL RSS zdroje",
|
||||
"generate_api_key_first " : " Vygenerujte si API klíč na stránce vašeho profilu.",
|
||||
"unsubscribe " : " Odhlásit odběr.",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details " : " Detail kategorie",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category " : " Hlavní kategorie"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name " : " Uživatelské jméno",
|
||||
"email " : " E-mail",
|
||||
"change_password " : " Změnit heslo",
|
||||
"confirm_password " : " Potvrdit heslo",
|
||||
"minimum_6_chars " : " Minimum je 6 znaků",
|
||||
"passwords_do_not_match " : " Hesla se neshodují",
|
||||
"api_key " : " API klíč",
|
||||
"api_key_not_generated " : " Není vygenerován",
|
||||
"generate_new_api_key " : " Vygenerovat nový API klíč",
|
||||
"generate_new_api_key_info " : " Změnou hesla vygenerujete nový API klíč",
|
||||
"opml_export " : " exportovat do formátu OPML",
|
||||
"delete_account " : " Odstranit účet",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value " : " REST API",
|
||||
"line1 " : " CommaFeed je postaven na JAX-RS a AngularJS. Dostupná je REST API.",
|
||||
"link_to_documentation " : " Dokumentace."
|
||||
},
|
||||
"keyboard_shortcuts " : " Klávesové zkratky",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix " : " CommaFeed je open source projekt. Zdrojový kód je dostupný na",
|
||||
"line1_suffix " : ".",
|
||||
"line2_prefix " : " V případě, že narazíte na problém, ohlaste ho prosím na stránkách",
|
||||
"line2_suffix " : " projektu.",
|
||||
"line3 " : " V případě, že se vám líbí CommaFeed, zvažte prosím finanční příspěvek. Podpoříte tak budoucí vývoj a také pomůžete udržet web stránky online.",
|
||||
"line4 " : " Bitcoin",
|
||||
"goodies" : {
|
||||
"value " : " Rozšíření",
|
||||
"android_app " : " Aplikace pro zařízení Android",
|
||||
"subscribe_url " : " URL",
|
||||
"chrome_extension " : " Rozšíření pro prohlížeč Chrome",
|
||||
"firefox_extension " : " Rozšíření pro prohlížeč Firefox",
|
||||
"opera_extension " : " Rozšíření pro prohlížeč Opera",
|
||||
"subscribe_bookmarklet " : " Bookmarklet (klikněte)",
|
||||
"subscribe_bookmarklet_asc " : " Seřadit od nejstaršího k nejnovějšímu",
|
||||
"subscribe_bookmarklet_desc " : " Seřadit od nejnovějšího k nejstaršímu",
|
||||
"next_unread_bookmarklet " : " Záložka následující nepřečtené položky (protáhnout k záložkám)"
|
||||
},
|
||||
"translation" : {
|
||||
"value " : " Překlad",
|
||||
"message " : " Pomozte z překladem CommaFeed.",
|
||||
"link " : " Zjistěte jak můžete pomoct s překladem."
|
||||
},
|
||||
"announcements " : " Oznámení",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick " : " klik prostředním tlačítkem",
|
||||
"open_next_entry " : " zobrazit následující položku",
|
||||
"open_previous_entry " : " zobrazit předchozí položku",
|
||||
"spacebar " : " space / shift + mezerník",
|
||||
"move_page_down_up " : " pohyb směrem dolů/nahoru",
|
||||
"focus_next_entry " : " přesun na následující položku bez jejího zobrazení",
|
||||
"focus_previous_entry " : " přesun na předchozí položku bez jejího zobrazení",
|
||||
"open_next_feed " : " přesun na následující odběr/kategorii",
|
||||
"open_previous_feed " : " přesun na předchozí odběr/kategorii",
|
||||
"open_close_current_entry " : " zobrazit/zavřít vybranou položku",
|
||||
"open_current_entry_in_new_window " : " otevřít vybranou položku v novém okně",
|
||||
"open_current_entry_in_new_window_background " : " otevřít vybranou položku na pozadí",
|
||||
"star_unstar " : " označit vybranou položku jako oblíbenou/neoblíbenou",
|
||||
"mark_current_entry " : " označit vybrané položky jako přečtené/nepřečtené",
|
||||
"mark_all_as_read " : " označit všechny položky jako přečtené!",
|
||||
"open_in_new_tab_mark_as_read " : " otevřít položku na nové kartě a označit ji jako přečtenou",
|
||||
"fullscreen " : " přepnout zobrazení na celou obrazovku",
|
||||
"font_size " : " zvětšit/zmenšit velikost písma pro vybranou položku",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search " : " přejít na odběr vložením jeho názvu"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/cy.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Cadw",
|
||||
"cancel" : "Diddymu",
|
||||
"delete" : "Dileu",
|
||||
"required" : "Gofynnol",
|
||||
"download" : "Lawrlwytho",
|
||||
"link" : "Dolen",
|
||||
"bookmark" : "Nod tudalen",
|
||||
"close" : "Cau",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Tanysgrifio",
|
||||
"import" : "Mewnforio",
|
||||
"new_category" : "Categori newydd",
|
||||
"all" : "Popeth",
|
||||
"starred" : "Serennwyd"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL Ffrwd",
|
||||
"feed_name" : "Enw Ffrwd",
|
||||
"category" : "Categori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Gad i mi fewnforio dy ffrydiau o dy ",
|
||||
"google_reader_suffix" : " gyfrif.",
|
||||
"google_download" : "Fel arall, lanlwytha dy ffeil tanysgrifiadau.xml",
|
||||
"google_download_link" : "Lawrlwytha fe yma.",
|
||||
"xml_file" : "Ffeil OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Enw",
|
||||
"parent" : "Rhiant"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Heb ddarllen",
|
||||
"all" : "Popeth",
|
||||
"previous_entry" : "Eitem blaenorol",
|
||||
"next_entry" : "Eitem nesaf",
|
||||
"refresh" : "Adnewyddu",
|
||||
"refresh_all" : "Gorfodi ail-lwytho pob ffrwd",
|
||||
"sort_by_asc_desc" : "Trefnu yn ôl dyddiad",
|
||||
"titles_only" : "Teitlau yn unig",
|
||||
"expanded_view" : "Golwg estynedig",
|
||||
"mark_all_as_read" : "Nodi'r cyfan fel wedi ei ddarllen",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Eitemau hyn na diwrnod",
|
||||
"mark_all_older_week" : "Eitemau hyn nag wythnos",
|
||||
"mark_all_older_two_weeks" : "Eitemau hyn na phythefnos",
|
||||
"settings" : "Gosodiadau",
|
||||
"profile" : "Proffil",
|
||||
"admin" : "Gweinyddwr",
|
||||
"about" : "Ynghylch",
|
||||
"logout" : "Allgofnodi",
|
||||
"donate" : "Rhoddi"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "o",
|
||||
"entry_author" : "gan",
|
||||
"error_while_loading_feed" : "Gwall wrth lwytho'r ffrwd",
|
||||
"keep_unread" : "Parhau i'w nodi fel heb ei ddarllen",
|
||||
"no_unread_items" : ": Dim eitemau heb eu darllen ",
|
||||
"mark_up_to_here" : "Nodi'r rhai hyd yma fel wedi eu darllen",
|
||||
"search_for" : "yn chwilio am:",
|
||||
"no_search_results" : "Ni chanfuwyd unrhyw beth gyda'r geiriau hynny"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Rho'r tanysgrifiad...",
|
||||
"help" : "Defnyddia'r dychwelwr i ddethol a saethau i lywio",
|
||||
"result_prefix" : "Dy danysgrifiadau:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Cyffredinol",
|
||||
"language" : "Iaith",
|
||||
"language_contribute" : "Cyfrannu drwy gyfieithu",
|
||||
"show_unread" : "Dangos ffrydiau a chategoriau gyda dim eitemau heb eu darllen",
|
||||
"social_buttons" : "Dangos botymau rhannu",
|
||||
"scroll_marks" : "Marcio eitemau fel wedi eu darllen wrth sgrolio drwyddynt yn y golwg estynedig "
|
||||
},
|
||||
"appearance" : "Golwg",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Thema",
|
||||
"submit_your_theme" : "Cyflwyna dy thema",
|
||||
"custom_css" : "CSS wedi'i addasu"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Manylion ffrwd",
|
||||
"url" : "URL",
|
||||
"website" : "Gwefan",
|
||||
"name" : "Enw",
|
||||
"category" : "Categori",
|
||||
"position" : "Safle",
|
||||
"last_refresh" : "Adnewyddiad diwethaf",
|
||||
"message" : "Neges adnewyddiad diwethaf",
|
||||
"next_refresh" : "Adnewyddiad nesaf",
|
||||
"queued_for_refresh" : "Ciwiwyd i'w adnewyddu",
|
||||
"feed_url" : "URL Ffrwd",
|
||||
"generate_api_key_first" : "Rhaid creu allwedd API yn dy broffil yn gyntaf.",
|
||||
"unsubscribe" : "Dad-danysgrifio",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Manylion categori",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Categori rhiant"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Enw defnyddiwr",
|
||||
"email" : "E-bost",
|
||||
"change_password" : "Newid cyfrinair",
|
||||
"confirm_password" : "Cadarnhau cyfrinair",
|
||||
"minimum_6_chars" : "Isafswm 6 nod",
|
||||
"passwords_do_not_match" : "Mae'r cyfrineiriau yn wahanol",
|
||||
"api_key" : "Allwedd API",
|
||||
"api_key_not_generated" : "Heb ei gynhyrchu eto",
|
||||
"generate_new_api_key" : "Creu allwedd API newydd",
|
||||
"generate_new_api_key_info" : "Mae newid cyfrinair yn creu allwedd API newydd",
|
||||
"opml_export" : "Allforio OPML",
|
||||
"delete_account" : "Dileu cyfrif",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "Adeiladir CommaFeed ar JAX-RS ac AngularJS. Mae REST API ar gael.",
|
||||
"link_to_documentation" : "Dolen i'r ddogfennaeth."
|
||||
},
|
||||
"keyboard_shortcuts" : "Llwybr byr bysellfwrdd",
|
||||
"version" : "Fersiwn CommaFeed: ",
|
||||
"line1_prefix" : "Mae CommaFeed yn prosiect cod agored. Mae'r cod ar ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Os wyt ti'n ffeindio problem, plîs gad wybod amdano ar dudalen problemau o'r ",
|
||||
"line2_suffix" : " prosiect.",
|
||||
"line3" : "Os wyt ti'n hoffi'r prosiect, plîs ystyria cyfrannu i gefnogi'r datblygwr a helpu gyda chynnal a chadw'r wefan hon.",
|
||||
"line4" : "I'r rhai sy'n hoff o Bitcoin, dyma'r cyfeiriad",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Ap Android",
|
||||
"subscribe_url" : "URL Tanysgrifio",
|
||||
"chrome_extension" : "estyniad Chrome",
|
||||
"firefox_extension" : "estyniad Firefox",
|
||||
"opera_extension" : "estyniad Opera",
|
||||
"subscribe_bookmarklet" : "Ychwanegu botwm tanysgrifio ",
|
||||
"subscribe_bookmarklet_asc" : "Hynaf yn gyntaf",
|
||||
"subscribe_bookmarklet_desc" : "Diweddaraf yn gyntaf",
|
||||
"next_unread_bookmarklet" : "Botwm eitem nesaf heb ei ddarllen (llusgo i far nodau)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Cyfieithiad",
|
||||
"message" : "Rydym angen dy help i gyfieithu CommaFeed.",
|
||||
"link" : "Gweler sut i gyfrannu i gyfieithiadau."
|
||||
},
|
||||
"announcements" : "Datganiadau",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "clic botwm canol llygoden",
|
||||
"open_next_entry" : "agor yr eitem nesaf",
|
||||
"open_previous_entry" : "agor yr eitem flaenorol",
|
||||
"spacebar" : "space/shift+space",
|
||||
"move_page_down_up" : "symud y tudalen i lawr/fyny",
|
||||
"focus_next_entry" : "newid ffocws i'r eitem nesaf heb ei hagor",
|
||||
"focus_previous_entry" : "newid ffocws i'r eitem flaenorol heb ei hagor",
|
||||
"open_next_feed" : "agor y ffrwd neu gategori nesaf",
|
||||
"open_previous_feed" : "agor y ffrwd neu gategori blaenorol",
|
||||
"open_close_current_entry" : "agor/cau yr eitem gyfredol",
|
||||
"open_current_entry_in_new_window" : "agor yr eitem gyfredol mewn ffenestr newydd",
|
||||
"open_current_entry_in_new_window_background" : "agor yr eitem gyfredol mewn ffenestr newydd yn y cefndir",
|
||||
"star_unstar" : "serennu/dadserennu'r eitem gyfredol",
|
||||
"mark_current_entry" : "marcio'r eitem gyfredol fel wedi/heb ei ddarllen",
|
||||
"mark_all_as_read" : "marcio popeth fel wedi ei ddarllen",
|
||||
"open_in_new_tab_mark_as_read" : "agor yr eitem mewn tab newydd a'i farcio fel wedi ei ddarllen",
|
||||
"fullscreen" : "toglo'r golwg sgrin lawn",
|
||||
"font_size" : "cynyddu/lleihau maint ffont yr eitem gyfredol",
|
||||
"go_to_all" : "newid i olwg 'Popeth'",
|
||||
"go_to_starred" : "newid i olwg 'Serennwyd'",
|
||||
"feed_search" : "llywio i danysgrifiad gan roi ei enw mewn"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/da.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Gem",
|
||||
"cancel" : "Annuller",
|
||||
"delete" : "Slet",
|
||||
"required" : "Påkrævet",
|
||||
"download" : "Hent",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Bogmærke",
|
||||
"close" : "Luk",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Abonner",
|
||||
"import" : "Importer",
|
||||
"new_category" : "Ny kategori",
|
||||
"all" : "Alle",
|
||||
"starred" : "Favoritter"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL for abonnement ",
|
||||
"feed_name" : "Abonnementsnavn",
|
||||
"category" : "Kategori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Lad mig importere dine abonnementer fra ",
|
||||
"google_reader_suffix" : " konto.",
|
||||
"google_download" : "Alternativt, upload din subscriptions.xml fil.",
|
||||
"google_download_link" : "Hent den herfra.",
|
||||
"xml_file" : "OPML fil"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Navn",
|
||||
"parent" : "Overordnet"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Ulæst",
|
||||
"all" : "Alle",
|
||||
"previous_entry" : "Forrige artikkel",
|
||||
"next_entry" : "Næste artikkel",
|
||||
"refresh" : "Opdater",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorter efter dato ny/gammel",
|
||||
"titles_only" : "Kun titler",
|
||||
"expanded_view" : "Udvidet visning",
|
||||
"mark_all_as_read" : "Marker alle som læst",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Artikler ældere end én dag",
|
||||
"mark_all_older_week" : "Artikler ældere end én uge",
|
||||
"mark_all_older_two_weeks" : "Artikler ældere end to uger",
|
||||
"settings" : "Indstillinger",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Om",
|
||||
"logout" : "Log ud",
|
||||
"donate" : "Donér"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "af ",
|
||||
"error_while_loading_feed" : "Fejl under indlæsning af artikel",
|
||||
"keep_unread" : "Behold som ulæst",
|
||||
"no_unread_items" : "har ingen ulæste artikler.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Angiv et abonnement...",
|
||||
"help" : "Brug enter tasten til at vælge og piltasterne til at navigere.",
|
||||
"result_prefix" : "Dine abonnementer:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Generelt",
|
||||
"language" : "Sprog",
|
||||
"language_contribute" : "Kontribuer med en oversættelse",
|
||||
"show_unread" : "Vis abonnomenter og kategorier med læste artikler",
|
||||
"social_buttons" : "Vis delingsknapper",
|
||||
"scroll_marks" : "I udvidet visning, marker artikler som læste når der rulles forbi dem"
|
||||
},
|
||||
"appearance" : "Udseende",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Tema",
|
||||
"submit_your_theme" : "Indsend dit tema",
|
||||
"custom_css" : "Brugerdefineret CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Abonnementsdetaljer",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Navn",
|
||||
"category" : "Kategori",
|
||||
"position" : "Position",
|
||||
"last_refresh" : "Sidste opdatering",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Næste opdatering",
|
||||
"queued_for_refresh" : "I kø til opdatering",
|
||||
"feed_url" : "URL for abonnement",
|
||||
"generate_api_key_first" : "Generer en API nøgle i din profil først.",
|
||||
"unsubscribe" : "Afmeld abonnement",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Kategori detaljer",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Overordnet kategori"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Brugernavn",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Skift adgangskode",
|
||||
"confirm_password" : "Bekræft adgangskode",
|
||||
"minimum_6_chars" : "Minimum 6 karakter",
|
||||
"passwords_do_not_match" : "Adgangskoderne er ikke ens",
|
||||
"api_key" : "API nøgle",
|
||||
"api_key_not_generated" : "Ikke genereret endnu",
|
||||
"generate_new_api_key" : "Generer ny API nøgle",
|
||||
"generate_new_api_key_info" : "Ændring af adgangskode vil generere en ny API nøgle",
|
||||
"opml_export" : "OPML eksport",
|
||||
"delete_account" : "Slet konto",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed er bygget oven på JAX-RS og AngularJS. Hvilket gør et REST API tilgængeligt.",
|
||||
"link_to_documentation" : "Link til dokumentationen."
|
||||
},
|
||||
"keyboard_shortcuts" : "Tastaturgenveje",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed er et open-source project. Kildekoden kan findes på ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Hvis du opdager et problem, så rapporter det venligst på ",
|
||||
"line2_suffix" : " projekt.",
|
||||
"line3" : "Hvis du syntes om projektet, overvej venligst at donere for at hjælpe udviklerne og dække omkostningerne til drift af hjemmesiden.",
|
||||
"line4" : "Til dig der foretrækker bitcoin, her er adressen",
|
||||
"goodies" : {
|
||||
"value" : "Godter",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Abonner URL",
|
||||
"chrome_extension" : "Chrome udvidelse",
|
||||
"firefox_extension" : "Firefox udvidelse",
|
||||
"opera_extension" : "Opera udvidelse",
|
||||
"subscribe_bookmarklet" : "Tilføj abonnoment bogmærkeprogram (click)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Næste ulæste artikel bogmærkeprogram (træk til bogmærkebaren)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Oversættelse",
|
||||
"message" : "Vi har brug for din hjælp til at oversætte CommaFeed.",
|
||||
"link" : "Se hvordan du kan kontribuere med oversættelser."
|
||||
},
|
||||
"announcements" : "Meddelelser",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "mellemmuseklik",
|
||||
"open_next_entry" : "åben næste artikel",
|
||||
"open_previous_entry" : "åben forrige artikel",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "sæt fokus på næste arktiel uden at åbne den",
|
||||
"focus_previous_entry" : "sæt fokus på forrige artikel uden at åbne den",
|
||||
"open_next_feed" : "åben næste artikel eller kategori",
|
||||
"open_previous_feed" : "åben forrige artikel eller kategori",
|
||||
"open_close_current_entry" : "åben/luk nuværende artikel",
|
||||
"open_current_entry_in_new_window" : "åben nuværende artikel i et nyt vindue",
|
||||
"open_current_entry_in_new_window_background" : "åben nuværende artikel i et nyt vindue i baggrunden",
|
||||
"star_unstar" : "marker/fjern favorit",
|
||||
"mark_current_entry" : "marker som læst/ulæst",
|
||||
"mark_all_as_read" : "marker alle artikler som læste",
|
||||
"open_in_new_tab_mark_as_read" : "åben artikel i ny fane og marker som læst",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "naviger til et abonnoment ved at skrive dets navn"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/de.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Speichern",
|
||||
"cancel" : "Abbrechen",
|
||||
"delete" : "Löschen",
|
||||
"required" : "Erforderlich",
|
||||
"download" : "Herunterladen",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Lesezeichen",
|
||||
"close" : "Schließen",
|
||||
"tags" : "Tags"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Abonnieren",
|
||||
"import" : "Importieren",
|
||||
"new_category" : "Neue Kategorie",
|
||||
"all" : "Alles",
|
||||
"starred" : "Favoriten"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Feed Adresse",
|
||||
"feed_name" : "Feed Name",
|
||||
"category" : "Kategorie"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Importiere die Feeds von deinem",
|
||||
"google_reader_suffix" : " Konto.",
|
||||
"google_download" : "Alternativ kannst du eine XML-Datei hochladen.",
|
||||
"google_download_link" : "Lade sie hier herunter.",
|
||||
"xml_file" : "OPML Datei"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Name",
|
||||
"parent" : "Übergeordnet"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Ungelesen",
|
||||
"all" : "Alles",
|
||||
"previous_entry" : "Vorheriger Artikel",
|
||||
"next_entry" : "Nächster Artikel",
|
||||
"refresh" : "Aktualisieren",
|
||||
"refresh_all" : "Erzwinge Aktualisierung aller Feeds",
|
||||
"sort_by_asc_desc" : "Nach Datum sortieren (auf-/absteigend)",
|
||||
"titles_only" : "Nur Überschriften",
|
||||
"expanded_view" : "Ausgedehnte Ansicht",
|
||||
"mark_all_as_read" : "Alle Artikel als gelesen markieren",
|
||||
"mark_all_older_12_hours" : "Artikel älter als 12 Stunden",
|
||||
"mark_all_older_day" : "Artikel älter als ein Tag",
|
||||
"mark_all_older_week" : "Artikel älter als eine Woche",
|
||||
"mark_all_older_two_weeks" : "Artikel älter als zwei Wochen",
|
||||
"settings" : "Einstellungen",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Über",
|
||||
"logout" : "Abmelden",
|
||||
"donate" : "Spenden"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "von",
|
||||
"entry_author" : "von ",
|
||||
"error_while_loading_feed" : "Fehler beim Laden des Feeds",
|
||||
"keep_unread" : "Als ungelesen behalten",
|
||||
"no_unread_items" : "hat keine ungelesenen Einträge.",
|
||||
"mark_up_to_here" : "Bis hier alle als gelesen markieren",
|
||||
"search_for" : "Suche nach:",
|
||||
"no_search_results" : "Kein Treffer bei der Suche nach den angegebenen Stichworten"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Gib einen Feednamen ein...",
|
||||
"help" : "Drück Enter zum Auswählen und die Pfeiltasten zum Navigieren.",
|
||||
"result_prefix" : "Deine Feeds:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Allgemein",
|
||||
"language" : "Sprache",
|
||||
"language_contribute" : "Beteilige dich mit Übersetzungen",
|
||||
"show_unread" : "Zeige Feeds und Kategorien mit ungelesenen Einträgen",
|
||||
"social_buttons" : "Zeige Buttons zum Teilen von Inhalten über soziale Netzwerke",
|
||||
"scroll_marks" : "In der ausgedehnten Ansicht werden Artikel beim Scrollen als gelesen markiert"
|
||||
},
|
||||
"appearance" : "Aussehen",
|
||||
"scroll_speed" : "Geschwindigkeit beim scrollen zwischen Einträgen (in Millisekunden)",
|
||||
"scroll_speed_help" : "setze auf 0 zum deaktivieren",
|
||||
"theme" : "Theme",
|
||||
"submit_your_theme" : "Füg dein Theme hinzu",
|
||||
"custom_css" : "Eigenes CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Feed details",
|
||||
"url" : "URL",
|
||||
"website" : "Webseite",
|
||||
"name" : "Name",
|
||||
"category" : "Kategorie",
|
||||
"position" : "Position",
|
||||
"last_refresh" : "Letzte Aktualisierung",
|
||||
"message" : "Nachricht der letzten Aktualisierung",
|
||||
"next_refresh" : "Nächste Aktualisierung",
|
||||
"queued_for_refresh" : "Wartet auf Aktualisierung",
|
||||
"feed_url" : "Feed Adresse",
|
||||
"generate_api_key_first" : "Generiere zuerst einen API Schlüssel in deinem Profil.",
|
||||
"unsubscribe" : "Kündigen",
|
||||
"unsubscribe_confirmation" : "Bist du sicher das du diesen Feed kündigen möchtest?",
|
||||
"delete_category_confirmation" : "Bist du sicher das du diese Kategorie löschen möchtest?",
|
||||
"category_details" : "Kategoriedetails",
|
||||
"tag_details" : "Tag Details",
|
||||
"parent_category" : "Übergeordnete Kategorie"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Benutzername",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Passwort ändern",
|
||||
"confirm_password" : "Passwort bestätigen",
|
||||
"minimum_6_chars" : "Mindestens 6 Zeichen",
|
||||
"passwords_do_not_match" : "Passwörter stimmen nicht überein",
|
||||
"api_key" : "API Schlüssel",
|
||||
"api_key_not_generated" : "Noch nicht generiert",
|
||||
"generate_new_api_key" : "Generiere einen neuen API key",
|
||||
"generate_new_api_key_info" : "Das Ändern des Passwortes erzeugt einen neuen API Schlüssel",
|
||||
"opml_export" : "OPML exportieren",
|
||||
"delete_account" : "Konto löschen",
|
||||
"delete_account_confirmation" : "Dein Konto löschen? Es gibt kein Zurück!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed basiert auf JAX-RS und AngularJS. Daher ist eine REST API verfügbar.",
|
||||
"link_to_documentation" : "Link zur Dokumentation."
|
||||
},
|
||||
"keyboard_shortcuts" : "Tastatur Kurzbefehle",
|
||||
"version" : "CommaFeed Version",
|
||||
"line1_prefix" : "CommaFeed ist ein quell-offenes Projekt. Quellen werden auf ",
|
||||
"line1_suffix" : " gehosted.",
|
||||
"line2_prefix" : "Wenn Probleme auftauchen, melde diese bitte auf dem ",
|
||||
"line2_suffix" : " Projekt.",
|
||||
"line3" : "Wenn dir dieses Projekt gefällt, würde ich mich über eine kleine Spende zur Deckung der Serverkosten freuen.",
|
||||
"line4" : "Für diejenigen, die Bitcoin bevorzugen ist hier meine Adresse ",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app",
|
||||
"subscribe_url" : "Abonnement-URL",
|
||||
"chrome_extension" : "Chrome Erweiterung",
|
||||
"firefox_extension" : "Firefox Add-on",
|
||||
"opera_extension" : "Opera Erweiterung",
|
||||
"subscribe_bookmarklet" : "Abonnieren-bookmarklet (klicken)",
|
||||
"subscribe_bookmarklet_asc" : "Älteste zuerst",
|
||||
"subscribe_bookmarklet_desc" : "Neuste zuerst",
|
||||
"next_unread_bookmarklet" : "Nächster ungelesener Artikel-bookmarklet (in Lesezeichenleiste ziehen)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Übersetzung",
|
||||
"message" : "Wir brauchen deine Hilfe zur Übersetzung von CommaFeed.",
|
||||
"link" : "Wie du uns dabei helfen kannst"
|
||||
},
|
||||
"announcements" : "Neuigkeiten",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "Mittlere Maustaste",
|
||||
"open_next_entry" : "nächsten Artikel öffnen",
|
||||
"open_previous_entry" : "vorherigen Artikels öffnen",
|
||||
"spacebar" : "Leertaste/Shift+Leertaste",
|
||||
"move_page_down_up" : "Bewegt die Seite hoch/runter",
|
||||
"focus_next_entry" : "nächsten Artikel fokussieren ohne ihn zu öffnen",
|
||||
"focus_previous_entry" : "vorherigen Artikel fokussieren ohne ihn zu öffnen",
|
||||
"open_next_feed" : "nächsten Feed oder Kategorie öffnen",
|
||||
"open_previous_feed" : "vorherigen Feed oder Kategorie öffnen",
|
||||
"open_close_current_entry" : "aktuellen Artikels öffnen/schließen",
|
||||
"open_current_entry_in_new_window" : "aktuellen Artikel in neuem Fenster öffnen",
|
||||
"open_current_entry_in_new_window_background" : "aktuellen Artikel in neuem Fenster im Hintergrund öffnen",
|
||||
"star_unstar" : "de-/favorisieren des aktuellen Artikels",
|
||||
"mark_current_entry" : "aktuellen Artikel als gelesen/ungelesen markieren",
|
||||
"mark_all_as_read" : "alle Artikel als gelesen markieren",
|
||||
"open_in_new_tab_mark_as_read" : "öffnen des Artikels in einem neuen Tab und als gelesen markieren",
|
||||
"fullscreen" : "Vollbildmodus an-/ausschalten",
|
||||
"font_size" : "Schriftgröße des aktuellen Artikels vergrößern/verkleinern",
|
||||
"go_to_all" : "Gehe zur Ansicht \"Alle\"",
|
||||
"go_to_starred" : "Gehe zur Ansicht \"Favoriten\"",
|
||||
"feed_search" : "zu einem Feed springen durch durch eingeben seines Namens"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/en.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Save",
|
||||
"cancel" : "Cancel",
|
||||
"delete" : "Delete",
|
||||
"required" : "Required",
|
||||
"download" : "Download",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Bookmark",
|
||||
"close" : "Close",
|
||||
"tags" : "Tags"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Subscribe",
|
||||
"import" : "Import",
|
||||
"new_category" : "New category",
|
||||
"all" : "All",
|
||||
"starred" : "Starred"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Feed URL",
|
||||
"feed_name" : "Feed Name",
|
||||
"category" : "Category"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Let me import your feeds from your ",
|
||||
"google_reader_suffix" : " account.",
|
||||
"google_download" : "Alternatively, upload your subscriptions.xml file.",
|
||||
"google_download_link" : "Download it from here.",
|
||||
"xml_file" : "OPML File"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Name",
|
||||
"parent" : "Parent"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Unread",
|
||||
"all" : "All",
|
||||
"previous_entry" : "Previous entry",
|
||||
"next_entry" : "Next entry",
|
||||
"refresh" : "Refresh",
|
||||
"refresh_all" : "Force refresh all my feeds",
|
||||
"sort_by_asc_desc" : "Sort by date asc/desc",
|
||||
"titles_only" : "Titles only",
|
||||
"expanded_view" : "Expanded view",
|
||||
"mark_all_as_read" : "Mark all as read",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours",
|
||||
"mark_all_older_day" : "Items older than a day",
|
||||
"mark_all_older_week" : "Items older than a week",
|
||||
"mark_all_older_two_weeks" : "Items older than two weeks",
|
||||
"settings" : "Settings",
|
||||
"profile" : "Profile",
|
||||
"admin" : "Admin",
|
||||
"about" : "About",
|
||||
"logout" : "Logout",
|
||||
"donate" : "Donate"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "Error while loading this feed",
|
||||
"keep_unread" : "Keep unread",
|
||||
"no_unread_items" : "has no unread items.",
|
||||
"mark_up_to_here" : "Mark as read up to here",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Type in a subscription...",
|
||||
"help" : "Use the return key to select and arrow keys to navigate.",
|
||||
"result_prefix" : "Your subscriptions:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "General",
|
||||
"language" : "Language",
|
||||
"language_contribute" : "Contribute with translations",
|
||||
"show_unread" : "Show feeds and categories with no unread entries",
|
||||
"social_buttons" : "Show social sharing buttons",
|
||||
"scroll_marks" : "In expanded view, scrolling through entries mark them as read"
|
||||
},
|
||||
"appearance" : "Appearance",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds)",
|
||||
"scroll_speed_help" : "set to 0 to disable",
|
||||
"theme" : "Theme",
|
||||
"submit_your_theme" : "Submit your theme",
|
||||
"custom_css" : "Custom CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Feed details",
|
||||
"url" : "URL",
|
||||
"website" : "Website",
|
||||
"name" : "Name",
|
||||
"category" : "Category",
|
||||
"position" : "Position",
|
||||
"last_refresh" : "Last refresh",
|
||||
"message" : "Last refresh message",
|
||||
"next_refresh" : "Next refresh",
|
||||
"queued_for_refresh" : "Queued for refresh",
|
||||
"feed_url" : "Feed URL",
|
||||
"generate_api_key_first" : "Generate an API key in your profile first.",
|
||||
"unsubscribe" : "Unsubscribe",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed?",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category?",
|
||||
"category_details" : "Category details",
|
||||
"tag_details" : "Tag details",
|
||||
"parent_category" : "Parent category"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "User name",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Change password",
|
||||
"confirm_password" : "Confirm password",
|
||||
"minimum_6_chars" : "Minimum 6 characters",
|
||||
"passwords_do_not_match" : "Passwords do not match",
|
||||
"api_key" : "API key",
|
||||
"api_key_not_generated" : "Not generated yet",
|
||||
"generate_new_api_key" : "Generate new API key",
|
||||
"generate_new_api_key_info" : "Changing password will generate a new API key",
|
||||
"opml_export" : "OPML export",
|
||||
"delete_account" : "Delete account",
|
||||
"delete_account_confirmation" : "Delete your account? There's no turning back!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed is built on top of JAX-RS and AngularJS. As such, a REST API is available.",
|
||||
"link_to_documentation" : "Link to the documentation."
|
||||
},
|
||||
"keyboard_shortcuts" : "Keyboard shortcuts",
|
||||
"version" : "CommaFeed version",
|
||||
"line1_prefix" : "CommaFeed is an open-source project. Sources are hosted on ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "If you encounter an issue, please report it on the issues page of the ",
|
||||
"line2_suffix" : " project.",
|
||||
"line3" : "If you like this project, please consider a donation to support the developer and help cover the costs of keeping this website online.",
|
||||
"line4" : "For those of you who prefer bitcoin, here is the address",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app",
|
||||
"subscribe_url" : "Subscribe URL",
|
||||
"chrome_extension" : "Chrome extension",
|
||||
"firefox_extension" : "Firefox extension",
|
||||
"opera_extension" : "Opera extension",
|
||||
"subscribe_bookmarklet" : "Add subscription bookmarklet (click)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first",
|
||||
"subscribe_bookmarklet_desc" : "Newest first",
|
||||
"next_unread_bookmarklet" : "Next unread item bookmarklet (drag to bookmark bar)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Translation",
|
||||
"message" : "We need your help to translate CommaFeed.",
|
||||
"link" : "See how to contribute with translations."
|
||||
},
|
||||
"announcements" : "Announcements",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "mouse middleclick",
|
||||
"open_next_entry" : "open next entry",
|
||||
"open_previous_entry" : "open previous entry",
|
||||
"spacebar" : "space/shift+space",
|
||||
"move_page_down_up" : "moves the page down/up",
|
||||
"focus_next_entry" : "set focus on next entry without opening it",
|
||||
"focus_previous_entry" : "set focus on previous entry without opening it",
|
||||
"open_next_feed" : "open next feed or category",
|
||||
"open_previous_feed" : "open previous feed or category",
|
||||
"open_close_current_entry" : "open/close current entry",
|
||||
"open_current_entry_in_new_window" : "open current entry in a new window",
|
||||
"open_current_entry_in_new_window_background" : "open current entry in a new window in the background",
|
||||
"star_unstar" : "star/unstar current entry",
|
||||
"mark_current_entry" : "mark as read/unread current entry",
|
||||
"mark_all_as_read" : "mark all entries as read",
|
||||
"open_in_new_tab_mark_as_read" : "open entry in new tab and mark as read",
|
||||
"fullscreen" : "toggle full screen mode",
|
||||
"font_size" : "increase/decrease font size of the current entry",
|
||||
"go_to_all" : "go to the All view",
|
||||
"go_to_starred" : "go to the Starred view",
|
||||
"feed_search" : "navigate to a subscription by entering the subscription name"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/es.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Guardar",
|
||||
"cancel" : "Cancelar",
|
||||
"delete" : "Eliminar",
|
||||
"required" : "Requerido",
|
||||
"download" : "Descargar",
|
||||
"link" : "Enlace",
|
||||
"bookmark" : "Marcador",
|
||||
"close" : "Close ",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Subscribir",
|
||||
"import" : "Importar",
|
||||
"new_category" : "Nueva categoría",
|
||||
"all" : "Todos",
|
||||
"starred" : "Destacado"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL del Canal",
|
||||
"feed_name" : "Nombre del Canal",
|
||||
"category" : "Categoría"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Déjame importar tus canales de tu",
|
||||
"google_reader_suffix" : " cuenta.",
|
||||
"google_download" : "También puedes subir tu archivo subscriptions.xml.",
|
||||
"google_download_link" : "Descárgalo de aquí.",
|
||||
"xml_file" : "Archivo OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nombre",
|
||||
"parent" : "Padre"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Sin Leer",
|
||||
"all" : "Todos",
|
||||
"previous_entry" : "Entrada Anterior",
|
||||
"next_entry" : "Próxima Entrada",
|
||||
"refresh" : "Atualizar",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Ordenar por fecha asc/desc",
|
||||
"titles_only" : "Sólo Títulos",
|
||||
"expanded_view" : "Vista Expandida",
|
||||
"mark_all_as_read" : "Marcar todos como leído",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Artículos anteriores a un día",
|
||||
"mark_all_older_week" : "Artículos más de una semana",
|
||||
"mark_all_older_two_weeks" : "Artículos más de does semanas",
|
||||
"settings" : "Ajustes",
|
||||
"profile" : "Perfil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Acerca de",
|
||||
"logout" : "Cerrar sesión",
|
||||
"donate" : "Donar"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "Error mientras se cargaba este canal",
|
||||
"keep_unread" : "Guardar no leídos",
|
||||
"no_unread_items" : "no tiene items sin leer.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Type in a subscription... ",
|
||||
"help" : "Use the return key to select and arrow keys to navigate. ",
|
||||
"result_prefix" : "Your subscriptions: "
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "General",
|
||||
"language" : "Lenguaje",
|
||||
"language_contribute" : "Contribuye con traducciones",
|
||||
"show_unread" : "Mostrar canales y categorías sin entradas no leídas.",
|
||||
"social_buttons" : "Mostrar botones de compartir de redes sociales.",
|
||||
"scroll_marks" : "En vista expandida, el desplazamiento por las entradas las marca como leídas"
|
||||
},
|
||||
"appearance" : "Appearance ",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Theme ",
|
||||
"submit_your_theme" : "Submit your theme ",
|
||||
"custom_css" : "CSS Personalizado"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Detalles de Canales",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Nombre",
|
||||
"category" : "Categoría",
|
||||
"position" : "Position ",
|
||||
"last_refresh" : "Última actualización",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Next refresh ",
|
||||
"queued_for_refresh" : "Queued for refresh ",
|
||||
"feed_url" : "URL del Canal",
|
||||
"generate_api_key_first" : "Genera una llave API en tu perfil primero.",
|
||||
"unsubscribe" : "Terminar subscripción",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Detalles de la categoría",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Categoría principal"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Nombre de usuario",
|
||||
"email" : "Correo",
|
||||
"change_password" : "Cambiar contraseña",
|
||||
"confirm_password" : "Confirmar contraseña",
|
||||
"minimum_6_chars" : "Mínimo 6 caracteres",
|
||||
"passwords_do_not_match" : "Las contraseñas no coinciden",
|
||||
"api_key" : "Llave API",
|
||||
"api_key_not_generated" : "No generado todavía",
|
||||
"generate_new_api_key" : "Generar nueva llave API",
|
||||
"generate_new_api_key_info" : "Al cambiar la contraseña se generará una nueva llave API",
|
||||
"opml_export" : "Exportación de OPML",
|
||||
"delete_account" : "Eliminar cuenta",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed está construido con el uso de JAX-RS y AngularJS. Por eso, un REST API esta disponible.",
|
||||
"link_to_documentation" : "Vínculo de la documentación."
|
||||
},
|
||||
"keyboard_shortcuts" : "Atajos de teclado",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed es un proyecto open-source. El código se encuentra en ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Si encuentras un problema, por favor reportalo en la página de problemas de ",
|
||||
"line2_suffix" : " del proyecto.",
|
||||
"line3" : "Si te gusta este proyecto, por favor considera realizar una donacion para apoyar al desarrollador y ayudar a cubrir los costos de mantenimiento.",
|
||||
"line4" : "For those of you who prefer bitcoin, here is the address ",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Subscribe URL ",
|
||||
"chrome_extension" : "Extensión de Chrome",
|
||||
"firefox_extension" : "Extensión de Firefox",
|
||||
"opera_extension" : "Opera extension ",
|
||||
"subscribe_bookmarklet" : "Add subscription bookmarklet (click) ",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Next unread item bookmarklet (drag to bookmark bar) "
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Traducción",
|
||||
"message" : "Necesitamos tu ayuda para ayudar a traducir CommaFeed.",
|
||||
"link" : "Ver como contribuir con traducciones."
|
||||
},
|
||||
"announcements" : "Anuncios",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "ratón botón medio",
|
||||
"open_next_entry" : "abrir próxima entrada",
|
||||
"open_previous_entry" : "abrir entrada previa",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "Establecer el foco en la próxima entrada sin abrirlo",
|
||||
"focus_previous_entry" : "Establecer el foco en la entrada anterior sin abrirlo",
|
||||
"open_next_feed" : "open next feed or category ",
|
||||
"open_previous_feed" : "open previous feed or category ",
|
||||
"open_close_current_entry" : "abrir/cerrar entrada actual",
|
||||
"open_current_entry_in_new_window" : "abrir entrada actual en una nueva ventana",
|
||||
"open_current_entry_in_new_window_background" : "open current entry in a new window in the background ",
|
||||
"star_unstar" : "marcar/no marcar la entrada actual",
|
||||
"mark_current_entry" : "marcar como leída/no la leída entrada actual",
|
||||
"mark_all_as_read" : "marcar todas las entradas como leídas",
|
||||
"open_in_new_tab_mark_as_read" : "abrir entrada en una nueva pestaña y marcar como leída",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "navigate to a subscription by entering the subscription name "
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/fa.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "ذخیره",
|
||||
"cancel" : "لغو",
|
||||
"delete" : "حذف",
|
||||
"required" : "لازم",
|
||||
"download" : "بارگیری",
|
||||
"link" : "پیوند",
|
||||
"bookmark" : "بوکمارک",
|
||||
"close" : "بستن",
|
||||
"tags" : "برجسپها"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "مشترک شوید",
|
||||
"import" : "درونریزی",
|
||||
"new_category" : "ردهٔ جدید",
|
||||
"all" : "کل مطالب",
|
||||
"starred" : "ستارهدار"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "نشانی خوراک",
|
||||
"feed_name" : "نام خوراک",
|
||||
"category" : "دسته"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "اجازه بده خوراکهایتان را از حساب",
|
||||
"google_reader_suffix" : "وارد سازم.",
|
||||
"google_download" : "یا به جای آن، پروندهٔ subscriptions.xml خود را بارگذاری کنید.",
|
||||
"google_download_link" : "آن را اینجا بارگیری کنید.",
|
||||
"xml_file" : "پروندهٔ OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "نام",
|
||||
"parent" : "پدر"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "خواندهنشده",
|
||||
"all" : "همه",
|
||||
"previous_entry" : "مطلب قبلی",
|
||||
"next_entry" : "مطلب بعدی",
|
||||
"refresh" : "تازهسازی",
|
||||
"refresh_all" : "مجبورکردن تازهسازی همهٔ خوراکها",
|
||||
"sort_by_asc_desc" : "مرتبکردن بر اساس تاریخ بهصورت صعودی/نزولی",
|
||||
"titles_only" : "فقط عنوانها",
|
||||
"expanded_view" : "نمای گسترشیافته",
|
||||
"mark_all_as_read" : "علامتگذاری تمامی مطالب بهعنوان خواندهشده",
|
||||
"mark_all_older_12_hours" : "مطالب قدیمیتر از ۱۲ ساعت",
|
||||
"mark_all_older_day" : "مطالب قدیمیتر از یک روز",
|
||||
"mark_all_older_week" : "مطالب قدیمیتر از یک هفته",
|
||||
"mark_all_older_two_weeks" : "مطالب قدیمی تر از چند هفته قیل",
|
||||
"settings" : "تنظیمات",
|
||||
"profile" : "نمایه",
|
||||
"admin" : "مدیریت",
|
||||
"about" : "درباره",
|
||||
"logout" : "خروج",
|
||||
"donate" : "کمک مالی"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "از",
|
||||
"entry_author" : "توسط",
|
||||
"error_while_loading_feed" : "متأسفانه، هنگام بارگیری این خوراک خطایی رخدادهاست.",
|
||||
"keep_unread" : "خواندهنشده نگهدار",
|
||||
"no_unread_items" : "هیچ مطلب خواندهنشدهای ندارد.",
|
||||
"mark_up_to_here" : "تا اینجا را خواندهشده در نظر بگیر",
|
||||
"search_for" : "جستجو برای:",
|
||||
"no_search_results" : "هیج نتیجهای برای کلیدواژههای درخواستی یافت نشد"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "نوشتن بر روی یک اشتراک...",
|
||||
"help" : "دکمهٔ بازگشت برای انتخاب و دکمههای جهتدار را برای ناوبری استفاده کن.",
|
||||
"result_prefix" : "اشتراکهای شما:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "همگانی",
|
||||
"language" : "زبان",
|
||||
"language_contribute" : "مشارکت در ترجمه",
|
||||
"show_unread" : "تنها خوراکها و دستههای را که دارای مطالب نخوانده هستند نمایش بده.",
|
||||
"social_buttons" : "نشاندادن دکمههای اشتراکگذاری در شبکههای اجتماعی",
|
||||
"scroll_marks" : "در نمای گسترشیافته، لغزیدن بر روی مطالب بهعنوان نشانهگذاری بهعنوان خواندهشده در نظر گرفتهشوند."
|
||||
},
|
||||
"appearance" : "ظاهر",
|
||||
"scroll_speed" : "سرعت لغزش هنگام گشتن بین مدخلها (به میلیثانیه)",
|
||||
"scroll_speed_help" : "قراردادن به ۰ برای غیرفعالکردن",
|
||||
"theme" : "پوسته",
|
||||
"submit_your_theme" : "پوستهٔ خود را ارسالکنید",
|
||||
"custom_css" : "سیاساس شخصیسازیشده"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "جزئیات خوراک",
|
||||
"url" : "نشانی",
|
||||
"website" : "وبگاه",
|
||||
"name" : "نام",
|
||||
"category" : "دسته",
|
||||
"position" : "موقعیت",
|
||||
"last_refresh" : "آخرین بروزرسانی",
|
||||
"message" : "پیام آخرین تازهسازی",
|
||||
"next_refresh" : "بروزرسانی بعدی",
|
||||
"queued_for_refresh" : "منتظر برای بروزرسانی",
|
||||
"feed_url" : "نشانی خوراک",
|
||||
"generate_api_key_first" : "ابتدا یک کلید API در نمایهٔ خود ایجاد کنید.",
|
||||
"unsubscribe" : "لغو اشتراک",
|
||||
"unsubscribe_confirmation" : "مطمئنید میخواهید از این این لغو اشتراک کنید؟",
|
||||
"delete_category_confirmation" : "مطمئنید میخواهید این رده را حذف کنید؟",
|
||||
"category_details" : "جزئیات دسته",
|
||||
"tag_details" : "جزئیات برچسپ",
|
||||
"parent_category" : "ردهٔ پدر"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "نام کاربری",
|
||||
"email" : "رایانامه",
|
||||
"change_password" : "تغییر گذرواژه",
|
||||
"confirm_password" : "تأیید گذرواژه",
|
||||
"minimum_6_chars" : "حداقل ۶ نویسه",
|
||||
"passwords_do_not_match" : "گذرواژهها انطباق ندارند",
|
||||
"api_key" : "کلید API",
|
||||
"api_key_not_generated" : "هنوز ایجاد نشدهاست",
|
||||
"generate_new_api_key" : "ایجاد کلید جدید API",
|
||||
"generate_new_api_key_info" : "تغییر گذرواژه کلید API بهوجود خواهد آورد.",
|
||||
"opml_export" : "خارجسازی OPML",
|
||||
"delete_account" : "حذف حساب کاربری",
|
||||
"delete_account_confirmation" : "حذف حسابتان؟ بازگشتی وجود ندارد!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "کامافید بر روی JAX-RS و AngularJS ساختهشدهاست. به همین دلیل API REST موجود است.",
|
||||
"link_to_documentation" : "پیوند به مستندات."
|
||||
},
|
||||
"keyboard_shortcuts" : "کلیدهای میانبر",
|
||||
"version" : "نسخهٔ کامافید",
|
||||
"line1_prefix" : "کامافید یک پروژه متنباز است. مخازن آن در ",
|
||||
"line1_suffix" : "میزبانی میشود.",
|
||||
"line2_prefix" : "اگر شما به مسئلهای برخورده اید، لطفاً آن را در صفحه مسائل گزارش دهید ",
|
||||
"line2_suffix" : " پروژه.",
|
||||
"line3" : "در صورتی که شما به این پروژه علاقمندید، لطفاً مبلغی را هرچند ناچیزه برای حمایت از توسعهدهنده و کمک به تأمین هزینههای نگهداری این وبگاه کمک کنید.",
|
||||
"line4" : "برای کسانی که بیتکوین را ترجیح میدهند، نشانی آن اینجاست",
|
||||
"goodies" : {
|
||||
"value" : "افزونهها",
|
||||
"android_app" : "برنامهٔ اندرویدی",
|
||||
"subscribe_url" : "اشتراک در نشانی",
|
||||
"chrome_extension" : "افزونهٔ کروم",
|
||||
"firefox_extension" : "افزونهٔ فایرفاکس",
|
||||
"opera_extension" : "افزونهٔ اپرا",
|
||||
"subscribe_bookmarklet" : "افزودن بوکمارکلت اشتراک (با کلیک)",
|
||||
"subscribe_bookmarklet_asc" : "اول قدیمیترینها",
|
||||
"subscribe_bookmarklet_desc" : "اول جدیدترینها",
|
||||
"next_unread_bookmarklet" : "بوکمارکلت مطلب خوانده نشدهٔ بعدی(با کشیدن و رهاکردن در نوار بوکمارکلت)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "ترجمه",
|
||||
"message" : "ما به کمک شما برای ترجمهٔ کامافید نیازمدیم.",
|
||||
"link" : "ببینید چگونه میتوان در ترجمههای مشارکت نمود."
|
||||
},
|
||||
"announcements" : "اطلاعیهها",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "کلیک وسطی موشواره",
|
||||
"open_next_entry" : "بازکردن مطلب بعدی",
|
||||
"open_previous_entry" : "بازکردن مطلب قبلی",
|
||||
"spacebar" : "space/shift+space",
|
||||
"move_page_down_up" : "صفحه را بالا/پایین انتقال میدهد",
|
||||
"focus_next_entry" : "رفتن بر روی مطلب بعدی بدون بازکردن کامل آن",
|
||||
"focus_previous_entry" : "رفتن بر روی مطلب بعدی قبلی بازکردن کامل آن",
|
||||
"open_next_feed" : "بازکردن خوراک یا دستهٔ بعدی",
|
||||
"open_previous_feed" : "بازکردن خوراک یا دستهٔ بعدی",
|
||||
"open_close_current_entry" : "باز/بستن مطلب جاری",
|
||||
"open_current_entry_in_new_window" : "بازکردن مطلب جاری در پنجرهای جدید",
|
||||
"open_current_entry_in_new_window_background" : "بازکردن مطلب جاری در پنجرهای جدید در پسزمینه",
|
||||
"star_unstar" : "نشانهدارکردن/نکردن مطلب جاری",
|
||||
"mark_current_entry" : "علامتگذاری مطلب جاری بهعنوان خواندهشده/نشده",
|
||||
"mark_all_as_read" : "علامتگذاری تمامی مطالب بهعنوان خواندهشده",
|
||||
"open_in_new_tab_mark_as_read" : "بازکردن مطلب در سربرگ جدید و علامتگذاری آن بهعنوان خواندهشده",
|
||||
"fullscreen" : "فعال/غیرفعالکردن حالت تمام صفحه",
|
||||
"font_size" : "افزایش/کاهش اندازهٔ قلم مدخل فعلی",
|
||||
"go_to_all" : "رفتن به نمای همه",
|
||||
"go_to_starred" : "رفتن به نمای ستاره دادهشدهها",
|
||||
"feed_search" : "ناوبری به یک اشتراک با نوشتن نام اشتراک"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/fi.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Tallenna",
|
||||
"cancel" : "Peruuta",
|
||||
"delete" : "Poista",
|
||||
"required" : "Pakollinen",
|
||||
"download" : "Lataa",
|
||||
"link" : "Linkki",
|
||||
"bookmark" : "Kirjanmerkki",
|
||||
"close" : "Sulje",
|
||||
"tags" : "Tagit"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Tilaa syöte",
|
||||
"import" : "Tuo",
|
||||
"new_category" : "Uusi kansio",
|
||||
"all" : "Kaikki",
|
||||
"starred" : "Tähdelliset"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Syötteen osoite",
|
||||
"feed_name" : "Syötteen nimi",
|
||||
"category" : "Kansio"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Tuo tilaukset",
|
||||
"google_reader_suffix" : "-tunnukseltasi.",
|
||||
"google_download" : "Vaihtoehtoisesti voit tuoda tilaukset subscriptions.xml -tiedostolla.",
|
||||
"google_download_link" : "Lataa se täältä.",
|
||||
"xml_file" : "OPML-tiedosto"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nimi",
|
||||
"parent" : "Yläkansio"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Lukemattomat",
|
||||
"all" : "Kaikki",
|
||||
"previous_entry" : "Edellinen otsikko",
|
||||
"next_entry" : "Seuraava otsikko",
|
||||
"refresh" : "Päivitä",
|
||||
"refresh_all" : "Pakota kaikkien syötteiden päivitys",
|
||||
"sort_by_asc_desc" : "Järjestä päivämäärän mukaan nousevasti/laskevasti",
|
||||
"titles_only" : "Näytä vain otsikot",
|
||||
"expanded_view" : "Laajennettu näkymä",
|
||||
"mark_all_as_read" : "Merkitse kaikki luetuiksi",
|
||||
"mark_all_older_12_hours" : "12 tuntia vanhemmat otsikot",
|
||||
"mark_all_older_day" : "Päivää vanhemmat otsikot",
|
||||
"mark_all_older_week" : "Viikkoa vanhemmat otsikot",
|
||||
"mark_all_older_two_weeks" : "Kahta viikkoa vanhemmat otsikot",
|
||||
"settings" : "Asetukset",
|
||||
"profile" : "Profiili",
|
||||
"admin" : "Ylläpito",
|
||||
"about" : "Tietoja",
|
||||
"logout" : "Kirjaudu ulos",
|
||||
"donate" : "Lahjoita"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "syötteestä",
|
||||
"entry_author" : "kirjoittanut",
|
||||
"error_while_loading_feed" : "Virhe tilausta ladattaessa",
|
||||
"keep_unread" : "Pidä lukemattomana",
|
||||
"no_unread_items" : "ei sisällä lukemattomia otsikoita.",
|
||||
"mark_up_to_here" : "Merkitse luetuksi tähän asti",
|
||||
"search_for" : "Etsi sanoilla:",
|
||||
"no_search_results" : "Ei tuloksia annetuilla hakusanoilla."
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Kirjoita syötteen nimi...",
|
||||
"help" : "Siirry syötteiden välillä nuolinäppäimillä ja valitse syöte enterillä.",
|
||||
"result_prefix" : "Tilatut syötteesi:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Yleiset",
|
||||
"language" : "Kieli",
|
||||
"language_contribute" : "Avusta käännösten tekemisessä.",
|
||||
"show_unread" : "Näytä syötteet ja kansiot, joissa ei ole lukemattomia otsikoita",
|
||||
"social_buttons" : "Näytä jakonapit",
|
||||
"scroll_marks" : "Laajennetussa näkymässä otsikoiden selaaminen merkitsee ne luetuiksi"
|
||||
},
|
||||
"appearance" : "Ulkonäkö",
|
||||
"scroll_speed" : "Vieritysnopeus otsikoiden välillä navigoidessa (millisekunneissa)",
|
||||
"scroll_speed_help" : "Aseta 0 poistaaksesi vieritys käytöstä.",
|
||||
"theme" : "Teema",
|
||||
"submit_your_theme" : "Lähetä oma teemasi",
|
||||
"custom_css" : "Oma CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Tilauksen tiedot",
|
||||
"url" : "Osoite",
|
||||
"website" : "Sivusto",
|
||||
"name" : "Nimi",
|
||||
"category" : "Kansio",
|
||||
"position" : "Paikka",
|
||||
"last_refresh" : "Viimeisin päivitys",
|
||||
"message" : "Viimeisimmän päivityksen viesti",
|
||||
"next_refresh" : "Seuraava päivitys",
|
||||
"queued_for_refresh" : "Jonossa päivitettäväksi",
|
||||
"feed_url" : "Syötteen osoite",
|
||||
"generate_api_key_first" : "Luo API-avain profiilissasi.",
|
||||
"unsubscribe" : "Peruuta tilaus",
|
||||
"unsubscribe_confirmation" : "Haluatko varmasti lopettaa tämän syötteen tilauksen?",
|
||||
"delete_category_confirmation" : "Haluatko varmasti poistaa tämän kansion?",
|
||||
"category_details" : "Kansion tiedot",
|
||||
"tag_details" : "Tagin tiedot",
|
||||
"parent_category" : "Yläkansio"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Käyttäjänimi",
|
||||
"email" : "Sähköposti",
|
||||
"change_password" : "Vaihda salasana",
|
||||
"confirm_password" : "Vahvista uusi salasana",
|
||||
"minimum_6_chars" : "Vähintään 6 merkkiä",
|
||||
"passwords_do_not_match" : "Salasanat eivät täsmää",
|
||||
"api_key" : "API-avain",
|
||||
"api_key_not_generated" : "API-avainta ei ole vielä luotu",
|
||||
"generate_new_api_key" : "Luo uusi API-avain",
|
||||
"generate_new_api_key_info" : "Salasanan vaihtaminen luo uuden API-avaimen",
|
||||
"opml_export" : "OPML vienti",
|
||||
"delete_account" : "Poista tunnus",
|
||||
"delete_account_confirmation" : "Haluatko varmasti poistaa tunnuksesi? Tätä ei voi perua!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST-API",
|
||||
"line1" : "CommaFeed on rakennettu JAX-RS:n ja AngularJS:n avulla. REST API on myös saatavilla.",
|
||||
"link_to_documentation" : "Linkki dokumentaatioon."
|
||||
},
|
||||
"keyboard_shortcuts" : "Näppäinoikotiet",
|
||||
"version" : "CommaFeedin versio",
|
||||
"line1_prefix" : "CommaFeed on avoimen lähdekoodin projekti. Lähdekoodi on saatavilla ",
|
||||
"line1_suffix" : ":ssa.",
|
||||
"line2_prefix" : "Jos huomaat ongelmia, ilmoita niistä ",
|
||||
"line2_suffix" : "-projektin ongelmasivulla.",
|
||||
"line3" : "Jos pidät CommaFeedistä, harkitse lahjoitusta kehittäjää tukeaksesi ja auttaaksesi sivuston kulujen kattamisessa.",
|
||||
"line4" : "Tässä myös osoite bitcoin-lahjoituksia varten:",
|
||||
"goodies" : {
|
||||
"value" : "Ekstrat",
|
||||
"android_app" : "Android-sovellus",
|
||||
"subscribe_url" : "Tilausosoite",
|
||||
"chrome_extension" : "Chrome-laajennus",
|
||||
"firefox_extension" : "Firefox-laajennus",
|
||||
"opera_extension" : "Opera-laajennus",
|
||||
"subscribe_bookmarklet" : "Lisää tilaus -kirjanmerkki (klikkaa) ",
|
||||
"subscribe_bookmarklet_asc" : "Vanhin ensiksi",
|
||||
"subscribe_bookmarklet_desc" : "Uusin ensiksi",
|
||||
"next_unread_bookmarklet" : "Seuraava lukematon otsikko -kirjanmerkki (raahaa kirjanmerkkipalkkiin)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Kääntäminen",
|
||||
"message" : "Tarvitsemme apuasi CommaFeedin kääntämiseksi.",
|
||||
"link" : "Katso kuinka voit auttaa kännösten tekemisessä."
|
||||
},
|
||||
"announcements" : "Ilmoitukset",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "hiiren keskinappi",
|
||||
"open_next_entry" : "avaa seuraava otsikko",
|
||||
"open_previous_entry" : "avaa edellinen otsikko",
|
||||
"spacebar" : "välilyönti/shift+välilyönti",
|
||||
"move_page_down_up" : "liikuta sivua ylös tai alas",
|
||||
"focus_next_entry" : "valitse seuraava otsikko sitä avaamatta",
|
||||
"focus_previous_entry" : "valitse edellinen otsikko sitä avaamatta",
|
||||
"open_next_feed" : "avaa seuraava kansio tai syöte",
|
||||
"open_previous_feed" : "avaa edellinen kansio tai syöte",
|
||||
"open_close_current_entry" : "avaa tai sulje valittu otsikko",
|
||||
"open_current_entry_in_new_window" : "avaa valittu otsikko uudessa ikkunassa",
|
||||
"open_current_entry_in_new_window_background" : "avaa valittu otsikko uudessa ikkunassa taustalla",
|
||||
"star_unstar" : "merkitse valittu otsikko tähdelliseksi",
|
||||
"mark_current_entry" : "merkitse valittu otsikko luetuksi tai lukemattomaksi",
|
||||
"mark_all_as_read" : "merkitse kaikki otsikot luetuiksi",
|
||||
"open_in_new_tab_mark_as_read" : "avaa otsikko uudessa ikkunassa ja merkitse se luetuksi",
|
||||
"fullscreen" : "siirry kokoruututilaan",
|
||||
"font_size" : "suurenna/pienennä valitun artikkelin kirjasinkokoa",
|
||||
"go_to_all" : "Siirry Kaikki-näkymään",
|
||||
"go_to_starred" : "Siirry Tähdelliset-näkymään",
|
||||
"feed_search" : "etsi tilaus sen nimen perusteella"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/fr.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Enregistrer",
|
||||
"cancel" : "Annuler",
|
||||
"delete" : "Effacer",
|
||||
"required" : "Obligatoire",
|
||||
"download" : "Télécharger",
|
||||
"link" : "Lien",
|
||||
"bookmark" : "Favoris",
|
||||
"close" : "Fermer",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "S'abonner",
|
||||
"import" : "Importer",
|
||||
"new_category" : "Nouvelle catégorie",
|
||||
"all" : "Tous",
|
||||
"starred" : "Favoris"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL du flux",
|
||||
"feed_name" : "Nom du flux",
|
||||
"category" : "Catégorie"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Laissez-moi importer vos flux depuis votre compte ",
|
||||
"google_reader_suffix" : ".",
|
||||
"google_download" : "Ou alors, téléchargez votre fichier subscriptions.xml.",
|
||||
"google_download_link" : "Récupérez-le ici.",
|
||||
"xml_file" : "Fichier OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nom",
|
||||
"parent" : "Parent"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Non-lus",
|
||||
"all" : "Tous",
|
||||
"previous_entry" : "Article précédent",
|
||||
"next_entry" : "Article suivant",
|
||||
"refresh" : "Rafraîchir",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Trier par date croissante/décroissante",
|
||||
"titles_only" : "Titres uniquement",
|
||||
"expanded_view" : "Vue étendue",
|
||||
"mark_all_as_read" : "Tout marquer comme lu",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Articles de plus d'un jour",
|
||||
"mark_all_older_week" : "Articles de plus d'une semaine",
|
||||
"mark_all_older_two_weeks" : "Articles de plus d'un mois",
|
||||
"settings" : "Préférences",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Administration",
|
||||
"about" : "A propos",
|
||||
"logout" : "Déconnexion",
|
||||
"donate" : "Faire un don"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "sur",
|
||||
"entry_author" : "par ",
|
||||
"error_while_loading_feed" : "Erreur durant le chargement de ce flux",
|
||||
"keep_unread" : "Garder non-lu",
|
||||
"no_unread_items" : "n'a pas d'articles non-lus.",
|
||||
"mark_up_to_here" : "Marquer comme lu jusqu'ici",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Tapez un nom de flux",
|
||||
"help" : "Utilisez la touche entrée pour sélectionner et les flèches pour naviguer",
|
||||
"result_prefix" : "Vos flux:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Général",
|
||||
"language" : "Langue",
|
||||
"language_contribute" : "Contribuer aux traductions",
|
||||
"show_unread" : "Afficher les flux et les catégories pour lesquels tout est déjà lu",
|
||||
"social_buttons" : "Afficher les boutons de partage sur réseaux sociaux",
|
||||
"scroll_marks" : "En mode de lecture étendu, marquer comme lu les éléments lorsque la fenêtre descend."
|
||||
},
|
||||
"appearance" : "Apparence",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Thème",
|
||||
"submit_your_theme" : "Soumettez votre thème.",
|
||||
"custom_css" : "CSS personnelle"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Détails du flux",
|
||||
"url" : "URL",
|
||||
"website" : "Site web",
|
||||
"name" : "Nom",
|
||||
"category" : "Catégorie",
|
||||
"position" : "Position",
|
||||
"last_refresh" : "Dernière mise à jour",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Prochaine mise à jour",
|
||||
"queued_for_refresh" : "En file d'attente",
|
||||
"feed_url" : "URL du flux",
|
||||
"generate_api_key_first" : "Générez une clé API dans votre profil d'abord.",
|
||||
"unsubscribe" : "Se désabonner",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Détails de la catégorie",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Catégorie parente"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Nom",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Changer de mot de passe",
|
||||
"confirm_password" : "Confirmer le mot de passe",
|
||||
"minimum_6_chars" : "Minimum 6 caractères",
|
||||
"passwords_do_not_match" : "Les mots de passe ne correspondent pas",
|
||||
"api_key" : "Clé API",
|
||||
"api_key_not_generated" : "Pas encore générée",
|
||||
"generate_new_api_key" : "Générer une nouvelle clé API",
|
||||
"generate_new_api_key_info" : "Changer de mot de passe va générer une nouvelle clé API",
|
||||
"opml_export" : "Export du fichier OPML",
|
||||
"delete_account" : "Effacer le compte",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "API REST",
|
||||
"line1" : "CommaFeed utilise JAX-RS et AngularJS, donc une API REST est disponible.",
|
||||
"link_to_documentation" : "Lien vers la documentation."
|
||||
},
|
||||
"keyboard_shortcuts" : "Raccourcis clavier",
|
||||
"version" : "CommaFeed version",
|
||||
"line1_prefix" : "CommaFeed est un projet open-source. Les sources sont disponibles sur ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Si vous rencontrez un problème, rapportez-le sur la page du projet sur ",
|
||||
"line2_suffix" : ".",
|
||||
"line3" : "Si vous aimez ce projet, n'hésitez pas à faire un don pour encourager le développeur et aider à couvrir les coûts d'hébergement de la plate-forme.",
|
||||
"line4" : "Pour ceux qui préfèrent Bitcoin, voici l'adresse",
|
||||
"goodies" : {
|
||||
"value" : "Extensions",
|
||||
"android_app" : "App Android",
|
||||
"subscribe_url" : "URL pour s'abonner",
|
||||
"chrome_extension" : "Extension Chrome",
|
||||
"firefox_extension" : "Extension Firefox",
|
||||
"opera_extension" : "Extension Opera",
|
||||
"subscribe_bookmarklet" : "Bookmarklet d'ajout d'abonnement",
|
||||
"subscribe_bookmarklet_asc" : "Du plus ancien au plus récent",
|
||||
"subscribe_bookmarklet_desc" : "Du plus récent au plus ancien",
|
||||
"next_unread_bookmarklet" : "Bookmarklet vers le prochain article non-lu"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Traduction",
|
||||
"message" : "Nous avons besoin d'aide pour traduire CommaFeed.",
|
||||
"link" : "Cliquez ici pour voir comment vous pouvez nous aider."
|
||||
},
|
||||
"announcements" : "Annonces",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "clic du milieu de la souris",
|
||||
"open_next_entry" : "Ouvrir l'article suivant",
|
||||
"open_previous_entry" : "Ouvrir l'article précédent",
|
||||
"spacebar" : "espace/shift+espace",
|
||||
"move_page_down_up" : "Faire descendre/monter la page",
|
||||
"focus_next_entry" : "Sélectionner l'article suivant sans l'ouvrir",
|
||||
"focus_previous_entry" : "Sélectionner l'article précédent sans l'ouvrir",
|
||||
"open_next_feed" : "Sélectionner le flux ou la catégorie suivante",
|
||||
"open_previous_feed" : "Sélectionner le flux ou la catégorie précédente",
|
||||
"open_close_current_entry" : "Ouvrir/fermer l'article courant",
|
||||
"open_current_entry_in_new_window" : "Ouvrir l'article courant dans une nouvelle fenêtre",
|
||||
"open_current_entry_in_new_window_background" : "Ouvrir l'article courant dans une nouvelle fenêtre en arrière plan",
|
||||
"star_unstar" : "Ajouter/enlever l'article courant des favoris",
|
||||
"mark_current_entry" : "Marquer comme lue/non-lue l'article courant",
|
||||
"mark_all_as_read" : "Marquer tous les articles comme lus",
|
||||
"open_in_new_tab_mark_as_read" : "Ouvrir l'article courant dans une nouvelle fenêtre et marquer comme lu",
|
||||
"fullscreen" : "Activer/désactiver le mode plein-écran",
|
||||
"font_size" : "Augmenter/diminuer la taille de la police de l'article courant",
|
||||
"go_to_all" : "Afficher tous les articles",
|
||||
"go_to_starred" : "Afficher les articles favoris",
|
||||
"feed_search" : "Naviguer vers un flux en entrant son nom"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/gl.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Gardar",
|
||||
"cancel" : "Cancelar",
|
||||
"delete" : "Eliminar",
|
||||
"required" : "Requerido",
|
||||
"download" : "Descargar",
|
||||
"link" : "Ligazón",
|
||||
"bookmark" : "Marcador",
|
||||
"close" : "Pechar",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Subscribir",
|
||||
"import" : "Importar",
|
||||
"new_category" : "Nova categoría",
|
||||
"all" : "Todos",
|
||||
"starred" : "Destacado"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL da fonte",
|
||||
"feed_name" : "Nome da fonte",
|
||||
"category" : "Categoría"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Deixame importar as fontes da túa",
|
||||
"google_reader_suffix" : " conta.",
|
||||
"google_download" : "Tamén podes subir un ficheiro subscriptions.xml.",
|
||||
"google_download_link" : "Descárgao de aquí.",
|
||||
"xml_file" : "Ficheiro OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nome",
|
||||
"parent" : "Pai"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Sen Ler",
|
||||
"all" : "Todos",
|
||||
"previous_entry" : "Entrada Anterior",
|
||||
"next_entry" : "Próxima Entrada",
|
||||
"refresh" : "Actualizar",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Ordenar por data asc/desc",
|
||||
"titles_only" : "Só títulos",
|
||||
"expanded_view" : "Vista expandida",
|
||||
"mark_all_as_read" : "Marcar todos como lidos",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Artigos anteriores a un día",
|
||||
"mark_all_older_week" : "Artigos de máis de unha semana",
|
||||
"mark_all_older_two_weeks" : "Artigos de máis de dúas semanas",
|
||||
"settings" : "Configuración",
|
||||
"profile" : "Perfil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Sobre",
|
||||
"logout" : "Pechar sesión",
|
||||
"donate" : "Doar"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "Erro mentras se cargaba esta fonte",
|
||||
"keep_unread" : "Gardar non lidos",
|
||||
"no_unread_items" : "non ten elementos sen ler.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Escriba unha suscrición...",
|
||||
"help" : "Use a teclar retorno para seleccionar e as flechas para navegar.",
|
||||
"result_prefix" : "As súas suscricións:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Xeral",
|
||||
"language" : "Idioma",
|
||||
"language_contribute" : "Contribúe traducindo",
|
||||
"show_unread" : "Mostrar fontes e categorías sen entradas non lidas.",
|
||||
"social_buttons" : "Mostrar botóns de compartir en redes sociais.",
|
||||
"scroll_marks" : "En vista expandida, o desplazamento polas entradas márcaas como lidas."
|
||||
},
|
||||
"appearance" : "Aspecto",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Decorado",
|
||||
"submit_your_theme" : "Envíe o seu decorado",
|
||||
"custom_css" : "CSS Personalizado"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Detalles de fontes",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Nome",
|
||||
"category" : "Categoría",
|
||||
"position" : "Position ",
|
||||
"last_refresh" : "Última actualización",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Próxima actualización",
|
||||
"queued_for_refresh" : "En cola para actualizar",
|
||||
"feed_url" : "URL da fonte",
|
||||
"generate_api_key_first" : "Antes debes xerar unha chave API no teu perfil.",
|
||||
"unsubscribe" : "Rematar suscripción",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Detalles da categoría",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Categoría principal"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Nome de usuario",
|
||||
"email" : "Correo",
|
||||
"change_password" : "Cambiar contrasinal",
|
||||
"confirm_password" : "Confirmar contrasinal",
|
||||
"minimum_6_chars" : "Mínimo 6 caracteres",
|
||||
"passwords_do_not_match" : "Os contrasinais non coinciden no coinciden",
|
||||
"api_key" : "Chave API",
|
||||
"api_key_not_generated" : "Non xerado todavía",
|
||||
"generate_new_api_key" : "Xerar nova chave da API",
|
||||
"generate_new_api_key_info" : "Ao cambiar o contrasinal xerarase unha nova chave API",
|
||||
"opml_export" : "Exportación de OPML",
|
||||
"delete_account" : "Eliminar conta",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed está feito co uso de JAX-RS e AngularJS. Polo que está dispoñible un REST API.",
|
||||
"link_to_documentation" : "Ligazón a documentación."
|
||||
},
|
||||
"keyboard_shortcuts" : "Atallos de teclado",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed é un proxecto de código aberto. O código está en ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Se atopas un problema, por favor informa na páxina de problemas do ",
|
||||
"line2_suffix" : " do proxecto.",
|
||||
"line3" : "Se che gusta este proxecto, por favor considera realizar unha doación para apoiar ao desenvolvedor e axudar a cubrir os gastos de mantemento.",
|
||||
"line4" : "Para aqueles de vostedes que prefiran bitcoin, aquí está o enderezo",
|
||||
"goodies" : {
|
||||
"value" : "Extras",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Suscribirse a URL",
|
||||
"chrome_extension" : "Engadido para Chrome",
|
||||
"firefox_extension" : "Engadido para Firefox",
|
||||
"opera_extension" : "Engadido para Opera",
|
||||
"subscribe_bookmarklet" : "Engadir bookmarklet para suscrición(click)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Bookmarklet de seguinte elemento non lido (arrastre a barra de marcadores)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Tradución",
|
||||
"message" : "Precisamos a túa axuda para traducir CommaFeed.",
|
||||
"link" : "Ver como contribuir con traducións."
|
||||
},
|
||||
"announcements" : "Anuncios",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "botón central do rato",
|
||||
"open_next_entry" : "abrir próxima entrada",
|
||||
"open_previous_entry" : "abrir entrada anterior",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "Establecer o foco na próxima entrada sen abrila",
|
||||
"focus_previous_entry" : "Establecer o foco na entrada anterior sen abrila",
|
||||
"open_next_feed" : "abrir a seguinte fonte ou categoría",
|
||||
"open_previous_feed" : "abrir a fonte ou categoría anterior",
|
||||
"open_close_current_entry" : "abrir/pechar entrada actual",
|
||||
"open_current_entry_in_new_window" : "abrir entrada actual nunha nova ventana",
|
||||
"open_current_entry_in_new_window_background" : "abrir entrada actual nunha nova ventá en segundo plano",
|
||||
"star_unstar" : "marcar/desmarcar a entrada actual",
|
||||
"mark_current_entry" : "marcar como lida/non lida a entrada actual",
|
||||
"mark_all_as_read" : "marcar todas as entradas como lidas",
|
||||
"open_in_new_tab_mark_as_read" : "abrir entrada nunha nova lapela e marcar como lida",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "navegue ate unha suscrición introducindo o nome da suscrición"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/glk.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "قزنج",
|
||||
"cancel" : "باطیل",
|
||||
"delete" : "پاک",
|
||||
"required" : "لازم",
|
||||
"download" : "جیرأکش",
|
||||
"link" : "خال",
|
||||
"bookmark" : "بوکمارک",
|
||||
"close" : "دَوَستن",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "مشترک ببید",
|
||||
"import" : "درینأدأن",
|
||||
"new_category" : "تازه جرگه",
|
||||
"all" : "همه ته مطالب",
|
||||
"starred" : "ستارهدار"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "خوراکˇ نشانی",
|
||||
"feed_name" : "خوراکˇ نام",
|
||||
"category" : "جرگه"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "بدأر تی خوراکانه حسابˇ جی",
|
||||
"google_reader_suffix" : "درینأدم.",
|
||||
"google_download" : "یا اونˇ جا تی subscriptions.xml پروندهٰ جیرأکش.",
|
||||
"google_download_link" : "اونه ائره جیرأکش.",
|
||||
"xml_file" : "اکس.ام.الˇ پرونده"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "نام",
|
||||
"parent" : "پئر"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "نخانده",
|
||||
"all" : "همه",
|
||||
"previous_entry" : "قبلی",
|
||||
"next_entry" : "بعدی",
|
||||
"refresh" : "واجأری",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "تاریخˇ سر دچئن",
|
||||
"titles_only" : "خالی تیتران",
|
||||
"expanded_view" : "واشاده نما",
|
||||
"mark_all_as_read" : "همهته مطالبه چاکون بخانده",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "یک روز پیشترˇ مطالب",
|
||||
"mark_all_older_week" : "یک هفته پیشترˇ مطالب",
|
||||
"mark_all_older_two_weeks" : "چن هفته پیشترˇ مطالب",
|
||||
"settings" : "تنظیم",
|
||||
"profile" : "نمایه",
|
||||
"admin" : "مدیریت",
|
||||
"about" : "راجهبه",
|
||||
"logout" : "برین",
|
||||
"donate" : "مالی ایلجار"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "حئف ببؤ! ای خوراکˇ جؤر أمأنˇ سر خطا ببؤ.",
|
||||
"keep_unread" : "نخانده بدأر.",
|
||||
"no_unread_items" : "نخانده مطلب دنه.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "یکته اشتراکˇ سر نویشتن...",
|
||||
"help" : "دکمهٔ بازگشت برای انتخاب و دکمههای جهتدار را برای ناوبری استفاده کن.",
|
||||
"result_prefix" : "تی اشتراکان:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "همگانی",
|
||||
"language" : "زوان",
|
||||
"language_contribute" : "واگردانˇ مئنˇ ایلجار",
|
||||
"show_unread" : "تنها خوراکها و دستههای را که دارای مطالب نخوانده هستند نمایش بده.",
|
||||
"social_buttons" : "نشاندادن دکمههای اشتراکگذاری در شبکههای اجتماعی",
|
||||
"scroll_marks" : "در نمای گسترشیافته، لغزیدن بر روی مطالب بهعنوان نشانهگذاری بهعنوان خواندهشده در نظر گرفتهشوند."
|
||||
},
|
||||
"appearance" : "ظاهر",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "پوسته",
|
||||
"submit_your_theme" : "شیمه پوستهٰ اوسه کونید",
|
||||
"custom_css" : "سیاساس شخصیسازیشده"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "جزئیات خوراک",
|
||||
"url" : "نشانی",
|
||||
"website" : "Website ",
|
||||
"name" : "نام",
|
||||
"category" : "جرگه",
|
||||
"position" : "Position ",
|
||||
"last_refresh" : "آخرین بروزرسانی",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "بروزرسانی بعدی",
|
||||
"queued_for_refresh" : "منتظر برای بروزرسانی",
|
||||
"feed_url" : "نشانی خوراک",
|
||||
"generate_api_key_first" : "ابتدا یک کلید API در نمایهٔ خود ایجاد کنید.",
|
||||
"unsubscribe" : "لغو اشتراک",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "جرگه جزئیات",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "پئرˇ جرگه"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "کاربری نام",
|
||||
"email" : "ایمئل",
|
||||
"change_password" : "رمزه عوضأگودن",
|
||||
"confirm_password" : "رمزه تأیید گودن",
|
||||
"minimum_6_chars" : "ناقلن 6 کارکتر",
|
||||
"passwords_do_not_match" : "رمزان کسبهکسه نخانید",
|
||||
"api_key" : "کلید API",
|
||||
"api_key_not_generated" : "هلئه چاگوده نبؤ",
|
||||
"generate_new_api_key" : "تازه کلید چاگودن API",
|
||||
"generate_new_api_key_info" : "رمزه عوضأگودن API کلیده چاکونه.",
|
||||
"opml_export" : "برینأدأن OPML",
|
||||
"delete_account" : "کاربری حسابه پاکودن",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "کامافید بر روی JAX-RS و AngularJS ساختهشدهاست. به همین دلیل API REST موجود است.",
|
||||
"link_to_documentation" : "خال به مستندات."
|
||||
},
|
||||
"keyboard_shortcuts" : "وئر زئنˇ کلیدان",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "کامافید یکته «رهاوؤت» پروژه ایسه. اینˇ تلمبارؤن",
|
||||
"line1_suffix" : "ˇمئن میزبانی به.",
|
||||
"line2_prefix" : "أگه مشکلی پیش بمأ پیشأکشئنˇ صفحه مئن مطرح بکونین.",
|
||||
"line2_suffix" : " پروژه.",
|
||||
"line3" : "أگه ای پرؤژهٰ خوش دأنین، یک مبلغی هرچیم کی کم ببون ای سایتˇ هزینهٰن و اینˇ توسعهدأنکسˇ وأسی هدین.",
|
||||
"line4" : "اوشانی کی بیتکؤینه ترجیح دئنن، نشانی ائره نأ.",
|
||||
"goodies" : {
|
||||
"value" : "علاوهٰن",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "نشانی مئنˇ اشتراک",
|
||||
"chrome_extension" : "کرؤمˇ علاوه",
|
||||
"firefox_extension" : "فایرفاکسˇ علاوه",
|
||||
"opera_extension" : "اؤپرا علاوه",
|
||||
"subscribe_bookmarklet" : "افزودن بوکمارکلت اشتراک (با کلیک)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "بوکمارکلت مطلب خوانده نشدهٔ بعدی(با کشیدن و رهاکردن در نوار بوکمارکلت)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "واگردان",
|
||||
"message" : "أمه شیمه ایلجاره کامافیدˇ واگردانˇ مئن خأییم.",
|
||||
"link" : "ببدینید چوتؤ تانید واگردانˇ مئن ایلجار بکونید."
|
||||
},
|
||||
"announcements" : "اطلاعیهٰن",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "مؤسˇ مئنی کلیک",
|
||||
"open_next_entry" : "بعدی مطلبه واگدن",
|
||||
"open_previous_entry" : "قبلی مطلبه واگودن",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "بعدی مطلبˇ سر شؤن بی اینکه وابکونه",
|
||||
"focus_previous_entry" : "قبلی مطلبˇ سر شؤن بی اینکه وابکونه",
|
||||
"open_next_feed" : "بعدی خوراک یا جرگهٰ واگودن",
|
||||
"open_previous_feed" : "قبلی خوراک یا جرگهٰ واگودن",
|
||||
"open_close_current_entry" : "مطلبه واگودن/دوستن",
|
||||
"open_current_entry_in_new_window" : "مطلبه تازه درجیکˇ مئن واگودن",
|
||||
"open_current_entry_in_new_window_background" : "مطلبه تازه درجیکˇ مئن پسزمینه واگودن",
|
||||
"star_unstar" : "مطلبه نشانهدار گودن/نگودن",
|
||||
"mark_current_entry" : "مطلبه نشانهدار گودن کی بخانه/نخانده ایسه",
|
||||
"mark_all_as_read" : "همهته مطالبه نشانه بنه کی بخانده ببؤن",
|
||||
"open_in_new_tab_mark_as_read" : "مطلبه تازه سرولگˇ میان واگودن و نشانهدار کودن به عنوانˇ بخانده",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "اشتراکˇ نامه بنویس و اونه وئر بزن"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/hu.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Mentés",
|
||||
"cancel" : "Mégsem",
|
||||
"delete" : "Törlés",
|
||||
"required" : "Szükséges",
|
||||
"download" : "Letöltés",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Könyvjelző",
|
||||
"close" : "Bezár",
|
||||
"tags" : "Címkék"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Feliratkozás",
|
||||
"import" : "Importálás",
|
||||
"new_category" : "Új kategória",
|
||||
"all" : "Összes",
|
||||
"starred" : "Csillagozott"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Hírcsatorna URL",
|
||||
"feed_name" : "Hírcsatorna neve",
|
||||
"category" : "Kategória"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Engedd meg, hogy importáljuk a hírcsatornáidat a ",
|
||||
"google_reader_suffix" : " fiókjából.",
|
||||
"google_download" : "Alternatívaként, feltöltheti a subscriptions.xml fájlt.",
|
||||
"google_download_link" : "Letöltheti innen.",
|
||||
"xml_file" : "OPML Fájl"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Név",
|
||||
"parent" : "Szülő"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Olvasatlan",
|
||||
"all" : "Összes",
|
||||
"previous_entry" : "Előző elem",
|
||||
"next_entry" : "Következő elem",
|
||||
"refresh" : "Frissítés",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Rendezés időrend szerint",
|
||||
"titles_only" : "Csak cím",
|
||||
"expanded_view" : "Részletes nézet",
|
||||
"mark_all_as_read" : "Az összes megjelölése olvasottként",
|
||||
"mark_all_older_12_hours" : "Régebbiek 12 óránál",
|
||||
"mark_all_older_day" : "Régebbiek, mint egy nap",
|
||||
"mark_all_older_week" : "Régebbiek, mint egy hét",
|
||||
"mark_all_older_two_weeks" : "Régebbiek, mint két hét",
|
||||
"settings" : "Beállítások",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Névjegy",
|
||||
"logout" : "Kilépés",
|
||||
"donate" : "Anyagi támogatás "
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "forrás",
|
||||
"entry_author" : "szerző",
|
||||
"error_while_loading_feed" : "Hiba történt ennek a hírcsatornának a betöltésekor",
|
||||
"keep_unread" : "Megtartása olvasatlanként",
|
||||
"no_unread_items" : "nincsen olvasatlan eleme.",
|
||||
"mark_up_to_here" : "Megjelölés olvasottnak eddig",
|
||||
"search_for" : "keresés erre: ",
|
||||
"no_search_results" : "Nem található semmi erre a keresett szóra"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Keressen a hírcsatornák között...",
|
||||
"help" : "Használja a nyíl billentyűket a navigáláshoz, az enter-t a kiválasztáshoz.",
|
||||
"result_prefix" : "Az ön feliratkozásai:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Általános",
|
||||
"language" : "Nyelv",
|
||||
"language_contribute" : "Segítsen a fordításban",
|
||||
"show_unread" : "Mutassa azokat a hírcsatornákat és kategóriákat amelyekben nincsen olvasatlan bejegyzés",
|
||||
"social_buttons" : "Mutassa a közösségi oldalak megosztás gombjait",
|
||||
"scroll_marks" : "Kiterjesztett nézetben, görgetéssel olvasottként jelöli meg a bejegyzést"
|
||||
},
|
||||
"appearance" : "Megjelenés",
|
||||
"scroll_speed" : "A görgetés sebessége, amikor a cikkek között navigál (miliszekundumban)",
|
||||
"scroll_speed_help" : "Írjon be 0-át a letiltáshoz",
|
||||
"theme" : "Téma",
|
||||
"submit_your_theme" : "Küldje el a témáját",
|
||||
"custom_css" : "Saját CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Hírcsatorna részletei",
|
||||
"url" : "URL",
|
||||
"website" : "Weboldal",
|
||||
"name" : "Név",
|
||||
"category" : "Kategória",
|
||||
"position" : "Pozició",
|
||||
"last_refresh" : "Utolsó frissítés",
|
||||
"message" : "Utolsó frissítési üzenet",
|
||||
"next_refresh" : "Következő frissítés",
|
||||
"queued_for_refresh" : "Frissítésre vár",
|
||||
"feed_url" : "Hírcsatorna URL",
|
||||
"generate_api_key_first" : "A profiljában először egy API kulcsot kell generálnia.",
|
||||
"unsubscribe" : "Leiratkozás",
|
||||
"unsubscribe_confirmation" : "Biztos, hogy le akar iratkozni errről a csatornáról?",
|
||||
"delete_category_confirmation" : "Biztos, hog törölni akarja ezt a kategóriát?",
|
||||
"category_details" : "Kategória részletei",
|
||||
"tag_details" : "Címke részletei",
|
||||
"parent_category" : "Szülő kategória"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Felhasználói név",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Jelszó megváltoztatás",
|
||||
"confirm_password" : "Jelszó megerősítése",
|
||||
"minimum_6_chars" : "Legalább 8 karakter",
|
||||
"passwords_do_not_match" : "A jelszavak nem egyeznek",
|
||||
"api_key" : "API kulcs",
|
||||
"api_key_not_generated" : "Még nincsen generálva",
|
||||
"generate_new_api_key" : "Új API kulcs generálása",
|
||||
"generate_new_api_key_info" : "A jelszó megváltoztatása új API kulcsot generál",
|
||||
"opml_export" : "OPML exportálása",
|
||||
"delete_account" : "Fiók törlése",
|
||||
"delete_account_confirmation" : "Törli a fiókját? Innen már nincs visszatérés!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "A CommaFeed a JAX-RS-re és az AngularJS-re épül. Ezért a RESTA API elérhető.",
|
||||
"link_to_documentation" : "Link a dokumentációhoz."
|
||||
},
|
||||
"keyboard_shortcuts" : "Gyorsbillentyűk",
|
||||
"version" : "CommaFeed verzió",
|
||||
"line1_prefix" : "A CommaFeed egy nyílt forrású projekt. A forrás megtalálható a ",
|
||||
"line1_suffix" : "oldalán.",
|
||||
"line2_prefix" : "Ha hibába ütközik, kérjük jelentse azt a ",
|
||||
"line2_suffix" : "projekt oldalán.",
|
||||
"line3" : "Ha tetszik önnek ez a szolgáltatás, akkor kérjük támogassa a fejlesztőket és, hogy fentarthassák a weboldalt.",
|
||||
"line4" : "Akik jobban szeretnék az oldalt bitcon-nal támogatni, itt a cím",
|
||||
"goodies" : {
|
||||
"value" : "Hasznos dolgok",
|
||||
"android_app" : "Android alkalmazás",
|
||||
"subscribe_url" : "Feliratkozás az URL-re",
|
||||
"chrome_extension" : "Chrome bővítmény",
|
||||
"firefox_extension" : "Firefox kiterjesztés",
|
||||
"opera_extension" : "Opera kiterjesztés",
|
||||
"subscribe_bookmarklet" : "Feliratkozás bookmarklet hozzáadása (klikkeléssel)",
|
||||
"subscribe_bookmarklet_asc" : "Régebbiek először",
|
||||
"subscribe_bookmarklet_desc" : "Újak először",
|
||||
"next_unread_bookmarklet" : "Következő olvasatlan elem bookmarklet (húzza fel a könyvjelzősávba)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Fordítás",
|
||||
"message" : "Segítségét kérjük a CommaFeed fordításához.",
|
||||
"link" : "Nézze meg, hogyan tud segíteni ebben."
|
||||
},
|
||||
"announcements" : "Bejelentések ",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "középső egérgomb ",
|
||||
"open_next_entry" : "következő hír megnyitása",
|
||||
"open_previous_entry" : "előző hír megnyitása",
|
||||
"spacebar" : "szóköz/shift+szóköz",
|
||||
"move_page_down_up" : "fel/le lépkedhet az oldalon",
|
||||
"focus_next_entry" : "megnyitás nélkül fókuszál a övetkező elemre",
|
||||
"focus_previous_entry" : "megnyitás nélkül fókuszál az előző elemre",
|
||||
"open_next_feed" : "a következő hírcsatorna vagy kategória megnyitása",
|
||||
"open_previous_feed" : "az előző hírcsatorna vagy kategória megnyitása",
|
||||
"open_close_current_entry" : "a jelenlegi elem megnyitása/bezárása",
|
||||
"open_current_entry_in_new_window" : "a jelenlegi elem megnyitása új ablakban",
|
||||
"open_current_entry_in_new_window_background" : "a jelenlegi elem megnyitása a háttérben, új ablakban",
|
||||
"star_unstar" : "hírelem csillagozása",
|
||||
"mark_current_entry" : "elem megjelölése olvasottként",
|
||||
"mark_all_as_read" : "az összes elem megjelölése olvasottként",
|
||||
"open_in_new_tab_mark_as_read" : "elem megnyitása új fülön és megjelölése olvasottként",
|
||||
"fullscreen" : "teljes képernyős mód bekapcsolása",
|
||||
"font_size" : "a jelenlegi elemnél növeli/csökkenti a betűméretet",
|
||||
"go_to_all" : "átkapcsol az Összes nézetre",
|
||||
"go_to_starred" : "átkapcsol a Csillagozott nézetre",
|
||||
"feed_search" : "név szerinti keresés a hírcsatornák között"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/it.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Salva",
|
||||
"cancel" : "Cancella",
|
||||
"delete" : "Elimina",
|
||||
"required" : "Required",
|
||||
"download" : "Download",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Segnalibro ",
|
||||
"close" : "Chiudi",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Iscriviti",
|
||||
"import" : "Importa",
|
||||
"new_category" : "Nuova categoria",
|
||||
"all" : "Tutto",
|
||||
"starred" : "Preferiti"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Feed URL",
|
||||
"feed_name" : "Nome Feed",
|
||||
"category" : "Categoria"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Importa i tuoi feed dal tuo ",
|
||||
"google_reader_suffix" : " account.",
|
||||
"google_download" : "Oppure, carica il tuo subscriptions.xml",
|
||||
"google_download_link" : "Scaricalo da qui",
|
||||
"xml_file" : "OPML File"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nome",
|
||||
"parent" : "Parent"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Non letti",
|
||||
"all" : "Tutti",
|
||||
"previous_entry" : "Precedente",
|
||||
"next_entry" : "Successivo",
|
||||
"refresh" : "Ricarica",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sort by date asc/desc",
|
||||
"titles_only" : "Solo titoli",
|
||||
"expanded_view" : "Espandi",
|
||||
"mark_all_as_read" : "Contrassegna tutto come già letto",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Elementi più vecchi di un giorno",
|
||||
"mark_all_older_week" : "Elementi più vecchi di una settimana",
|
||||
"mark_all_older_two_weeks" : "Elementi più vecchi di due settimane",
|
||||
"settings" : "Impostazioni",
|
||||
"profile" : "Profilo",
|
||||
"admin" : "Admin",
|
||||
"about" : "Informazioni",
|
||||
"logout" : "Logout",
|
||||
"donate" : "Dona"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "Si è verificato un errore, mentre caricavo il feed",
|
||||
"keep_unread" : "Mantiene come da leggere",
|
||||
"no_unread_items" : "Non ci sono elementi da leggere.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Type in a subscription... ",
|
||||
"help" : "Use the return key to select and arrow keys to navigate. ",
|
||||
"result_prefix" : "Le tue sottoscrizioni"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Generali",
|
||||
"language" : "Lingua",
|
||||
"language_contribute" : "Contribuisci con le traduzioni",
|
||||
"show_unread" : "Show feeds and categories with no unread entries",
|
||||
"social_buttons" : "Visualizza i social button",
|
||||
"scroll_marks" : "Marca come letto quando scorri"
|
||||
},
|
||||
"appearance" : "Appearance ",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Tema ",
|
||||
"submit_your_theme" : "Sottoponi il tuo tema ",
|
||||
"custom_css" : "Css modificato"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Dettagli feed",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Nome",
|
||||
"category" : "Categoria",
|
||||
"position" : "Posizione ",
|
||||
"last_refresh" : "Ultimo aggiornamento",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Next refresh ",
|
||||
"queued_for_refresh" : "In attesa per l'aggiornamento ",
|
||||
"feed_url" : "Feed URL",
|
||||
"generate_api_key_first" : "Generate an API key in your profile first.",
|
||||
"unsubscribe" : "Annulla l\"'\"iscrizione",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Dettagli categoria",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Parent category"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "User name",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Cambia password",
|
||||
"confirm_password" : "Conferma password",
|
||||
"minimum_6_chars" : "Minimo 6 caratteri",
|
||||
"passwords_do_not_match" : "Le password non corrispondono",
|
||||
"api_key" : "API key",
|
||||
"api_key_not_generated" : "Non generata ancora",
|
||||
"generate_new_api_key" : "Genera una nuova chiave API",
|
||||
"generate_new_api_key_info" : "Cambiando la password sarà generata una nuova chiave API",
|
||||
"opml_export" : "Esporta OPML",
|
||||
"delete_account" : "Elimina account",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed is built on top of JAX-RS and AngularJS. As such, a REST API is available.",
|
||||
"link_to_documentation" : "Link alla documentazione."
|
||||
},
|
||||
"keyboard_shortcuts" : "Scorciatoie da tastiera",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "Commefeed è un progetto open-source. I codici sono hostati su ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Se hai qualche problema, segnalalo sulla pagina del ",
|
||||
"line2_suffix" : " progetto.",
|
||||
"line3" : "Se ti piace il progetto, prendi in considerazione una donazione per supportare lo sviluppatore e contribuire a coprire i costi di mantenenimento di questo sito on-line.",
|
||||
"line4" : "Per chi preferisce Bitcoin, questo è l\"'\"indirizzo ",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Subscribe URL ",
|
||||
"chrome_extension" : "Estenzione per Chrome ",
|
||||
"firefox_extension" : "Estensione per Firefox",
|
||||
"opera_extension" : "Estensione per Opera",
|
||||
"subscribe_bookmarklet" : "Add subscription bookmarklet (click) ",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Next unread item bookmarklet (drag to bookmark bar) "
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Traduzioni",
|
||||
"message" : "Abbiamo bisogno del tuo aiuto per tradurre CommaFeed.",
|
||||
"link" : "Vedi come aiutare con le traduzioni."
|
||||
},
|
||||
"announcements" : "Annunci",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "mouse middleclick",
|
||||
"open_next_entry" : "open next entry",
|
||||
"open_previous_entry" : "open previous entry",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "set focus on next entry without opening it ",
|
||||
"focus_previous_entry" : "set focus on previous entry without opening it ",
|
||||
"open_next_feed" : "open next feed or category ",
|
||||
"open_previous_feed" : "open previous feed or category ",
|
||||
"open_close_current_entry" : "open/close current entry",
|
||||
"open_current_entry_in_new_window" : "open current entry in a new window",
|
||||
"open_current_entry_in_new_window_background" : "open current entry in a new window in the background ",
|
||||
"star_unstar" : "star/unstar current entry",
|
||||
"mark_current_entry" : "mark as read/unread current entry",
|
||||
"mark_all_as_read" : "mark all entries as read",
|
||||
"open_in_new_tab_mark_as_read" : "open entry in new tab and mark as read",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "navigate to a subscription by entering the subscription name "
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/ja.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "保存",
|
||||
"cancel" : "取り消し",
|
||||
"delete" : "削除",
|
||||
"required" : "Required",
|
||||
"download" : "ダウンロード",
|
||||
"link" : "リンク",
|
||||
"bookmark" : "ブックマーク",
|
||||
"close" : "閉じる",
|
||||
"tags" : "タグ"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "購読",
|
||||
"import" : "インポート",
|
||||
"new_category" : "新しいカテゴリー",
|
||||
"all" : "全て",
|
||||
"starred" : "スター付"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "フィードURL",
|
||||
"feed_name" : "フィード名",
|
||||
"category" : "カテゴリー"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Googleアカウントからフィードを",
|
||||
"google_reader_suffix" : "インポートします。",
|
||||
"google_download" : "または、お持ちのsubscriptions.xmlファイルをアップロードします。",
|
||||
"google_download_link" : "このリンクからダウンロードして下さい。",
|
||||
"xml_file" : "OPMLファイル"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "名前",
|
||||
"parent" : "親カテゴリー"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "未読",
|
||||
"all" : "全て",
|
||||
"previous_entry" : "前のエントリー",
|
||||
"next_entry" : "次のエントリー",
|
||||
"refresh" : "更新",
|
||||
"refresh_all" : "全てのフィードを更新",
|
||||
"sort_by_asc_desc" : "昇順/降順にソート",
|
||||
"titles_only" : "タイトルのみ",
|
||||
"expanded_view" : "拡張ビュー",
|
||||
"mark_all_as_read" : "全て既読にする",
|
||||
"mark_all_older_12_hours" : "12時間以上前のアイテム",
|
||||
"mark_all_older_day" : "前日より前のアイテム",
|
||||
"mark_all_older_week" : "1週間以上前のアイテム",
|
||||
"mark_all_older_two_weeks" : "2週間以上前のアイテム",
|
||||
"settings" : "設定",
|
||||
"profile" : "Profile",
|
||||
"admin" : "管理者",
|
||||
"about" : "About",
|
||||
"logout" : "ログアウト",
|
||||
"donate" : "寄付"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : " より ",
|
||||
"entry_author" : " 著者 ",
|
||||
"error_while_loading_feed" : "フィード読み込み中にエラーが発生しました。",
|
||||
"keep_unread" : "未読として保持",
|
||||
"no_unread_items" : "未読アイテムはありません。",
|
||||
"mark_up_to_here" : "ここまで既読",
|
||||
"search_for" : "検索: ",
|
||||
"no_search_results" : "検索結果はありません。"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "購読フィードを入力...",
|
||||
"help" : "Enterキーで選択、矢印キーで移動します。",
|
||||
"result_prefix" : "見つかった購読フィード:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "一般",
|
||||
"language" : "言語",
|
||||
"language_contribute" : "翻訳に貢献する",
|
||||
"show_unread" : "未読エントリーのないフィードとカテゴリーを表示",
|
||||
"social_buttons" : "共有ボタンを表示",
|
||||
"scroll_marks" : "拡張ビューではエントリーのスクロールで既読にする"
|
||||
},
|
||||
"appearance" : "外観",
|
||||
"scroll_speed" : "エントリー間のスクロールスピード(ミリ秒)",
|
||||
"scroll_speed_help" : "0に設定すると無効になります",
|
||||
"theme" : "テーマ",
|
||||
"submit_your_theme" : "テーマを登録する",
|
||||
"custom_css" : "カスタムCSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "フィードの詳細",
|
||||
"url" : "URL",
|
||||
"website" : "Webサイト",
|
||||
"name" : "名前",
|
||||
"category" : "カテゴリー",
|
||||
"position" : "位置",
|
||||
"last_refresh" : "最終更新",
|
||||
"message" : "最終更新メッセージ",
|
||||
"next_refresh" : "次回更新",
|
||||
"queued_for_refresh" : "更新キュー",
|
||||
"feed_url" : "フィードURL",
|
||||
"generate_api_key_first" : "最初にあなたのAPIキーを生成して下さい。",
|
||||
"unsubscribe" : "購読解除",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "カテゴリー詳細",
|
||||
"tag_details" : "タグ詳細",
|
||||
"parent_category" : "親カテゴリー"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "ユーザ名",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "パスワードの変更",
|
||||
"confirm_password" : "変更パスワードの確認",
|
||||
"minimum_6_chars" : "6文字以上",
|
||||
"passwords_do_not_match" : "パスワードが一致しません",
|
||||
"api_key" : "APIキー",
|
||||
"api_key_not_generated" : "APIキーが生成されていません",
|
||||
"generate_new_api_key" : "新しいAPIキーを生成",
|
||||
"generate_new_api_key_info" : "パスワードの変更は新しいAPIキーが生成されます",
|
||||
"opml_export" : "OPMLエクスポート",
|
||||
"delete_account" : "アカウント削除",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeedはJAX-RSとAngularJSを使用しているので、REST APIも利用可能です。",
|
||||
"link_to_documentation" : "ドキュメントへのリンク"
|
||||
},
|
||||
"keyboard_shortcuts" : "キーボードショートカット",
|
||||
"version" : "CommaFeedバージョン",
|
||||
"line1_prefix" : "CommaFeedはオープンソースプロジェクトです。ソースは",
|
||||
"line1_suffix" : "にホスティングされています。",
|
||||
"line2_prefix" : "もし問題を登録したい場合、",
|
||||
"line2_suffix" : "プロジェクトのissuesページに報告して下さい。",
|
||||
"line3" : "このプロジェクトを気に入った場合、開発者やWebサイトの運営コストをサポートするための寄付を検討して下さいね。",
|
||||
"line4" : "Bitcoinなら寄付できる方、アドレスはこちらです。",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Androidアプリ",
|
||||
"subscribe_url" : "購読URL",
|
||||
"chrome_extension" : "Chrome拡張",
|
||||
"firefox_extension" : "Firefox拡張",
|
||||
"opera_extension" : "Opera拡張",
|
||||
"subscribe_bookmarklet" : "購読ブックマークレットを追加(クリック)",
|
||||
"subscribe_bookmarklet_asc" : "古い順",
|
||||
"subscribe_bookmarklet_desc" : "新しい順",
|
||||
"next_unread_bookmarklet" : "次の未読アイテムブックマークレット(ブックマークバーへドラッグ)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "翻訳",
|
||||
"message" : "CommaFeedの翻訳に助けが必要です!",
|
||||
"link" : "どうやって翻訳に貢献できるか見て下さい。"
|
||||
},
|
||||
"announcements" : "Announcements",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "中クリック",
|
||||
"open_next_entry" : "次のエントリーを開く",
|
||||
"open_previous_entry" : "前のエントリーを開く",
|
||||
"spacebar" : "space/shift+space",
|
||||
"move_page_down_up" : "ページ移動",
|
||||
"focus_next_entry" : "次のエントリーを開かずにフォーカス移動",
|
||||
"focus_previous_entry" : "前のエントリーを開かずにフォーカス移動",
|
||||
"open_next_feed" : "次のフィード/カテゴリーを開く",
|
||||
"open_previous_feed" : "前のフィード/カテゴリーを開く",
|
||||
"open_close_current_entry" : "現在のエントリーを開く/閉じる",
|
||||
"open_current_entry_in_new_window" : "現在のエントリーを新しいウィンドウで開く",
|
||||
"open_current_entry_in_new_window_background" : "現在のエントリーを新しいバックグラウンドウィンドウで開く",
|
||||
"star_unstar" : "現在のエントリーにスターを付ける/解除する",
|
||||
"mark_current_entry" : "現在のエントリーを既読/未読にする",
|
||||
"mark_all_as_read" : "全エントリーを既読にする",
|
||||
"open_in_new_tab_mark_as_read" : "エントリーを既読にして新しいタブで開く",
|
||||
"fullscreen" : "フルスクリーントグル",
|
||||
"font_size" : "現在のエントリーのフォントサイズを大きく/小さくする",
|
||||
"go_to_all" : "All viewに変更する",
|
||||
"go_to_starred" : "スター付きviewに変更する",
|
||||
"feed_search" : "購読画面(subscription nameの入力)に移動する"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/ko.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "저장",
|
||||
"cancel" : "취소",
|
||||
"delete" : "삭제",
|
||||
"required" : "필수",
|
||||
"download" : "Download ",
|
||||
"link" : "Link ",
|
||||
"bookmark" : "Bookmark ",
|
||||
"close" : "Close ",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "구독",
|
||||
"import" : "임포트",
|
||||
"new_category" : "새로운 카테고리",
|
||||
"all" : "전체",
|
||||
"starred" : "스타"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "피드 URL",
|
||||
"feed_name" : "피드 이름",
|
||||
"category" : "카테로기"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "당신의 Google Reader",
|
||||
"google_reader_suffix" : " 에서 피드들을 가져오겠습니다.",
|
||||
"google_download" : "아니면, subscription.xml 파일을 업로드 해주세요.",
|
||||
"google_download_link" : "다운로드 링크",
|
||||
"xml_file" : "OPML File"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "이름",
|
||||
"parent" : "카테고리 주소로 가기"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "안읽음",
|
||||
"all" : "전체",
|
||||
"previous_entry" : "Previous entry ",
|
||||
"next_entry" : "Next entry ",
|
||||
"refresh" : "리프래쉬",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sort by date asc/desc ",
|
||||
"titles_only" : "Titles only ",
|
||||
"expanded_view" : "Expanded view ",
|
||||
"mark_all_as_read" : "읽음표시",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Items older than a day ",
|
||||
"mark_all_older_week" : "Items older than a week ",
|
||||
"mark_all_older_two_weeks" : "Items older than two weeks ",
|
||||
"settings" : "설정",
|
||||
"profile" : "프로필",
|
||||
"admin" : "괸리자",
|
||||
"about" : "더보기",
|
||||
"logout" : "로그아웃",
|
||||
"donate" : "기부하기"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "피드로딩중 에러",
|
||||
"keep_unread" : "안읽은것 저장",
|
||||
"no_unread_items" : " 읽지않은 항목이 없읍니다.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Type in a subscription... ",
|
||||
"help" : "Use the return key to select and arrow keys to navigate. ",
|
||||
"result_prefix" : "Your subscriptions: "
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "일반",
|
||||
"language" : "일반 언어",
|
||||
"language_contribute" : "번역 도움하기",
|
||||
"show_unread" : "안읽은 항목들이 있는 피드와 카테고리 보여주기",
|
||||
"social_buttons" : "소셜미디아 버튼들 보여주기",
|
||||
"scroll_marks" : "Expanded View에서 스크롤하면 항목들을 읽음으로 저장하기"
|
||||
},
|
||||
"appearance" : "Appearance ",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Theme ",
|
||||
"submit_your_theme" : "Submit your theme ",
|
||||
"custom_css" : "커스톰 CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "피드 세부",
|
||||
"url" : "유알엘",
|
||||
"website" : "Website ",
|
||||
"name" : "이름",
|
||||
"category" : "카테고리",
|
||||
"position" : "Position ",
|
||||
"last_refresh" : "마지막 리프래쉬",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Next refresh ",
|
||||
"queued_for_refresh" : "Queued for refresh ",
|
||||
"feed_url" : "피드 유알엘",
|
||||
"generate_api_key_first" : "당신의 프로필을 위해 API Key를 먼저 생성하세요.",
|
||||
"unsubscribe" : "주소 삭제",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "카테고리 세부",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "부모 카테고리"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "사용자 이름",
|
||||
"email" : "이메일",
|
||||
"change_password" : "비밀번호변경",
|
||||
"confirm_password" : "비밀번호확인",
|
||||
"minimum_6_chars" : "최소로 6자문자가 필요합니다.",
|
||||
"passwords_do_not_match" : "비밀번호가 일치하지 않습니다.",
|
||||
"api_key" : "API key",
|
||||
"api_key_not_generated" : "아직 API Key가 생성되지 않았습니다.",
|
||||
"generate_new_api_key" : "API Key 생성하기",
|
||||
"generate_new_api_key_info" : "비밀번호를 변경하면 새로운 API Key가 생성됩니다.",
|
||||
"opml_export" : "OPML export ",
|
||||
"delete_account" : "프로필삭제",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed는 JAX-RS하고 AngularJS를 이용해서 만들었습니다. 그렇기 때문에 REST API를 사용할수있습니다.",
|
||||
"link_to_documentation" : "문서 링크."
|
||||
},
|
||||
"keyboard_shortcuts" : "단축기",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed는 오픈 소스프로젝트입니다. 소스는",
|
||||
"line1_suffix" : "에 있습니다.",
|
||||
"line2_prefix" : "문제가 발생하는 경우",
|
||||
"line2_suffix" : " 프로젝트 문제페이지에 보고하십시요.",
|
||||
"line3" : "이 프로젝트를 좋아하시면 개발자를 지원하고 웹사이트 유지용비를 충당하는 데 도움이되는 기부금을 고려하시기 바랍니다.",
|
||||
"line4" : "For those of you who prefer bitcoin, here is the address ",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Subscribe URL ",
|
||||
"chrome_extension" : "Chrome extension ",
|
||||
"firefox_extension" : "Firefox extension ",
|
||||
"opera_extension" : "Opera extension ",
|
||||
"subscribe_bookmarklet" : "Add subscription bookmarklet (click) ",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Next unread item bookmarklet (drag to bookmark bar) "
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "번역",
|
||||
"message" : "CommaFeed를 번역할려면 당신의 도움이 필요합니다.",
|
||||
"link" : "번역에 기여하기"
|
||||
},
|
||||
"announcements" : "공지",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "마우시 미들클릭",
|
||||
"open_next_entry" : "다음 항목 열기",
|
||||
"open_previous_entry" : "이전 항목 열기",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "set focus on next entry without opening it ",
|
||||
"focus_previous_entry" : "set focus on previous entry without opening it ",
|
||||
"open_next_feed" : "open next feed or category ",
|
||||
"open_previous_feed" : "open previous feed or category ",
|
||||
"open_close_current_entry" : "현재 항목 열기/닫기",
|
||||
"open_current_entry_in_new_window" : "새 창에서 현재 항목열기",
|
||||
"open_current_entry_in_new_window_background" : "open current entry in a new window in the background ",
|
||||
"star_unstar" : "현재 항목 스타/스타제거",
|
||||
"mark_current_entry" : "현재 항목 읽음/안읽음 표시",
|
||||
"mark_all_as_read" : "모든 항목 읽음으로 표시",
|
||||
"open_in_new_tab_mark_as_read" : "읽음으로 표시하고 새로운 탭에서 열기",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "navigate to a subscription by entering the subscription name "
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/ms.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Save",
|
||||
"cancel" : "Batal",
|
||||
"delete" : "Padam",
|
||||
"required" : "Wajib",
|
||||
"download" : "Muat turun",
|
||||
"link" : "Pautan",
|
||||
"bookmark" : "Bookmark",
|
||||
"close" : "Tutup",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Langgan",
|
||||
"import" : "Import",
|
||||
"new_category" : "Kategori Baru",
|
||||
"all" : "Semua",
|
||||
"starred" : "Dibintang"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL Feed",
|
||||
"feed_name" : "Nama Feed",
|
||||
"category" : "Kategori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Import feed dari ",
|
||||
"google_reader_suffix" : " akaun.",
|
||||
"google_download" : "Sebagai alternatif, muat naik fail subscriptions.xml anda.",
|
||||
"google_download_link" : "Muat turun dari sini",
|
||||
"xml_file" : "Fail OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nama",
|
||||
"parent" : "Induk"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Belum Dibaca",
|
||||
"all" : "Semua",
|
||||
"previous_entry" : "Sebelumnya",
|
||||
"next_entry" : "Selepasnya",
|
||||
"refresh" : "Refresh",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Aturkan mengikut tarikh (baru/lama)",
|
||||
"titles_only" : "Tajuk sahaja",
|
||||
"expanded_view" : "Wide view",
|
||||
"mark_all_as_read" : "Tanda kesemuanya telah dibaca",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Lebih lama daripada sehari",
|
||||
"mark_all_older_week" : "Lebih lama daripada seminggu",
|
||||
"mark_all_older_two_weeks" : "Lebih lama daripada dua minggu",
|
||||
"settings" : "Setting",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "About",
|
||||
"logout" : "Logout",
|
||||
"donate" : "Derma"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "oleh ",
|
||||
"error_while_loading_feed" : "Kesilapan semasa memuat turun feed ini",
|
||||
"keep_unread" : "Simpan tidak dibaca",
|
||||
"no_unread_items" : "tiada item yang belum dibaca.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Taipkan langganan...",
|
||||
"help" : "Guna kekunci Return untuk membuat pilihan dan kekunci arah untuk menavigasi.",
|
||||
"result_prefix" : "Langganan anda:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Setting am",
|
||||
"language" : "Bahasa",
|
||||
"language_contribute" : "Sumbang penterjemahan",
|
||||
"show_unread" : "Tunjuk semua feed dan kategori yang telah dibaca",
|
||||
"social_buttons" : "Tunjuk social sharing",
|
||||
"scroll_marks" : "Dalam wide view, tanda item dibaca ketika scrolling"
|
||||
},
|
||||
"appearance" : "Rupa",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Tema",
|
||||
"submit_your_theme" : "Muat naik tema anda",
|
||||
"custom_css" : "Custom CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Butir-butir Feed",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Nama",
|
||||
"category" : "Kategori",
|
||||
"position" : "Posisi",
|
||||
"last_refresh" : "Refresh terakhir",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Refresh seterusnya",
|
||||
"queued_for_refresh" : "Diaturkan untuk refresh",
|
||||
"feed_url" : "URL Feed",
|
||||
"generate_api_key_first" : "Janakan API key dalam profil anda dahulu.",
|
||||
"unsubscribe" : "Hentikan langganan",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Butir-butir kategori",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Kategori induk"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "User name",
|
||||
"email" : "E-mel",
|
||||
"change_password" : "Tukar kata laluan",
|
||||
"confirm_password" : "Sahkan kata laluan",
|
||||
"minimum_6_chars" : "Minimum 6 huruf",
|
||||
"passwords_do_not_match" : "Kata laluan tidak sama",
|
||||
"api_key" : "API key",
|
||||
"api_key_not_generated" : "Belum dijana",
|
||||
"generate_new_api_key" : "Jana API key baru",
|
||||
"generate_new_api_key_info" : "Pertukaran kata laluan akan menjanakan API key yang baru",
|
||||
"opml_export" : "Export OPML",
|
||||
"delete_account" : "Padam akaun",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed diaturcarakan dengan JAX-RS dan AngularJS. Oleh itu, REST API boleh didapati.",
|
||||
"link_to_documentation" : "Pautan ke dokumentasi."
|
||||
},
|
||||
"keyboard_shortcuts" : "Pintasan papan kekunci",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed adalah projek open-source. Sources are berada di ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Jika anda menghadapi masalah, sila laporkan di halaman isu-isu di ",
|
||||
"line2_suffix" : " projek.",
|
||||
"line3" : "Jika anda suka projek ini, anda boleh menbuat dermaan kepada pengaturcara untuk membantu menampung kos laman web ini.",
|
||||
"line4" : "Jika anda guna bitcoin, halamannya adalah ",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app",
|
||||
"subscribe_url" : "URL melanggan",
|
||||
"chrome_extension" : "Chrome extension",
|
||||
"firefox_extension" : "Firefox extension",
|
||||
"opera_extension" : "Opera extension",
|
||||
"subscribe_bookmarklet" : "Jana bookmarklet langganan (klik)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Item bookmarklet yang belum dibaca seterusnya (seret ke bookmark bar)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Terjemahan",
|
||||
"message" : "Kami perlukan bantuan anda untuk menterjemahkan CommaFeed.",
|
||||
"link" : "Bagaimana mengyumbang penterjemahan."
|
||||
},
|
||||
"announcements" : "Pengumuman",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "Klik tengah",
|
||||
"open_next_entry" : "buka item seterusya",
|
||||
"open_previous_entry" : "buka item sebelumnya",
|
||||
"spacebar" : "space/shift+space",
|
||||
"move_page_down_up" : "Gerak halaman ke bawah/atas",
|
||||
"focus_next_entry" : "fokus kepada item seterusnya tanpa membuka",
|
||||
"focus_previous_entry" : "fokus kepada item sebelumnya tanpa membuka",
|
||||
"open_next_feed" : "buka feed atau kategori seterusnya",
|
||||
"open_previous_feed" : "buka feed atau kategori sebelumnya",
|
||||
"open_close_current_entry" : "buka/tutup entry kini",
|
||||
"open_current_entry_in_new_window" : "buka entry kini di window yang baru",
|
||||
"open_current_entry_in_new_window_background" : "buka entry kini di window baru di latar belakang",
|
||||
"star_unstar" : "bintang/nyah-bintang entry kini",
|
||||
"mark_current_entry" : "tanda entry kini telah dibaca/belum dibaca",
|
||||
"mark_all_as_read" : "tanda semua entry telah dibaca",
|
||||
"open_in_new_tab_mark_as_read" : "buka entry di tab baru dan tanda telah dibaca",
|
||||
"fullscreen" : "toggle mod skrin penuh",
|
||||
"font_size" : "kecil/besar fon entry kini",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "pergi ke langganan dengan nama langganan"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/nb.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Lagre",
|
||||
"cancel" : "Avbryt",
|
||||
"delete" : "Slett",
|
||||
"required" : "Påkrevd",
|
||||
"download" : "Last ned",
|
||||
"link" : "Lenke",
|
||||
"bookmark" : "Bokmerke",
|
||||
"close" : "Lukk",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Abonner",
|
||||
"import" : "Importer",
|
||||
"new_category" : "Ny kategori",
|
||||
"all" : "Alle",
|
||||
"starred" : "Merkede artikler"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL for abonnement",
|
||||
"feed_name" : "Abonnementsnavn",
|
||||
"category" : "Kategori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "La meg importere dine abonnementer fra din",
|
||||
"google_reader_suffix" : " bruker.",
|
||||
"google_download" : "Alternativt, last opp din egen subscriptions.xml-fil.",
|
||||
"google_download_link" : "Last ned herfra.",
|
||||
"xml_file" : "OPML-fil"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Navn",
|
||||
"parent" : "Overordnet"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Uleste",
|
||||
"all" : "Alle",
|
||||
"previous_entry" : "Forrige artikkel",
|
||||
"next_entry" : "Neste artikkel",
|
||||
"refresh" : "Oppdater",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorter etter dato ny/gammel",
|
||||
"titles_only" : "Kun titler",
|
||||
"expanded_view" : "Utvidet visning",
|
||||
"mark_all_as_read" : "Merk alle som lest",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Artikler eldre enn én dag",
|
||||
"mark_all_older_week" : "Artikler eldre enn én uke",
|
||||
"mark_all_older_two_weeks" : "Artikler eldre enn to uker",
|
||||
"settings" : "Innstillinger",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Om",
|
||||
"logout" : "Logg ut",
|
||||
"donate" : "Doner"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "Feil under lasting av artikkel",
|
||||
"keep_unread" : "Behold som ulest",
|
||||
"no_unread_items" : "har ingen uleste artikler.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Skriv inn et abonnement...",
|
||||
"help" : "Bruk entertasten for å velge og piltastene for å navigere.",
|
||||
"result_prefix" : "Dine abonnementer:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Generelt",
|
||||
"language" : "Språk",
|
||||
"language_contribute" : "Bidra med oversettelser",
|
||||
"show_unread" : "Vis abonnementer og kategorier uten nye artikler",
|
||||
"social_buttons" : "Vis delingsknapper",
|
||||
"scroll_marks" : "I utvidet visning, merk artikler som leste når du blar deg forbi dem."
|
||||
},
|
||||
"appearance" : "Utseende",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Drakt",
|
||||
"submit_your_theme" : "Legg til egen drakt",
|
||||
"custom_css" : "Egendefinert CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Abonnementsdetaljer",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Navn",
|
||||
"category" : "Kategori",
|
||||
"position" : "Posisjon",
|
||||
"last_refresh" : "Siste oppdatering",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Neste oppdatering",
|
||||
"queued_for_refresh" : "I kø for oppdatering",
|
||||
"feed_url" : "URL for abonnement",
|
||||
"generate_api_key_first" : "Generer en API-nøkkel under profilinnstillinger først.",
|
||||
"unsubscribe" : "Avslutt abonnement",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Kategoridetaljer",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Overordnet kategori"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Brukernavn",
|
||||
"email" : "E-post",
|
||||
"change_password" : "Endre passord",
|
||||
"confirm_password" : "Bekreft passord",
|
||||
"minimum_6_chars" : "Minimum 6 tegn",
|
||||
"passwords_do_not_match" : "Passordene er ikke like",
|
||||
"api_key" : "API-nøkkel",
|
||||
"api_key_not_generated" : "Har ikke blitt generert",
|
||||
"generate_new_api_key" : "Generer ny API-nøkkel",
|
||||
"generate_new_api_key_info" : "Endring av passord vil generere en ny API-nøkkel",
|
||||
"opml_export" : "OPML-eksport",
|
||||
"delete_account" : "Slett bruker",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed er bygget på toppen av JAX-RS og AngularJS. På grunn av dette er REST API tilgjengelig.",
|
||||
"link_to_documentation" : "Lenke til dokumentasjon."
|
||||
},
|
||||
"keyboard_shortcuts" : "Hurtigtaster",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed er et prosjekt med åpen kildekode. Kildekoden er tilgjengelig på ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Vis du oppdager en feil eller et problem, rapporter det på ",
|
||||
"line2_suffix" : " siden til prosjekt.",
|
||||
"line3" : "Dersom du liker dette prosjektet, kan du vurdere en donasjon for støtte utvikleren, og bidra med å dekke kostnadene til å drifte nettsiden.",
|
||||
"line4" : "For de som foretrekker bitcoin, her er adressa",
|
||||
"goodies" : {
|
||||
"value" : "Godsaker",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Abonner URL",
|
||||
"chrome_extension" : "Chrome-utvidelse",
|
||||
"firefox_extension" : "Firefox-utvidelse",
|
||||
"opera_extension" : "Opera-utvidelse",
|
||||
"subscribe_bookmarklet" : "Nytt abonnement-bokmerkeprogram (klikk)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Neste uleste artikkel-bokmerkeprogram (dra til bokmerkemenyen)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Oversettelse",
|
||||
"message" : "Vi trenger din hjelp til å oversette CommaFeed.",
|
||||
"link" : "Se hvordan du kan hjelpe til med oversettelser."
|
||||
},
|
||||
"announcements" : "Kunngjøringer",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "midtre museknapp/musehjulet",
|
||||
"open_next_entry" : "åpne neste artikkel",
|
||||
"open_previous_entry" : "åpne forrige artikkel",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "sett fokus på neste artikkel uten å åpne den",
|
||||
"focus_previous_entry" : "sett fokus på forrige artikkel uten å åpne den",
|
||||
"open_next_feed" : "åpne neste abonnement eller kategori",
|
||||
"open_previous_feed" : "åpne forrige abonnement eller kategori",
|
||||
"open_close_current_entry" : "åpne/lukke gjeldende artikkel",
|
||||
"open_current_entry_in_new_window" : "åpne gjeldende artikkel i et nytt vindu",
|
||||
"open_current_entry_in_new_window_background" : "åpne gjeldende artikkel i et nytt bakgrunnsvindu",
|
||||
"star_unstar" : "legg til stjerne/fjern stjerne fra gjeldende artikkel",
|
||||
"mark_current_entry" : "merk gjeldende artikkel som lest/ulest",
|
||||
"mark_all_as_read" : "merk alle artikler som lest",
|
||||
"open_in_new_tab_mark_as_read" : "åpne artikkel i ny fane og merk som lest",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "naviger til et abonnement ved å skrive inn abonnementsnavnet"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/nl.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Opslaan",
|
||||
"cancel" : "Annuleren",
|
||||
"delete" : "Verwijderen",
|
||||
"required" : "Verplicht",
|
||||
"download" : "Download",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Bookmark",
|
||||
"close" : "Sluiten ",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Abonneer",
|
||||
"import" : "Importeer",
|
||||
"new_category" : "Nieuwe categorie",
|
||||
"all" : "Alles",
|
||||
"starred" : "Favorieten"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Feed URL",
|
||||
"feed_name" : "Feed naam",
|
||||
"category" : "Categorie"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Laat je feeds importeren vanuit jouw",
|
||||
"google_reader_suffix" : " account.",
|
||||
"google_download" : "Als alternatief kun je je subscriptions.xml bestand uploaden.",
|
||||
"google_download_link" : "Download het hier.",
|
||||
"xml_file" : "OPML Bestand"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Naam",
|
||||
"parent" : "Parent"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Ongelezen",
|
||||
"all" : "Alles",
|
||||
"previous_entry" : "Vorig artikel",
|
||||
"next_entry" : "Volgend artikel",
|
||||
"refresh" : "Vernieuwen",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorteer op datum opl/afl",
|
||||
"titles_only" : "Alleen titels",
|
||||
"expanded_view" : "Uitgebreide weergave",
|
||||
"mark_all_as_read" : "Markeer alles als gelezen",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Artikelen ouder dan een dag",
|
||||
"mark_all_older_week" : "Artikelen ouder dan een week",
|
||||
"mark_all_older_two_weeks" : "Artikelen ouder dan twee weken",
|
||||
"settings" : "Instellingen",
|
||||
"profile" : "Profiel",
|
||||
"admin" : "Administratie",
|
||||
"about" : "Over ons",
|
||||
"logout" : "Log uit",
|
||||
"donate" : "Doneer"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "van",
|
||||
"entry_author" : "door",
|
||||
"error_while_loading_feed" : "Fout tijdens het laden van de feed",
|
||||
"keep_unread" : "Behoud ongelezen",
|
||||
"no_unread_items" : "Heeft geen ongelezen artikelen",
|
||||
"mark_up_to_here" : "Markeer tot hier als gelezen",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Type een abonnement in... ",
|
||||
"help" : "Gebruik Enter om te selecteren en de pijltjestoetsen om te navigeren.",
|
||||
"result_prefix" : "Jouw abonnementen:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Algemeen",
|
||||
"language" : "Taal",
|
||||
"language_contribute" : "Draag bij met vertalingen",
|
||||
"show_unread" : "Laat feeds en categorieën zonder ongelezen artikelen zien",
|
||||
"social_buttons" : "Laat Social Media knoppen zien",
|
||||
"scroll_marks" : "Markeer artikelen als gelezen, wanneer je er doorheen scrollt"
|
||||
},
|
||||
"appearance" : "Uiterlijk",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Thema",
|
||||
"submit_your_theme" : "Stuur thema in",
|
||||
"custom_css" : "Custom CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Feed details",
|
||||
"url" : "URL",
|
||||
"website" : "Website",
|
||||
"name" : "Naam",
|
||||
"category" : "Categorie",
|
||||
"position" : "Positie",
|
||||
"last_refresh" : "Laatste vernieuwing",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Volgende vernieuwing",
|
||||
"queued_for_refresh" : "In wachtrij voor vernieuwing",
|
||||
"feed_url" : "Feed URL",
|
||||
"generate_api_key_first" : "Genereer eerst een API sleutel in je profiel.",
|
||||
"unsubscribe" : "Abonnement opzeggen",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Categorie details",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Bovenliggende categorie"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Gebruikersnaam",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Verander wachtwoord",
|
||||
"confirm_password" : "Bevestig wachtwoord",
|
||||
"minimum_6_chars" : "Minimaal 6 tekens",
|
||||
"passwords_do_not_match" : "Wachtwoorden komen niet overeen",
|
||||
"api_key" : "API sleutel",
|
||||
"api_key_not_generated" : "Nog niet gegenereerd",
|
||||
"generate_new_api_key" : "Genereer nieuwe API sleutel",
|
||||
"generate_new_api_key_info" : "Het veranderen van het wachtwoord genereert een nieuwe API sleutel",
|
||||
"opml_export" : "OPML export",
|
||||
"delete_account" : "Verwijder account",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed is gebouwd op basis van JAX-RS en AngularJS. Als zodanig is er een REST API beschikbaar.",
|
||||
"link_to_documentation" : "Link naar de documentatie"
|
||||
},
|
||||
"keyboard_shortcuts" : "Sneltoetsen",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed is een open-source project. Bronnen worden gehost op ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Als je een probleem tegenkomt, rapporteer dit dan a.u.b. op de Issues pagina van het ",
|
||||
"line2_suffix" : " project.",
|
||||
"line3" : "Als je dit project leuk vindt, overweeg dan te doneren om de ontwikkelaars te ondersteunen en hosting kosten te drukken.",
|
||||
"line4" : "Voor degenen die liever bitcoin gebruiken, hier is het adres",
|
||||
"goodies" : {
|
||||
"value" : "Goodies",
|
||||
"android_app" : "Android app",
|
||||
"subscribe_url" : "Abonneer URL",
|
||||
"chrome_extension" : "Chrome extensie",
|
||||
"firefox_extension" : "Firefox extensie",
|
||||
"opera_extension" : "Opera extensie",
|
||||
"subscribe_bookmarklet" : "Voeg abonnement toe bookmarklet (klik)",
|
||||
"subscribe_bookmarklet_asc" : "Oudste eerst",
|
||||
"subscribe_bookmarklet_desc" : "Nieuwste eerst",
|
||||
"next_unread_bookmarklet" : "Volgend ongelezen item bookmarklet (sleep naar bladwijzerbalk)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Vertalingen",
|
||||
"message" : "We hebben jouw hulp nodig om CommaFeed te vertalen.",
|
||||
"link" : "Bekijk hier hoe je kunt bijdragen met vertalingen."
|
||||
},
|
||||
"announcements" : "Aankondigingen",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "middelste muisknop",
|
||||
"open_next_entry" : "open het volgende artikel",
|
||||
"open_previous_entry" : "open het vorige artikel",
|
||||
"spacebar" : "spatie/shift+spatie",
|
||||
"move_page_down_up" : "beweegt de pagina naar onder/boven",
|
||||
"focus_next_entry" : "plaats focus op volgend artikel zonder het te openen",
|
||||
"focus_previous_entry" : "plaats focus op vorig artikel zonder het te openen",
|
||||
"open_next_feed" : "open volgende feed of categorie",
|
||||
"open_previous_feed" : "open vorige feed of categorie",
|
||||
"open_close_current_entry" : "open/sluit het huidige artikel",
|
||||
"open_current_entry_in_new_window" : "open het huidige artikel in een nieuw venster",
|
||||
"open_current_entry_in_new_window_background" : "open huidig artikel in een nieuw venster op de achtergrond",
|
||||
"star_unstar" : "voeg artikel toe aan/verwijder uit favorieten",
|
||||
"mark_current_entry" : "markeer huidig artikel als gelezen/ongelezen",
|
||||
"mark_all_as_read" : "markeer alle artikelen als gelezen",
|
||||
"open_in_new_tab_mark_as_read" : "open artikel in een nieuw tabblad en markeer als gelezen",
|
||||
"fullscreen" : "schakel tussen fullscreen weergave",
|
||||
"font_size" : "vergroot/verklein tekst in huidig artikel",
|
||||
"go_to_all" : "ga naar de ALLES-weergave",
|
||||
"go_to_starred" : "ga naar de Favorieten-weergave",
|
||||
"feed_search" : "navigeer naar een abonnement door diens naam in te typen"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/nn.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Lagre",
|
||||
"cancel" : "Avbryt",
|
||||
"delete" : "Slett",
|
||||
"required" : "Påkravd",
|
||||
"download" : "Last ned",
|
||||
"link" : "Lenkje",
|
||||
"bookmark" : "Bokmerke",
|
||||
"close" : "Lukk",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Abonner",
|
||||
"import" : "Importer",
|
||||
"new_category" : "Ny kategori",
|
||||
"all" : "Alle",
|
||||
"starred" : "Merka artiklar"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL for abonnement",
|
||||
"feed_name" : "Abonnementsnamn",
|
||||
"category" : "Kategori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "La meg importere abonnementa dine frå",
|
||||
"google_reader_suffix" : "-brukaren din.",
|
||||
"google_download" : "Alternativt, last opp di eiga subscriptions.xml-fil.",
|
||||
"google_download_link" : "Last ned herifrå.",
|
||||
"xml_file" : "OPML-fil"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Namn",
|
||||
"parent" : "Overordna"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Ulesne",
|
||||
"all" : "Alle",
|
||||
"previous_entry" : "Førre artikkel",
|
||||
"next_entry" : "Neste artikkel",
|
||||
"refresh" : "Oppdater",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sorter etter dato ny/gamal",
|
||||
"titles_only" : "Berre titlar",
|
||||
"expanded_view" : "Utvida visning",
|
||||
"mark_all_as_read" : "Merk alle som lesne",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Artiklar eldre enn éin dag",
|
||||
"mark_all_older_week" : "Artiklar eldre enn éi veke",
|
||||
"mark_all_older_two_weeks" : "Artiklar eldre enn to veker",
|
||||
"settings" : "Innstillingar",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Om",
|
||||
"logout" : "Logg ut",
|
||||
"donate" : "Doner"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "av ",
|
||||
"error_while_loading_feed" : "Feil under lasting av artikkel",
|
||||
"keep_unread" : "Behold som ulesen",
|
||||
"no_unread_items" : "har ingen ulesne artiklar.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Skriv inn eit abonnement...",
|
||||
"help" : "Bruk entertasten for å velje og piltastane for å navigere.",
|
||||
"result_prefix" : "Dine abonnement:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Generelt",
|
||||
"language" : "Språk",
|
||||
"language_contribute" : "Bidra med omsetjingar",
|
||||
"show_unread" : "Vis abonnement og kategoriar utan nye artiklar",
|
||||
"social_buttons" : "Vis delingsknappar",
|
||||
"scroll_marks" : "I utvida visning, merk artiklar som lesne når du blar deg forbi dei."
|
||||
},
|
||||
"appearance" : "Utsjånad",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Drakt",
|
||||
"submit_your_theme" : "Legg til eiga drakt",
|
||||
"custom_css" : "Skreddarsydd CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Abonnementsdetaljar",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Namn",
|
||||
"category" : "Kategori",
|
||||
"position" : "Posisjon",
|
||||
"last_refresh" : "Siste oppdatering",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Neste oppdatering",
|
||||
"queued_for_refresh" : "I kø for oppdatering",
|
||||
"feed_url" : "URL for abonnement",
|
||||
"generate_api_key_first" : "Generer ein API-nykel under profilinnstillingar fyrst.",
|
||||
"unsubscribe" : "Avslutt abonnement",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Kategoridetaljar",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Overordna kategori"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Brukarnamn",
|
||||
"email" : "E-post",
|
||||
"change_password" : "Endre passord",
|
||||
"confirm_password" : "Stadfest passord",
|
||||
"minimum_6_chars" : "Minimum 6 teikn",
|
||||
"passwords_do_not_match" : "Passorda er usamde",
|
||||
"api_key" : "API-nykel",
|
||||
"api_key_not_generated" : "Har ikkje vorte generert",
|
||||
"generate_new_api_key" : "Generer ny API-nykel",
|
||||
"generate_new_api_key_info" : "Endring av passord vil generere ein ny API-nykel",
|
||||
"opml_export" : "OPML-eksport",
|
||||
"delete_account" : "Slett brukar",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed er bygd på toppen av JAX-RS og AngularJS. Difor er REST API tilgjengeleg.",
|
||||
"link_to_documentation" : "Lenkje til dokumentasjon."
|
||||
},
|
||||
"keyboard_shortcuts" : "Hurtigtastar",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed er eit prosjekt med open kjeldekode. Kjeldekoden er tilgjengeleg på ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Viss du finn ein feil eller eit problem, rapporter det på ",
|
||||
"line2_suffix" : " prosjektsida.",
|
||||
"line3" : "Viss du likar dette prosjektet, kan du vurdere ein donasjon for å støtte utviklaren, og bidra med å dekkje kostnadane til å drifte nettstaden.",
|
||||
"line4" : "For dei som føretrekkjer bitcoin, her er adressa",
|
||||
"goodies" : {
|
||||
"value" : "Godsakar",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Abonner URL",
|
||||
"chrome_extension" : "Chrome-utviding",
|
||||
"firefox_extension" : "Firefox-utviding",
|
||||
"opera_extension" : "Opera-utviding",
|
||||
"subscribe_bookmarklet" : "Nytt abonnement-bokmerkjeprogram (klikk)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Neste ulesne artikkel-bokmerkeprogram (dra til bokmerkemenyen)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Omsetjing",
|
||||
"message" : "Vi behøver di hjelp til å omsetje CommaFeed.",
|
||||
"link" : "Sjå korleis du kan hjelpe til med omsetjingar."
|
||||
},
|
||||
"announcements" : "Kunngjøringer",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "midtre museknapp/musehjulet",
|
||||
"open_next_entry" : "opne neste artikkel",
|
||||
"open_previous_entry" : "opne førre artikkel",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "sett fokus på neste artikkel utan å opne han",
|
||||
"focus_previous_entry" : "sett fokus på forrige artikkel utan å opne han",
|
||||
"open_next_feed" : "opne neste abonnement eller kategori",
|
||||
"open_previous_feed" : "opne førre abonnement eller kategori",
|
||||
"open_close_current_entry" : "opne/lukke gjeldande artikkel",
|
||||
"open_current_entry_in_new_window" : "opne gjeldande artikkel i eit nytt vindauge",
|
||||
"open_current_entry_in_new_window_background" : "opne gjeldande artikkel i eit nytt bakgrunnsvindauge",
|
||||
"star_unstar" : "legg til stjerne/fjern stjerne frå gjeldande artikkel",
|
||||
"mark_current_entry" : "merk gjeldande artikkel som lesen/ulesen",
|
||||
"mark_all_as_read" : "merk alle artiklar som lesne",
|
||||
"open_in_new_tab_mark_as_read" : "opne artikkel i ny fane og merk som lesen",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "naviger til eit abonnement ved å skrive inn abonnementsnamnet"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/pl.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Zachowaj",
|
||||
"cancel" : "Anuluj",
|
||||
"delete" : "Usuń",
|
||||
"required" : "Wymagane",
|
||||
"download" : "Pobierz",
|
||||
"link" : "Odnośnik",
|
||||
"bookmark" : "Zakładka",
|
||||
"close" : "Zamknij",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Subskrybuj",
|
||||
"import" : "Importuj",
|
||||
"new_category" : "Nowa kategoria",
|
||||
"all" : "Wszystkie elementy",
|
||||
"starred" : "Elementy oznaczone gwiazdką"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL kanału",
|
||||
"feed_name" : "Nazwa kanału",
|
||||
"category" : "Kategoria"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Pozwól mi zaimportować kanały z twojego ",
|
||||
"google_reader_suffix" : " konta",
|
||||
"google_download" : "albo, wrzuć pilk subskrypcje.xml",
|
||||
"google_download_link" : "Ściągnij go stąd.",
|
||||
"xml_file" : "Plik OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nazwa",
|
||||
"parent" : "Kategoria nadrzędna"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Nieprzeczytane",
|
||||
"all" : "Wszystkie",
|
||||
"previous_entry" : "Poprzedni element",
|
||||
"next_entry" : "Następny element",
|
||||
"refresh" : "Odswież",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Sortuj od najnowszego/najstarszego",
|
||||
"titles_only" : "Widok listy",
|
||||
"expanded_view" : "Widok rozwinięty",
|
||||
"mark_all_as_read" : "Oznacz wszystko jako przeczytane",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Elementy starsze niż dzień",
|
||||
"mark_all_older_week" : "Elementy starsze niż tydzień",
|
||||
"mark_all_older_two_weeks" : "Elementy starsze niż dwa tygodnie",
|
||||
"settings" : "Ustawienia",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "O CommaFeed",
|
||||
"logout" : "Wyloguj",
|
||||
"donate" : "Wspomóż"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "przez",
|
||||
"error_while_loading_feed" : "Wystąpił błąd podczas ładowania tego kanału.",
|
||||
"keep_unread" : "Pozostaw nieprzeczytane",
|
||||
"no_unread_items" : " nie ma nieprzeczytanych elementów.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Wpisz subskrybcję...",
|
||||
"help" : "Użyj klawisza Enter do zaznaczenia a strzałek do nawigacji. ",
|
||||
"result_prefix" : "Twoje subskrybcje: "
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Ogólne",
|
||||
"language" : "Język",
|
||||
"language_contribute" : "Pomóż w tłumaczeniu",
|
||||
"show_unread" : "Pokaż kanały i kategorie bez nieprzeczytanych elementów",
|
||||
"social_buttons" : "Pokaż przyciski udostępniania",
|
||||
"scroll_marks" : "W widoku rozwiniętym przewijanie oznacza elementy jako przeczytane"
|
||||
},
|
||||
"appearance" : "Wygląd",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Motyw",
|
||||
"submit_your_theme" : "Wyślij swój motyw",
|
||||
"custom_css" : "Własny styl CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Szczegóły kanału",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "Nazwa",
|
||||
"category" : "Kategoria",
|
||||
"position" : "Pozycja",
|
||||
"last_refresh" : "Ostatnio odświeżony",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Następne odświeżenie",
|
||||
"queued_for_refresh" : "W kolejce do odświeżenia",
|
||||
"feed_url" : "URL kanału",
|
||||
"generate_api_key_first" : "Najpierw wygeneruj klucz API w swoim profilu.",
|
||||
"unsubscribe" : "Cofnij subskrypcje",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Szczegóły kategorii",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Kategoria nadrzędna"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Nazwa użytkownika",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Zmień hasło",
|
||||
"confirm_password" : "Potwierdź hasło",
|
||||
"minimum_6_chars" : "Minimum 6 znaków",
|
||||
"passwords_do_not_match" : "Hasła nie pasują do siebie",
|
||||
"api_key" : "Klucz API",
|
||||
"api_key_not_generated" : "Jeszcze niewygenerowany",
|
||||
"generate_new_api_key" : "Wygeneruj nowy klucz API",
|
||||
"generate_new_api_key_info" : "Zmiana hasła spowoduje wygenerowanie nowego klucza API",
|
||||
"opml_export" : "Eksportuj do pliku OPML",
|
||||
"delete_account" : "Usuń konto",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed jest oparty o JAX-RS i AngularJS. Dzięki temu REST API jest dostępne.",
|
||||
"link_to_documentation" : "Link do dokumentacji."
|
||||
},
|
||||
"keyboard_shortcuts" : "Skróty klawiszowe",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed jest projektem Open-Source. Źródła są dostępne na ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Jeśli napotkasz jakiś problem, proszę zgłoś go na stronie ",
|
||||
"line2_suffix" : " projektu.",
|
||||
"line3" : "Jeśli podoba ci się ten projekt, rozważ wsparcie autora i pomóż w utrzymaniu tej strony.",
|
||||
"line4" : "Jeśli wolisz bitcoin, użyj tego adresu",
|
||||
"goodies" : {
|
||||
"value" : "Dodatki",
|
||||
"android_app" : "Aplikacja na Androida",
|
||||
"subscribe_url" : "Subskrybuj URL",
|
||||
"chrome_extension" : "Dodatek do Chrome",
|
||||
"firefox_extension" : "Dodatek do Firefoxa",
|
||||
"opera_extension" : "Dodatek do Opery",
|
||||
"subscribe_bookmarklet" : "Dodaj subskrybcje jako skryptozakładkę (kliknij)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Następny nieprzeczytany element jako skryptozakładka (przeciągnij na pasek zakładek)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Tłumaczenia",
|
||||
"message" : "Potrzebujemy pomocy w tłumaczeniu CommaFeed.",
|
||||
"link" : "Zobacz jak możesz pomóc."
|
||||
},
|
||||
"announcements" : "Ogłoszenia",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "środkowy przycisk myszy",
|
||||
"open_next_entry" : "otwórz następny element",
|
||||
"open_previous_entry" : "otwórz poprzedni element",
|
||||
"spacebar" : "spacja/shift+spacja",
|
||||
"move_page_down_up" : "przesuwa stronę w górę/dół",
|
||||
"focus_next_entry" : "wyróżnij następny element bez otwierania go",
|
||||
"focus_previous_entry" : "wyróżnij poprzedni element bez otwierania go",
|
||||
"open_next_feed" : "otwórz następny kanał lub kategorię",
|
||||
"open_previous_feed" : "otwórz poprzedni kanał lub kategorię",
|
||||
"open_close_current_entry" : "otwórz/zamknij bieżący element",
|
||||
"open_current_entry_in_new_window" : "otwórz bieżący element w nowym oknie",
|
||||
"open_current_entry_in_new_window_background" : "otwórz bieżący element w nowym oknie w tle",
|
||||
"star_unstar" : "oznacz/odznacz gwiazdką bieżący element",
|
||||
"mark_current_entry" : "oznacz jako przeczytany/nieprzeczytany obecny element",
|
||||
"mark_all_as_read" : "oznacz wszystko jako przeczytane",
|
||||
"open_in_new_tab_mark_as_read" : "otwórz w nowej zakładce i oznacz jako przeczytane",
|
||||
"fullscreen" : "przełącz tryb pełnoekranowy",
|
||||
"font_size" : "zmień wielkość czcionki",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "przejdź do subskrybcji wpisując jej nazwę"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/pt.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Salvar",
|
||||
"cancel" : "Cancelar",
|
||||
"delete" : "Excluir",
|
||||
"required" : "Obrigatório",
|
||||
"download" : "Download",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Favorito",
|
||||
"close" : "Fechar",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Inscrever-se",
|
||||
"import" : "Importar",
|
||||
"new_category" : "Nova categoria",
|
||||
"all" : "Todos",
|
||||
"starred" : "Com estrela"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL de feed",
|
||||
"feed_name" : "Nome do feed",
|
||||
"category" : "Categoria"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Deixe-me importar seus feeds de sua conta",
|
||||
"google_reader_suffix" : ".",
|
||||
"google_download" : "Alternativamente, faça upload de seu arquivo subscriptions.xml.",
|
||||
"google_download_link" : "Fazer download daqui.",
|
||||
"xml_file" : "Arquivo OPML"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Nome",
|
||||
"parent" : "Pai"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Não lidos",
|
||||
"all" : "Todos",
|
||||
"previous_entry" : "Item anterior",
|
||||
"next_entry" : "Próximo item",
|
||||
"refresh" : "Atualizar",
|
||||
"refresh_all" : "Forçar atualização de todos os meus feeds",
|
||||
"sort_by_asc_desc" : "Ordenar por data cresc/decres",
|
||||
"titles_only" : "Somente títulos",
|
||||
"expanded_view" : "Modo Expandido",
|
||||
"mark_all_as_read" : "Marcar tudo como lido",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Itens mais antigos que um dia",
|
||||
"mark_all_older_week" : "Itens mais antigos que uma semana",
|
||||
"mark_all_older_two_weeks" : "Itens mais antigos que duas semanas",
|
||||
"settings" : "Configurações",
|
||||
"profile" : "Perfil",
|
||||
"admin" : "Admin",
|
||||
"about" : "Sobre",
|
||||
"logout" : "Sair",
|
||||
"donate" : "Doar"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "de",
|
||||
"entry_author" : "por",
|
||||
"error_while_loading_feed" : "Erro lendo esse feed",
|
||||
"keep_unread" : "Manter como não lido",
|
||||
"no_unread_items" : "não tem itens não lidos.",
|
||||
"mark_up_to_here" : "Marcar como lido até aqui",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Digite o nome de uma Inscrição...",
|
||||
"help" : "Use a tecla ENTER e setas direcionais para navegar.",
|
||||
"result_prefix" : "Suas inscrições:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Geral",
|
||||
"language" : "Idioma",
|
||||
"language_contribute" : "Contribua com traduções",
|
||||
"show_unread" : "Mostrar feeds e categorias sem itens não lidos",
|
||||
"social_buttons" : "Mostrar botões de mídias sociais",
|
||||
"scroll_marks" : "No modo expandido, percorrer os itens marca-os como lidos"
|
||||
},
|
||||
"appearance" : "Aparência",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Tema",
|
||||
"submit_your_theme" : "Envie seu tema",
|
||||
"custom_css" : "CSS personalizado"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Detalhes do feed",
|
||||
"url" : "URL",
|
||||
"website" : "Website",
|
||||
"name" : "Nome",
|
||||
"category" : "Categoria",
|
||||
"position" : "Posição",
|
||||
"last_refresh" : "Última atualização",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Próxima atualização",
|
||||
"queued_for_refresh" : "Na fila para atualizar",
|
||||
"feed_url" : "URL do feed",
|
||||
"generate_api_key_first" : "Gerar uma chave de API em seu perfil primeiro.",
|
||||
"unsubscribe" : "Cancelar inscrição",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Detalhes da categoria",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Categoria pai"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Nome de usuário",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Trocar senha",
|
||||
"confirm_password" : "Confirmar senha",
|
||||
"minimum_6_chars" : "Mínimo de 6 caracteres",
|
||||
"passwords_do_not_match" : "Senhas não conferem",
|
||||
"api_key" : "Chave de API",
|
||||
"api_key_not_generated" : "Ainda não gerada",
|
||||
"generate_new_api_key" : "Gerar nova chave de API",
|
||||
"generate_new_api_key_info" : "Mudar a senha irá gerar uma nova chave de API",
|
||||
"opml_export" : "Exportar OPML",
|
||||
"delete_account" : "Excluir conta",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "API REST",
|
||||
"line1" : "CommaFeed foi desenvolvido sobre JAX-RS e AngularJS. Como tal, uma API REST está disponível.",
|
||||
"link_to_documentation" : "Link para a documentação."
|
||||
},
|
||||
"keyboard_shortcuts" : "Atalhos de teclado",
|
||||
"version" : "CommaFeed versão",
|
||||
"line1_prefix" : "CommaFeed é um projeto de código livre. Fontes estão hospedados em ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Se você encontrar um problema, por favor relate-o na página de problemas do projeto ",
|
||||
"line2_suffix" : ".",
|
||||
"line3" : "Se você gostar desse projeto, por favor considere uma doação para apoiar o desenvolvedor e ajudar a cobrir os custos de manter esse website no ar.",
|
||||
"line4" : "Para quem preferir bitcoin, esse é o endereço",
|
||||
"goodies" : {
|
||||
"value" : "Extras",
|
||||
"android_app" : "Aplicativo Android",
|
||||
"subscribe_url" : "URL de inscrição",
|
||||
"chrome_extension" : "Extensão para o Chrome",
|
||||
"firefox_extension" : "Extensão para o Firefox",
|
||||
"opera_extension" : "Extensão para o Opera",
|
||||
"subscribe_bookmarklet" : "Bookmarklet para adicionar inscrição (clique)",
|
||||
"subscribe_bookmarklet_asc" : "Mais velhas primeiro",
|
||||
"subscribe_bookmarklet_desc" : "Mais novas primeiro",
|
||||
"next_unread_bookmarklet" : "Bookmarklet para o próximo item não lido (arraste para a barra de favoritos)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Tradução",
|
||||
"message" : "Precisamos de sua ajuda para traduzir CommaFeed.",
|
||||
"link" : "Veja como contribuir com traduções."
|
||||
},
|
||||
"announcements" : "Anúncios",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "clique com o botão do meio do mouse",
|
||||
"open_next_entry" : "abre próximo item",
|
||||
"open_previous_entry" : "abre item anterior",
|
||||
"spacebar" : "barra de espaço/shift+barra de espaço",
|
||||
"move_page_down_up" : "move a página para baixo/cima",
|
||||
"focus_next_entry" : "seleciona próximo item sem abri-lo",
|
||||
"focus_previous_entry" : "seleciona item anterior sem abri-lo",
|
||||
"open_next_feed" : "abre próximo feed ou categoria",
|
||||
"open_previous_feed" : "abre feed ou categoria anterior",
|
||||
"open_close_current_entry" : "abre/fecha item atual",
|
||||
"open_current_entry_in_new_window" : "abre item atual em uma nova janela",
|
||||
"open_current_entry_in_new_window_background" : "abre item atual em uma nova janela em plano de fundo",
|
||||
"star_unstar" : "marca/desmarca estrela do item atual",
|
||||
"mark_current_entry" : "marca item atual como lido/não lido",
|
||||
"mark_all_as_read" : "marca todos os itens como lidos",
|
||||
"open_in_new_tab_mark_as_read" : "abre item em uma nova aba e marca como lido",
|
||||
"fullscreen" : "modo tela cheia",
|
||||
"font_size" : "aumenta/diminui o tamanho da fonte na entrada atual",
|
||||
"go_to_all" : "vá para Todos os itens",
|
||||
"go_to_starred" : "vá para itens com estrela",
|
||||
"feed_search" : "navega entre inscrições buscando pelo nome"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/ru.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Сохранить",
|
||||
"cancel" : "Отмена",
|
||||
"delete" : "Удалить",
|
||||
"required" : "Обязательно",
|
||||
"download" : "Скачать",
|
||||
"link" : "Ссылка",
|
||||
"bookmark" : "Закладка",
|
||||
"close" : "Закрыть",
|
||||
"tags" : "Теги"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Подписаться",
|
||||
"import" : "Импорт",
|
||||
"new_category" : "Новая категория",
|
||||
"all" : "Все",
|
||||
"starred" : "Избранное"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Адрес ленты",
|
||||
"feed_name" : "Название ленты",
|
||||
"category" : "Категория"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Можно импотрировать подписки из ",
|
||||
"google_reader_suffix" : " аккаунта.",
|
||||
"google_download" : "Или загрузить собсвенный XML-файл подпискок.",
|
||||
"google_download_link" : "Скачайте его здесь.",
|
||||
"xml_file" : "OPML-файл"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Название",
|
||||
"parent" : "Родительская категория"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Непрочитанные",
|
||||
"all" : "Все",
|
||||
"previous_entry" : "Предыдущая запись",
|
||||
"next_entry" : "Следующая запись",
|
||||
"refresh" : "Обновить",
|
||||
"refresh_all" : "Обновить все подписки вручную",
|
||||
"sort_by_asc_desc" : "Сначала новые/старые",
|
||||
"titles_only" : "Только заголовки",
|
||||
"expanded_view" : "Развёрнутый вид",
|
||||
"mark_all_as_read" : "Отметить всё как прочитанное",
|
||||
"mark_all_older_12_hours" : "Записи старше 12-и часов",
|
||||
"mark_all_older_day" : "Записи старше суток",
|
||||
"mark_all_older_week" : "Записи старше недели",
|
||||
"mark_all_older_two_weeks" : "Записи старше двух недель",
|
||||
"settings" : "Настройки",
|
||||
"profile" : "Профиль",
|
||||
"admin" : "Администратор",
|
||||
"about" : "Справка",
|
||||
"logout" : "Выйти",
|
||||
"donate" : "Поддержать проект"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "от",
|
||||
"entry_author" : "автор",
|
||||
"error_while_loading_feed" : "Не удалось загрузить ленту",
|
||||
"keep_unread" : "Оставить непрочитанным",
|
||||
"no_unread_items" : "нет непрочитанных записей.",
|
||||
"mark_up_to_here" : "Отметить прочитанным до сюда",
|
||||
"search_for" : "искать:",
|
||||
"no_search_results" : "По данному запросу ничего не найдено."
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Введите подписку...",
|
||||
"help" : "Используйте клавишу ввода для выбора и стрелки для перемещения.",
|
||||
"result_prefix" : "Ваши подписки:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Основное",
|
||||
"language" : "Язык",
|
||||
"language_contribute" : "Принять участие в переводе",
|
||||
"show_unread" : "Показывать прочтённые ленты и категории",
|
||||
"social_buttons" : "Показывать социальные кнопки",
|
||||
"scroll_marks" : "В развёрнутом виде помечать записи как прочитанные по мере прокрутки"
|
||||
},
|
||||
"appearance" : "Вид",
|
||||
"scroll_speed" : "Скорость прокрутки при навигации между записями (в миллисекундах)",
|
||||
"scroll_speed_help" : "смените на 0 чтобы выключить",
|
||||
"theme" : "Тема",
|
||||
"submit_your_theme" : "Добавьте свою тему",
|
||||
"custom_css" : "Собственная CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Информация о ленте",
|
||||
"url" : "URL",
|
||||
"website" : "Сайт",
|
||||
"name" : "Название",
|
||||
"category" : "Категория",
|
||||
"position" : "Позиция",
|
||||
"last_refresh" : "Последнее обновление",
|
||||
"message" : "Сообщение последнего обновления",
|
||||
"next_refresh" : "Следующее обновление",
|
||||
"queued_for_refresh" : "В очереди на обновление",
|
||||
"feed_url" : "Адрес ленты",
|
||||
"generate_api_key_first" : "Сначала сгенерируйте API-ключ в вашем профиле.",
|
||||
"unsubscribe" : "Отписаться",
|
||||
"unsubscribe_confirmation" : "Подтвердить отписку от этой ленты? Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Подтвердить удаление этой категории?",
|
||||
"category_details" : "Информация о категории",
|
||||
"tag_details" : "Детали тега",
|
||||
"parent_category" : "Родительская категория"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Имя пользователя",
|
||||
"email" : "Эл. почта",
|
||||
"change_password" : "Изменить пароль",
|
||||
"confirm_password" : "Подтвердите пароль",
|
||||
"minimum_6_chars" : "Не меньше 6 символов",
|
||||
"passwords_do_not_match" : "Пароли не совпадают",
|
||||
"api_key" : "API-ключ",
|
||||
"api_key_not_generated" : "Не сгенерирован",
|
||||
"generate_new_api_key" : "Сгенерировать новый API-ключ",
|
||||
"generate_new_api_key_info" : "После изменения пароля, API-ключ изменится",
|
||||
"opml_export" : "Экспорт OPML",
|
||||
"delete_account" : "Удалить аккаунт",
|
||||
"delete_account_confirmation" : "Удалить ваш аккаунт? Назад пути не будет!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed основан на JAX-RS и AngularJS. Вам доступно REST API.",
|
||||
"link_to_documentation" : "Ссылка на документацию."
|
||||
},
|
||||
"keyboard_shortcuts" : "Горячие клавиши",
|
||||
"version" : "Версия CommaFeed",
|
||||
"line1_prefix" : "CommaFeed — проект с открытым исходным кодом. Исходники находятся на ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Если вы обнаружите ошибку, пожалуйста, сообщите о ней на ",
|
||||
"line2_suffix" : ".",
|
||||
"line3" : "Если вам понравился этот проект, пожалуйста, поддержите разработчика суммой, которую вам не жалко, чтобы сайт продолжал работать.",
|
||||
"line4" : "Адрес для тех, кто предпочитает bitcoin",
|
||||
"goodies" : {
|
||||
"value" : "Дополнения",
|
||||
"android_app" : "Приложение для Андроид",
|
||||
"subscribe_url" : "Адрес для подписки (заменить FEED_URL_HERE на адрес ленты)",
|
||||
"chrome_extension" : "Расширение для Chrome",
|
||||
"firefox_extension" : "Расширение для Firefox",
|
||||
"opera_extension" : "Расширение для Opera",
|
||||
"subscribe_bookmarklet" : "Закладка для быстрой подписки на ленты (нужно кликнуть)",
|
||||
"subscribe_bookmarklet_asc" : "Сначала старые",
|
||||
"subscribe_bookmarklet_desc" : "Сначала новые",
|
||||
"next_unread_bookmarklet" : "Открыть следующую непрочитанную запись в новой вкладке (перетащить на панель закладок)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Перевод",
|
||||
"message" : "Нам нужна ваша помощь в переводе CommaFeed на другие языки.",
|
||||
"link" : "Посмотрите как поучаствовать в переводе."
|
||||
},
|
||||
"announcements" : "Объявления",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "средняя кнопка мыши",
|
||||
"open_next_entry" : "открыть следующую запись",
|
||||
"open_previous_entry" : "открыть предыдущую запись",
|
||||
"spacebar" : "пробел/shift+пробел",
|
||||
"move_page_down_up" : "передвигает страницу вверх/вниз",
|
||||
"focus_next_entry" : "выбрать следующую запись не открывая её",
|
||||
"focus_previous_entry" : "выбрать предыдущую запись не открывая её",
|
||||
"open_next_feed" : "открыть следующую ленту или категорию",
|
||||
"open_previous_feed" : "открыть предыдущую ленту или категорию",
|
||||
"open_close_current_entry" : "открыть/закрыть текущюю запись",
|
||||
"open_current_entry_in_new_window" : "открыть текущюю запись в новом окне",
|
||||
"open_current_entry_in_new_window_background" : " открыть текущую запись в новом окне на фоне",
|
||||
"star_unstar" : "добавить/убрать из избранного текущюю запись",
|
||||
"mark_current_entry" : "пометить текущюю запись как прочитанную",
|
||||
"mark_all_as_read" : "пометить всё как прочитанное",
|
||||
"open_in_new_tab_mark_as_read" : "открыть запись в новом окне и пометить как прочитанную",
|
||||
"fullscreen" : "переключиться в полноэкранный режим",
|
||||
"font_size" : "увеличить/уменьшить размер шрифта текущей записи",
|
||||
"go_to_all" : "перейти ко всем",
|
||||
"go_to_starred" : "перейти к избранным",
|
||||
"feed_search" : "перейти к подписке по названию"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/sk.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Uložiť",
|
||||
"cancel" : "Zrušiť",
|
||||
"delete" : "Odstrániť",
|
||||
"required" : "Povinné",
|
||||
"download" : "Stiahnuť",
|
||||
"link" : "Link",
|
||||
"bookmark" : "Záložky",
|
||||
"close" : "Zavrieť",
|
||||
"tags" : "Tagy"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Odoberať",
|
||||
"import" : "Importovať",
|
||||
"new_category" : "Nová kategória",
|
||||
"all" : "Všetko",
|
||||
"starred" : "Obľúbené"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "URL RSS zdroja",
|
||||
"feed_name" : "Názov RSS zdroja",
|
||||
"category" : "Kategória"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Importujte si RSS zdroje s vášho",
|
||||
"google_reader_suffix" : " účtu.",
|
||||
"google_download" : "Alternatívne, môžte nahrať váš subscriptions.xml súbor",
|
||||
"google_download_link" : "Stiahnuť to môžete s lokácie.",
|
||||
"xml_file" : "OPML súbor"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Názov",
|
||||
"parent" : "Hlavná"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Neprečítané",
|
||||
"all" : "Všetky",
|
||||
"previous_entry" : "Predchádzajúca položka",
|
||||
"next_entry" : "Nasledujúca položka",
|
||||
"refresh" : "Obnoviť",
|
||||
"refresh_all" : "Vynútené obnovenie všetkých položiek",
|
||||
"sort_by_asc_desc" : "Zoradiť podľa najnovšieho/najstaršieho",
|
||||
"titles_only" : "Náhľad titulkov",
|
||||
"expanded_view" : "Rozšírený náhľad",
|
||||
"mark_all_as_read" : "Označiť všetky ako prečítané",
|
||||
"mark_all_older_12_hours" : "Položky staršie ako 12 hodín",
|
||||
"mark_all_older_day" : "Položky staršie ako deň",
|
||||
"mark_all_older_week" : "Položky staršie ako týždeň",
|
||||
"mark_all_older_two_weeks" : "Položky staršie ako dva týždne",
|
||||
"settings" : "Nastavenia",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Admin",
|
||||
"about" : "O CommaFeed",
|
||||
"logout" : "Odhlásiť",
|
||||
"donate" : "Donate"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "z",
|
||||
"entry_author" : "od ",
|
||||
"error_while_loading_feed" : "Počas načítavania sa vyskytla chyba",
|
||||
"keep_unread" : "Ponechať ako neprečítané",
|
||||
"no_unread_items" : "nemá žiadne neprečítané položky.",
|
||||
"mark_up_to_here" : "Až potiaľto označiť položky ako prečítané",
|
||||
"search_for" : "Hľadaný výraz:",
|
||||
"no_search_results" : "Nenašla sa žiadna zhoda pre hľadaný výraz."
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Zadajte názov odoberania...",
|
||||
"help" : "Použite klávesu enter pre výber a smerové klávesy pre navigáciu.",
|
||||
"result_prefix" : "Vaše odoberania:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Všeobecné",
|
||||
"language" : "Jazyk",
|
||||
"language_contribute" : "Zapojte sa do prekladu",
|
||||
"show_unread" : "Zobraziť príspevky a kategórie bez neprečítaných položiek",
|
||||
"social_buttons" : "Zobraziť možnosti zdieľania",
|
||||
"scroll_marks" : "Scrollovanie v rozšírenom náhľade označí položky ako prečítané"
|
||||
},
|
||||
"appearance" : "Vzhľad",
|
||||
"scroll_speed" : "Rýchlosť skrolovania—pohybu medzi položkami (v milisekundách)",
|
||||
"scroll_speed_help" : "nastavte 0 pre deaktiváciu",
|
||||
"theme" : "Motív",
|
||||
"submit_your_theme" : "Nahrať vlastný motív vzhľadu",
|
||||
"custom_css" : "Vlastný motív vzhľadu (CSS)"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Detaily odoberania",
|
||||
"url" : "URL odkaz",
|
||||
"website" : "Web stránka",
|
||||
"name" : "Názov",
|
||||
"category" : "Kategória",
|
||||
"position" : "Pozícia",
|
||||
"last_refresh" : "Predchádzajúce obnovenie",
|
||||
"message" : "Predchádzajúca správa obnovenia",
|
||||
"next_refresh" : "Nasledujúce obnovenie",
|
||||
"queued_for_refresh" : "Vo fronte",
|
||||
"feed_url" : "URL RSS zdroja",
|
||||
"generate_api_key_first" : "Vygenerujte si API kľúč vo vašom profile.",
|
||||
"unsubscribe" : "Zrušiť odoberanie.",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Detaily kategórie",
|
||||
"tag_details" : "Detaily tagu",
|
||||
"parent_category" : "Hlavná kategória"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Uživateľské meno",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Zmeniť heslo",
|
||||
"confirm_password" : "Potvrdiť heslo",
|
||||
"minimum_6_chars" : "Minimum je 6 znakov",
|
||||
"passwords_do_not_match" : "Heslá sa nezhodujú",
|
||||
"api_key" : "API kľúč",
|
||||
"api_key_not_generated" : "Nie je vygenerovaný",
|
||||
"generate_new_api_key" : "Vygenerovať nový API kľúč",
|
||||
"generate_new_api_key_info" : "Zmenou hesla vygenerujete nový API kľúč",
|
||||
"opml_export" : "exportovať do formátu OPML",
|
||||
"delete_account" : "Odstrániť účet",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed je postavený na JAX-RS a AngularJS. Dostupná je REST API.",
|
||||
"link_to_documentation" : "Prejsť na dokumentáciu."
|
||||
},
|
||||
"keyboard_shortcuts" : "Klávesové skratky",
|
||||
"version" : "CommaFeed verzia ",
|
||||
"line1_prefix" : "CommaFeed je open source projekt. Zdrojový kód je dostupný na ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "V prípade, že narazíte na problém, ohláste ho prosím na stránkach",
|
||||
"line2_suffix" : " projektu.",
|
||||
"line3" : "V prípade, že sa vám páči CommaFeed, zvážte prosím finančný príspevok. Podporíte tým vývojárov a tiež pomôžete udržať web stránky online.",
|
||||
"line4" : "Pre tých, ktorí preferujú bitcoin",
|
||||
"goodies" : {
|
||||
"value" : "Rozšírenia",
|
||||
"android_app" : "Aplikácia pre zariadenia Android",
|
||||
"subscribe_url" : "URL",
|
||||
"chrome_extension" : "Rozšírenie pre prehliadač Chrome",
|
||||
"firefox_extension" : "Rozšírenie pre prehliadač Firefox",
|
||||
"opera_extension" : "Rozšírenie pre prehliadač Opera",
|
||||
"subscribe_bookmarklet" : "Bookmarklet",
|
||||
"subscribe_bookmarklet_asc" : "Zoradiť podľa najstaršieho ",
|
||||
"subscribe_bookmarklet_desc" : "Zoradiť podľa najnovšieho ",
|
||||
"next_unread_bookmarklet" : "Záložka nasledujúcej neprečítanej položky(pretiahuť k záložkám)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Preklad",
|
||||
"message" : "Pomôžte s prekladom CommaFeed.",
|
||||
"link" : "Zistite, ako sa možete zapojiť do prekladu CommaFeed."
|
||||
},
|
||||
"announcements" : "Oznámenia",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "klik prostredným tlačítkom",
|
||||
"open_next_entry" : "zobraziť nasledujúcu položku",
|
||||
"open_previous_entry" : "zobraziť predchádzajúcu položku",
|
||||
"spacebar" : "medzerník/shift+medzerník",
|
||||
"move_page_down_up" : "pohyb smerom dole/hore",
|
||||
"focus_next_entry" : "presun na nasledujúcu položku bez jej zobrazenia",
|
||||
"focus_previous_entry" : "presun na predchádzajúcu položku bez jej zobrazenia",
|
||||
"open_next_feed" : "presun na nasledujúci RSS zdroj alebo kategóriu",
|
||||
"open_previous_feed" : "presun na predchádzajúci RSS zdroj alebo kategóriu",
|
||||
"open_close_current_entry" : "zobraziť vybranú položku",
|
||||
"open_current_entry_in_new_window" : "zobraziť vybranú položku v novom okne",
|
||||
"open_current_entry_in_new_window_background" : "otvoriť vybranú položku na pozadí",
|
||||
"star_unstar" : "označiť vybranú položku ako obľúbená",
|
||||
"mark_current_entry" : "označiť vybranú položku ako prečítanú/neprečítanú",
|
||||
"mark_all_as_read" : "označiť všetky položky ako prečítané!",
|
||||
"open_in_new_tab_mark_as_read" : "zobraziť položku na novej karte a označí ju ako prečítanú",
|
||||
"fullscreen" : "prepnutie zobrazenia na celú obrazovku",
|
||||
"font_size" : "zmeniť veľkosť písma pre vybranú položku",
|
||||
"go_to_all" : "zobraziť všetky položky",
|
||||
"go_to_starred" : "zobraziť obľúbené položiek",
|
||||
"feed_search" : "presun na odoberaný RSS zdroj vložením jeho názvu"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/sv.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Spara",
|
||||
"cancel" : "Avbryt",
|
||||
"delete" : "Radera",
|
||||
"required" : "Obligatorisk",
|
||||
"download" : "Ladda ned",
|
||||
"link" : "Länka",
|
||||
"bookmark" : "Bokmärk",
|
||||
"close" : "Stäng",
|
||||
"tags" : "Taggar"
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Prenumerera",
|
||||
"import" : "Importera",
|
||||
"new_category" : "Ny kategori",
|
||||
"all" : "Alla",
|
||||
"starred" : "Stjärnmärkt"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Prenumerationens URL",
|
||||
"feed_name" : "Prenumerationens namn",
|
||||
"category" : "Kategori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Låt mig importera dina prenumerationer från ditt",
|
||||
"google_reader_suffix" : "-konto.",
|
||||
"google_download" : "Alternativt, ladda upp din subscriptions.xml-fil.",
|
||||
"google_download_link" : "Ladda ned den här. ",
|
||||
"xml_file" : "OPML-fil"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "Namn",
|
||||
"parent" : "Överordnad"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Oläst",
|
||||
"all" : "Alla",
|
||||
"previous_entry" : "Föregående post",
|
||||
"next_entry" : "Nästa post",
|
||||
"refresh" : "Uppdatera",
|
||||
"refresh_all" : "Tvinga uppdatering av alla prenumerationer",
|
||||
"sort_by_asc_desc" : "Sortera efter datum stigande/fallande",
|
||||
"titles_only" : "Endast titlar",
|
||||
"expanded_view" : "Expanderad vy",
|
||||
"mark_all_as_read" : "Markera alla som lästa",
|
||||
"mark_all_older_12_hours" : "Poster äldre än 12 timmar",
|
||||
"mark_all_older_day" : "Poster äldre än en dag",
|
||||
"mark_all_older_week" : "Poster äldre än en vecka",
|
||||
"mark_all_older_two_weeks" : "Poster äldre än två veckor",
|
||||
"settings" : "Inställningar",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Administratör",
|
||||
"about" : "Om",
|
||||
"logout" : "Logga ut",
|
||||
"donate" : "Donera"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "från",
|
||||
"entry_author" : "av",
|
||||
"error_while_loading_feed" : "Fel under laddning av denna prenumeration",
|
||||
"keep_unread" : "Håll oläst",
|
||||
"no_unread_items" : "har inga olästa poster.",
|
||||
"mark_up_to_here" : "Markera som läst upp till denna post",
|
||||
"search_for" : "söker efter: ",
|
||||
"no_search_results" : "Inga resultat för valda nyckelord"
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Skriv in en prenumeration...",
|
||||
"help" : "Använd retur-tangenten för att välja och piltangenterna för att navigera.",
|
||||
"result_prefix" : "Dina prenumerationer:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Allmänt",
|
||||
"language" : "Språk",
|
||||
"language_contribute" : "Bidra med översättningar",
|
||||
"show_unread" : "Visa prenumerationer och kategorier utan olästa poster",
|
||||
"social_buttons" : "Visa delningsknappar",
|
||||
"scroll_marks" : "I expanderad vy, markera poster som lästa genom att scrolla förbi dem"
|
||||
},
|
||||
"appearance" : "Utseende",
|
||||
"scroll_speed" : "Scrollhastighet under navigation mellan poster (i millisekunder)",
|
||||
"scroll_speed_help" : "ställ på 0 för att avaktivera",
|
||||
"theme" : "Tema",
|
||||
"submit_your_theme" : "Skicka in ditt tema",
|
||||
"custom_css" : "Anpassad CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Prenumerationsdetaljer",
|
||||
"url" : "URL",
|
||||
"website" : "Webbsida",
|
||||
"name" : "Namn",
|
||||
"category" : "Kategori",
|
||||
"position" : "Position",
|
||||
"last_refresh" : "Senaste uppdatering",
|
||||
"message" : "Senaste uppdateringsmeddelande",
|
||||
"next_refresh" : "Nästa uppdatering",
|
||||
"queued_for_refresh" : "I kö för uppdatering",
|
||||
"feed_url" : "Prenumerationens URL",
|
||||
"generate_api_key_first" : "Skapa en API-nyckel på din profil först.",
|
||||
"unsubscribe" : "Avprenumerera",
|
||||
"unsubscribe_confirmation" : "Är du säker på att du vill avprenumerera?",
|
||||
"delete_category_confirmation" : "Är du säker på att du vill ta bort denna kategori?",
|
||||
"category_details" : "Kategoridetaljer",
|
||||
"tag_details" : "Taggdetaljer",
|
||||
"parent_category" : "Överordnad kategori"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Användarnamn",
|
||||
"email" : "E-mail",
|
||||
"change_password" : "Ändra lösenord",
|
||||
"confirm_password" : "Bekräfta lösenord",
|
||||
"minimum_6_chars" : "Minst 6 bokstäver",
|
||||
"passwords_do_not_match" : "Lösenorden matchar inte",
|
||||
"api_key" : "API-nyckel",
|
||||
"api_key_not_generated" : "Inte skapad än",
|
||||
"generate_new_api_key" : "Skapa ny API-nyckel",
|
||||
"generate_new_api_key_info" : "Lösenordsbyte skapar ny API-nyckel",
|
||||
"opml_export" : "OPML-export",
|
||||
"delete_account" : "Radera konto",
|
||||
"delete_account_confirmation" : "Vill du ta bort ditt konto? Det försvinner för alltid!"
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST-API",
|
||||
"line1" : "CommaFeed är byggt på JAX-RS och AngularJS. Tack vare detta är en REST-API tillgänglig.",
|
||||
"link_to_documentation" : "Länk till dokumentation."
|
||||
},
|
||||
"keyboard_shortcuts" : "Tangentbordsgenvägar",
|
||||
"version" : "CommaFeed-version",
|
||||
"line1_prefix" : "CommaFeed är ett open-source-projekt. Källan är tillgänglig på ",
|
||||
"line1_suffix" : ".",
|
||||
"line2_prefix" : "Om du träffar på ett problem, meddela det på \"Issues\"-sidan för ",
|
||||
"line2_suffix" : "-projektet.",
|
||||
"line3" : "Om du gillar detta projekt, avväg gärna en donation för att stötta utvecklaren och bidra till kostnaderna för att hålla denna site online.",
|
||||
"line4" : "För er som föredrar Bitcoin, här är adressen",
|
||||
"goodies" : {
|
||||
"value" : "Godsaker",
|
||||
"android_app" : "Android-app",
|
||||
"subscribe_url" : "Prenumerations-URL",
|
||||
"chrome_extension" : "Chrome-tillägg",
|
||||
"firefox_extension" : "Firefox-tillägg",
|
||||
"opera_extension" : "Opera-tillägg",
|
||||
"subscribe_bookmarklet" : "Bokmärke för tillägg av prenumeration (klicka)",
|
||||
"subscribe_bookmarklet_asc" : "äldst först",
|
||||
"subscribe_bookmarklet_desc" : "nyast först",
|
||||
"next_unread_bookmarklet" : "Bokmärke för nästa olästa post (dra till bokmärkesfält)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Översättning",
|
||||
"message" : "Vi behöver din hjälp med att översätta CommaFeed.",
|
||||
"link" : "Se hur du kan bidra med översättningar."
|
||||
},
|
||||
"announcements" : "Notiser",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "mitten-musknapp",
|
||||
"open_next_entry" : "öppna nästa post",
|
||||
"open_previous_entry" : "öppna föregående post",
|
||||
"spacebar" : "mellanslag/shift+mellanslag",
|
||||
"move_page_down_up" : "flyttar sidan ned/upp",
|
||||
"focus_next_entry" : "sätt fokus på nästa post utan att öppna",
|
||||
"focus_previous_entry" : "sätt fokus på föregående post utan att öppna",
|
||||
"open_next_feed" : "öppna nästa prenumeration eller kategori",
|
||||
"open_previous_feed" : "öppna föregående prenumeration eller kategori",
|
||||
"open_close_current_entry" : "öppna/stäng nuvarande post",
|
||||
"open_current_entry_in_new_window" : "öppna nuvarande post i nytt fönster",
|
||||
"open_current_entry_in_new_window_background" : "öppna nuvarande post i nytt bakgrundsfönster",
|
||||
"star_unstar" : "stjärnmärk/ostjärnmärk nuvarande post",
|
||||
"mark_current_entry" : "markera nuvarande post läst/oläst",
|
||||
"mark_all_as_read" : "markera alla som lästa",
|
||||
"open_in_new_tab_mark_as_read" : "öppna nuvarande post i ny flik och markera som läst",
|
||||
"fullscreen" : "växla till/från fullskärmsläge",
|
||||
"font_size" : "öka/minska teckenstorlek av nuvarande post",
|
||||
"go_to_all" : "se alla poster",
|
||||
"go_to_starred" : "se stjärnmärkta poster",
|
||||
"feed_search" : "navigera till en prenumeration via prenumerationsnamn"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/tr.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "Kaydet",
|
||||
"cancel" : "İptal",
|
||||
"delete" : "Sil",
|
||||
"required" : "Gerekli",
|
||||
"download" : "İndir",
|
||||
"link" : "Bağlantı",
|
||||
"bookmark" : "Yer imi",
|
||||
"close" : "Kapat",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "Abone ol",
|
||||
"import" : "İçe aktar",
|
||||
"new_category" : "Yeni kategori",
|
||||
"all" : "Tüm öğeler",
|
||||
"starred" : "Yıldızlı öğeler"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "Yayın URL'si",
|
||||
"feed_name" : "Yayın Adı",
|
||||
"category" : "Kategori"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "Aboneliklerinizi ",
|
||||
"google_reader_suffix" : " hesabınızdan aktarmama izin verin.",
|
||||
"google_download" : "Veya, subscriptions.xml dosyanızı yükleyin.",
|
||||
"google_download_link" : "Buradan indirebilirsiniz.",
|
||||
"xml_file" : "OPML dosyası"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "İsim",
|
||||
"parent" : "Üst"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "Okunmamış",
|
||||
"all" : "Tümü",
|
||||
"previous_entry" : "Önceki ileti",
|
||||
"next_entry" : "Sonraki ileti",
|
||||
"refresh" : "Yenile",
|
||||
"refresh_all" : "Force refresh all my feeds ",
|
||||
"sort_by_asc_desc" : "Tarihe göre sırala artan/azalan",
|
||||
"titles_only" : "Sadece başlıklar",
|
||||
"expanded_view" : "Genişletilmiş görünüm",
|
||||
"mark_all_as_read" : "Tümünü okundu işaretle",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "Bir günden eski yazılar",
|
||||
"mark_all_older_week" : "Bir haftadan eski yazılar",
|
||||
"mark_all_older_two_weeks" : "İki haftadan eski yazılar",
|
||||
"settings" : "Ayarlar",
|
||||
"profile" : "Profil",
|
||||
"admin" : "Yönetim",
|
||||
"about" : "Hakkında",
|
||||
"logout" : "Çıkış",
|
||||
"donate" : "Bağış"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "from ",
|
||||
"entry_author" : "by ",
|
||||
"error_while_loading_feed" : "Bu aboneliği çekerken hata oluştu.",
|
||||
"keep_unread" : "Okunmadı olarak sakla",
|
||||
"no_unread_items" : "okunmamış ileti yok.",
|
||||
"mark_up_to_here" : "Mark as read up to here ",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "Bir abonelik yazın...",
|
||||
"help" : "Return tuşunu seçmek için, yön tüşlarını ise gezinmek için kullanın.",
|
||||
"result_prefix" : "Abonelikleriniz:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "Genel",
|
||||
"language" : "Dil",
|
||||
"language_contribute" : "Çeviri katkısında bulunun",
|
||||
"show_unread" : "Okunmamış öğesi bulunan yayın ve kategorileri listele",
|
||||
"social_buttons" : "Sosyal paylaşım butonlarını göster",
|
||||
"scroll_marks" : "Genişletilmiş görünümde götüntülenen iletileri okunmuş işaretle"
|
||||
},
|
||||
"appearance" : "Görünüm",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "Tema",
|
||||
"submit_your_theme" : "Tema gönder",
|
||||
"custom_css" : "Kişiselleştirilmiş CSS"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "Yayın detayları",
|
||||
"url" : "URL",
|
||||
"website" : "Website ",
|
||||
"name" : "İsim",
|
||||
"category" : "Kategori",
|
||||
"position" : "Pozisyon",
|
||||
"last_refresh" : "Son yenileme",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "Sonraki yenileme",
|
||||
"queued_for_refresh" : "Yenilenmek üzere kuyrukta",
|
||||
"feed_url" : "Yayın URL'si",
|
||||
"generate_api_key_first" : "Öncelikle profilinizden bir API anahtarı oluşturun.",
|
||||
"unsubscribe" : "Aboneliği iptal et",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "Kategori detayları",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "Üst kategori"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "Kullanıcı adı",
|
||||
"email" : "E-posta",
|
||||
"change_password" : "Şifre değiştir",
|
||||
"confirm_password" : "Şifreyi doğrula",
|
||||
"minimum_6_chars" : "En az 6 karakter",
|
||||
"passwords_do_not_match" : "Şifreler uyuşmuyor",
|
||||
"api_key" : "API anahtarı",
|
||||
"api_key_not_generated" : "Henüz oluşturulmadı",
|
||||
"generate_new_api_key" : "Yeni bir API anahtarı oluştur",
|
||||
"generate_new_api_key_info" : "Şifre değiştirmek API anahtarının da değiştirilmesine neden olcak.",
|
||||
"opml_export" : "OPML dışa aktar",
|
||||
"delete_account" : "Hesabı sil",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "REST API",
|
||||
"line1" : "CommaFeed, JAX-RS ve AngularJS üzerine kurulmuştur. Bu sayede, REST API desteği bulunur.",
|
||||
"link_to_documentation" : "Dökümantasyon için tıklayın."
|
||||
},
|
||||
"keyboard_shortcuts" : "Klavye kısayolları",
|
||||
"version" : "CommaFeed version ",
|
||||
"line1_prefix" : "CommaFeed bir açık kaynak projedir. Kaynak dosyaları ",
|
||||
"line1_suffix" : " adresinde yayınlanır.",
|
||||
"line2_prefix" : "Lütfen, bir hata ile karşılaşırsanız bunu ",
|
||||
"line2_suffix" : " projesinde hatalar sayfasından rapor edin.",
|
||||
"line3" : "Eğer bu projeyi beğendiyseniz, lütfen bağış yaparak geliştiriciye bu sayfayı ayakta tutmasında yardımcı olun.",
|
||||
"line4" : "Bitcoin'i tercih edenler için adres ",
|
||||
"goodies" : {
|
||||
"value" : "Extralar",
|
||||
"android_app" : "Android app ",
|
||||
"subscribe_url" : "Abonelik URL'si",
|
||||
"chrome_extension" : "Chrome eklentisi",
|
||||
"firefox_extension" : "Firefox eklentisi",
|
||||
"opera_extension" : "Opera eklentisi",
|
||||
"subscribe_bookmarklet" : "Bookmarklet'a abonelik ekle (tıklayın)",
|
||||
"subscribe_bookmarklet_asc" : "Oldest first ",
|
||||
"subscribe_bookmarklet_desc" : "Newest first ",
|
||||
"next_unread_bookmarklet" : "Bookmarklet'daki en son okunmamış ileti (Sık kullanılan çubuğuna sürükleyin)"
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "Çeviri",
|
||||
"message" : "CommaFeed'i çevirmek için yardımınıza ihtiyacımız var.",
|
||||
"link" : "Nasıl çeviri katkısında bulunabileceğinizi öğrenmek için tıklayın."
|
||||
},
|
||||
"announcements" : "Duyurular",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "Fare orta tuşu",
|
||||
"open_next_entry" : "sonraki öğeyi görüntüle",
|
||||
"open_previous_entry" : "önceki öğeyi görüntüle",
|
||||
"spacebar" : "space/shift+space ",
|
||||
"move_page_down_up" : "moves the page down/up ",
|
||||
"focus_next_entry" : "sonraki öğeyi görüntülemeden işaretle",
|
||||
"focus_previous_entry" : "önceki öğeyi görüntülemeden işaretle",
|
||||
"open_next_feed" : "sonraki aboneliği veya kategoriyi görüntüle",
|
||||
"open_previous_feed" : "önceki aboneliği veya kategoriyi görüntüle",
|
||||
"open_close_current_entry" : "işeretli öğeyi aç/kapat",
|
||||
"open_current_entry_in_new_window" : "görüntülenen öğeyi yeni pencerede görüntüle",
|
||||
"open_current_entry_in_new_window_background" : "görüntülenen öğeyi arkaplanda yeni pencerede görüntüle",
|
||||
"star_unstar" : "görüntülenen öğeye yıldız ekle/kaldır",
|
||||
"mark_current_entry" : "görüntülenen öğeyi okundu/okunmadı işaretle",
|
||||
"mark_all_as_read" : "tümünü okundu işaretle",
|
||||
"open_in_new_tab_mark_as_read" : "öğeyi yeni bir sekmede aç ve okundu işaretle",
|
||||
"fullscreen" : "toggle full screen mode ",
|
||||
"font_size" : "increase/decrease font size of the current entry ",
|
||||
"go_to_all" : "go to the All view ",
|
||||
"go_to_starred" : "go to the Starred view ",
|
||||
"feed_search" : "abonelik ismini yazarak aboneliğe git"
|
||||
}
|
||||
}
|
||||
}
|
||||
180
src/main/app/i18n/zh.js
Normal file
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"global" : {
|
||||
"save" : "保存",
|
||||
"cancel" : "取消",
|
||||
"delete" : "删除",
|
||||
"required" : "必填",
|
||||
"download" : "下载",
|
||||
"link" : "链接",
|
||||
"bookmark" : "书签",
|
||||
"close" : "关闭",
|
||||
"tags" : "Tags "
|
||||
},
|
||||
"tree" : {
|
||||
"subscribe" : "订阅",
|
||||
"import" : "导入",
|
||||
"new_category" : "新的目录",
|
||||
"all" : "所有",
|
||||
"starred" : "加星标的订阅"
|
||||
},
|
||||
"subscribe" : {
|
||||
"feed_url" : "订阅地址",
|
||||
"feed_name" : "订阅名称",
|
||||
"category" : "目录"
|
||||
},
|
||||
"import" : {
|
||||
"google_reader_prefix" : "从现有的 Google Reader 导入 ",
|
||||
"google_reader_suffix" : " 账号。",
|
||||
"google_download" : "可选的, 上传订阅列表文件(.xml)。",
|
||||
"google_download_link" : "从此处下载。",
|
||||
"xml_file" : "OPML 文件"
|
||||
},
|
||||
"new_category" : {
|
||||
"name" : "名称",
|
||||
"parent" : "上一层"
|
||||
},
|
||||
"toolbar" : {
|
||||
"unread" : "未读",
|
||||
"all" : "所有",
|
||||
"previous_entry" : "上一条目",
|
||||
"next_entry" : "下一条目",
|
||||
"refresh" : "刷新",
|
||||
"refresh_all" : "刷新所有订阅",
|
||||
"sort_by_asc_desc" : "按日期升序/降序排序",
|
||||
"titles_only" : "仅显示标题",
|
||||
"expanded_view" : "显示内容",
|
||||
"mark_all_as_read" : "标记所有为已读",
|
||||
"mark_all_older_12_hours" : "Items older than 12 hours ",
|
||||
"mark_all_older_day" : "早于一天的条目",
|
||||
"mark_all_older_week" : "早于一周的条目",
|
||||
"mark_all_older_two_weeks" : "早于两周的条目",
|
||||
"settings" : "设置",
|
||||
"profile" : "配置文件",
|
||||
"admin" : "管理",
|
||||
"about" : "关于",
|
||||
"logout" : "退出",
|
||||
"donate" : "捐赠"
|
||||
},
|
||||
"view" : {
|
||||
"entry_source" : "来自",
|
||||
"entry_author" : "作者",
|
||||
"error_while_loading_feed" : "加载该订阅出现错误",
|
||||
"keep_unread" : "保持未读",
|
||||
"no_unread_items" : "没有未读的条目。",
|
||||
"mark_up_to_here" : "标记为已读至本条目",
|
||||
"search_for" : "searching for: ",
|
||||
"no_search_results" : "No match found for the requested keywords "
|
||||
},
|
||||
"feedsearch" : {
|
||||
"hint" : "输入订阅",
|
||||
"help" : "使用方向键浏览,回车键选择",
|
||||
"result_prefix" : "你的订阅:"
|
||||
},
|
||||
"settings" : {
|
||||
"general" : {
|
||||
"value" : "常规",
|
||||
"language" : "语言",
|
||||
"language_contribute" : "贡献翻译",
|
||||
"show_unread" : "显示未读的订阅和目录条目",
|
||||
"social_buttons" : "显示分享按钮",
|
||||
"scroll_marks" : "在扩展视图中,可滚动条目将其标记为已读"
|
||||
},
|
||||
"appearance" : "外观",
|
||||
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ",
|
||||
"scroll_speed_help" : "set to 0 to disable ",
|
||||
"theme" : "主题",
|
||||
"submit_your_theme" : "提交你的主题",
|
||||
"custom_css" : "自定义 CSS 样式"
|
||||
},
|
||||
"details" : {
|
||||
"feed_details" : "订阅详情",
|
||||
"url" : "地址",
|
||||
"website" : "站点",
|
||||
"name" : "名称",
|
||||
"category" : "目录",
|
||||
"position" : "位置",
|
||||
"last_refresh" : "上一次刷新",
|
||||
"message" : "Last refresh message ",
|
||||
"next_refresh" : "下一次刷新",
|
||||
"queued_for_refresh" : "放入等待刷新的队列",
|
||||
"feed_url" : "订阅地址",
|
||||
"generate_api_key_first" : "在您的配置文件中首先生成一个 API 密钥。",
|
||||
"unsubscribe" : "取消订阅",
|
||||
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ",
|
||||
"delete_category_confirmation" : "Are you sure you want to delete this category? ",
|
||||
"category_details" : "目录详情",
|
||||
"tag_details" : "Tag details ",
|
||||
"parent_category" : "上一层目录"
|
||||
},
|
||||
"profile" : {
|
||||
"user_name" : "用户名",
|
||||
"email" : "邮箱",
|
||||
"change_password" : "修改密码",
|
||||
"confirm_password" : "确认密码",
|
||||
"minimum_6_chars" : "最少为 6 个字母",
|
||||
"passwords_do_not_match" : "密码不匹配",
|
||||
"api_key" : "API 密钥",
|
||||
"api_key_not_generated" : "API 密钥尚未生成",
|
||||
"generate_new_api_key" : "生成一个新的 API 密钥",
|
||||
"generate_new_api_key_info" : "修改密码将会生成一个新的的 API 密钥",
|
||||
"opml_export" : "导出 OPML",
|
||||
"delete_account" : "删除帐号",
|
||||
"delete_account_confirmation" : "Delete your acount? There's no turning back! "
|
||||
},
|
||||
"about" : {
|
||||
"rest_api" : {
|
||||
"value" : "重置 API",
|
||||
"line1" : "CommaFeed 基于 JAX-RS 和 AngularJS。所以,可选择重置 API。",
|
||||
"link_to_documentation" : "文档链接."
|
||||
},
|
||||
"keyboard_shortcuts" : "快捷键",
|
||||
"version" : "CommaFeed 版本",
|
||||
"line1_prefix" : "CommaFeed 是一个开源项目,项目源码保存在 ",
|
||||
"line1_suffix" : "。",
|
||||
"line2_prefix" : "如果遇到问题,请到问题报告页面提交 ",
|
||||
"line2_suffix" : " 项目。",
|
||||
"line3" : "如果你喜欢本项目,请考虑捐赠来支援开发人员工作以及服务器开支。",
|
||||
"line4" : "如果你想要使用 Bitcoin ,这里是我们的 Bitcoin 地址",
|
||||
"goodies" : {
|
||||
"value" : "扩展",
|
||||
"android_app" : "Android 应用",
|
||||
"subscribe_url" : "订阅地址",
|
||||
"chrome_extension" : "Chrome 扩展",
|
||||
"firefox_extension" : "Firefox 扩展",
|
||||
"opera_extension" : "Opera 扩展",
|
||||
"subscribe_bookmarklet" : "添加一个订阅书签 (点击这) ",
|
||||
"subscribe_bookmarklet_asc" : "旧条目优先",
|
||||
"subscribe_bookmarklet_desc" : "新条目优先",
|
||||
"next_unread_bookmarklet" : "最新未读文章书签 (拖动到书签栏上) "
|
||||
},
|
||||
"translation" : {
|
||||
"value" : "翻译",
|
||||
"message" : "我们需要您来帮助翻译 CommaFeed。",
|
||||
"link" : "查看如何贡献翻译。"
|
||||
},
|
||||
"announcements" : "声明",
|
||||
"shortcuts" : {
|
||||
"mouse_middleclick" : "鼠标中键点击",
|
||||
"open_next_entry" : "打开下一个条目",
|
||||
"open_previous_entry" : "打开上一个条目",
|
||||
"spacebar" : "空格/shift+空格",
|
||||
"move_page_down_up" : "将页面向下/上移动",
|
||||
"focus_next_entry" : "移动到下一个条目但不打开",
|
||||
"focus_previous_entry" : "移动到上一个条目但不打开",
|
||||
"open_next_feed" : "打开下一个订阅或目录",
|
||||
"open_previous_feed" : "打开上一个订阅或目录",
|
||||
"open_close_current_entry" : "打开/关闭当前条目",
|
||||
"open_current_entry_in_new_window" : "在新窗口中打开当前条目",
|
||||
"open_current_entry_in_new_window_background" : "在后台新窗口中打开当前条目",
|
||||
"star_unstar" : "该条目加注/取消星标",
|
||||
"mark_current_entry" : "标记当前条目为已读/未读",
|
||||
"mark_all_as_read" : "标记所有条目为已读",
|
||||
"open_in_new_tab_mark_as_read" : "在新的窗口中打开条目并标记为已读",
|
||||
"fullscreen" : "全屏模式",
|
||||
"font_size" : "增大/缩小本条目字体",
|
||||
"go_to_all" : "跳转到‘全部’页面",
|
||||
"go_to_starred" : "跳转到‘加星标’页面",
|
||||
"feed_search" : "输入订阅名称来导航至相应订阅"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 238 B |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
BIN
src/main/app/images/preview.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
79
src/main/app/index.html
Normal file
@@ -0,0 +1,79 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CommaFeed</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
||||
<link rel="apple-touch-icon" href="app-icon-57.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="app-icon-72.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="app-icon-114.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="app-icon-144.png" />
|
||||
<link rel="icon" sizes="32x32" href="app-icon-32.png" />
|
||||
<link rel="icon" sizes="64x64" href="app-icon-64.png" />
|
||||
<link rel="icon" sizes="128x128" href="app-icon-128.png" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
|
||||
<meta name="application-name" content="CommaFeed" />
|
||||
<meta name="msapplication-navbutton-color" content="#F88A14" />
|
||||
<meta name="msapplication-starturl" content="/" />
|
||||
<meta name="msapplication-square70x70logo" content="metro-icon-70.png" />
|
||||
<meta name="msapplication-square150x150logo" content="metro-icon-150.png" />
|
||||
<link rel="fluid-icon" href="app-icon-512.png" title="CommaFeed" />
|
||||
<link rel="logo" type="image/svg" href="app-icon.svg" />
|
||||
|
||||
<!-- build:css css/app.css -->
|
||||
<link rel="stylesheet" href="lib/bootstrap/dist/css/bootstrap.css" />
|
||||
<link rel="stylesheet" href="lib/font-awesome/css/font-awesome.css" />
|
||||
<link rel="stylesheet" href="lib/select2/select2.css" />
|
||||
<link rel="stylesheet" href="lib/ng-grid/ng-grid.css" />
|
||||
<link rel="stylesheet" href="lib/jquery-ui/themes/smoothness/jquery-ui.css" />
|
||||
<link rel="stylesheet" href="lib/angular-loading-bar/build/loading-bar.css" />
|
||||
|
||||
<link rel="stylesheet" href="css/app.css" />
|
||||
<!-- endbuild -->
|
||||
<link rel="stylesheet" href="custom_css.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div ng-app="commafeed" id="main" class="main">
|
||||
<div ui-view></div>
|
||||
</div>
|
||||
|
||||
<!-- build:js js/app.js -->
|
||||
<script type="text/javascript" src="lib/lodash/dist/lodash.js"></script>
|
||||
<script type="text/javascript" src="lib/jquery/dist/jquery.js"></script>
|
||||
<script type="text/javascript" src="lib/jquery-ui/jquery-ui.js"></script>
|
||||
<script type="text/javascript" src="lib/jquery-mousewheel/jquery.mousewheel.js"></script>
|
||||
<script type="text/javascript" src="lib/bootstrap/dist/js/bootstrap.js"></script>
|
||||
<script type="text/javascript" src="lib/angular/angular.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-route/angular-route.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-resource/angular-resource.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-sanitize/angular-sanitize.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-touch/angular-touch.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-animate/angular-animate.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-bootstrap/ui-bootstrap-tpls.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-loading-bar/build/loading-bar.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-translate/angular-translate.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script>
|
||||
|
||||
<script type="text/javascript" src="lib/ngInfiniteScroll/build/ng-infinite-scroll.js"></script>
|
||||
<script type="text/javascript" src="lib/ng-grid/build/ng-grid.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-ui-router/release/angular-ui-router.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-ui-utils/ui-utils.js"></script>
|
||||
<script type="text/javascript" src="lib/angular-ui-select2/src/select2.js"></script>
|
||||
<script type="text/javascript" src="lib/select2/select2.js"></script>
|
||||
<script type="text/javascript" src="lib/mousetrap/mousetrap.js"></script>
|
||||
<script type="text/javascript" src="lib/momentjs/min/moment-with-langs.js"></script>
|
||||
<script type="text/javascript" src="lib/device.js/lib/device.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/controllers.js"></script>
|
||||
<script type="text/javascript" src="js/directives.js"></script>
|
||||
<script type="text/javascript" src="js/filters.js"></script>
|
||||
<script type="text/javascript" src="js/main.js"></script>
|
||||
<script type="text/javascript" src="js/services.js"></script>
|
||||
<script type="text/javascript" src="js/i18n.js"></script>
|
||||
|
||||
<script type="text/javascript" src="js/templates.js"></script>
|
||||
<!-- endbuild -->
|
||||
<script type="text/javascript" src="analytics.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -30,36 +30,16 @@ module.run(['$rootScope', function($rootScope) {
|
||||
});
|
||||
}]);
|
||||
|
||||
module.controller('SubscribeCtrl', ['$scope', 'FeedService', 'CategoryService', 'MobileService',
|
||||
function($scope, FeedService, CategoryService, MobileService) {
|
||||
module.controller('SubscribeCtrl', ['$scope', '$location', 'FeedService', 'CategoryService', 'MobileService',
|
||||
function($scope, $location, FeedService, CategoryService, MobileService) {
|
||||
|
||||
$scope.opts = {
|
||||
backdropFade : true,
|
||||
dialogFade : true
|
||||
$scope.sub = {
|
||||
categoryId : 'all'
|
||||
};
|
||||
|
||||
$scope.isOpen = false;
|
||||
$scope.isOpenImport = false;
|
||||
$scope.sub = {};
|
||||
|
||||
$scope.CategoryService = CategoryService;
|
||||
$scope.MobileService = MobileService;
|
||||
|
||||
$scope.search = function() {
|
||||
$scope.$emit('emitFeedSearch');
|
||||
};
|
||||
|
||||
$scope.open = function() {
|
||||
$scope.sub = {
|
||||
categoryId : $scope.sub.categoryId || 'all'
|
||||
};
|
||||
$scope.isOpen = true;
|
||||
};
|
||||
|
||||
$scope.close = function() {
|
||||
$scope.isOpen = false;
|
||||
};
|
||||
|
||||
// 'ok', 'loading' or 'failed'
|
||||
$scope.state = 'ok';
|
||||
$scope.urlChanged = function() {
|
||||
@@ -72,9 +52,11 @@ module.controller('SubscribeCtrl', ['$scope', 'FeedService', 'CategoryService',
|
||||
$scope.state = 'ok';
|
||||
$scope.sub.title = data.title;
|
||||
$scope.sub.url = data.url;
|
||||
$scope.stacktrace = null;
|
||||
}, function(data) {
|
||||
$scope.state = 'failed';
|
||||
$scope.sub.title = 'Loading failed. Invalid feed?';
|
||||
$scope.stacktrace = data.data;
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -88,59 +70,97 @@ module.controller('SubscribeCtrl', ['$scope', 'FeedService', 'CategoryService',
|
||||
}
|
||||
FeedService.subscribe($scope.sub, function() {
|
||||
CategoryService.init();
|
||||
$scope.close();
|
||||
$location.path('/');
|
||||
}, function(data) {
|
||||
$scope.state = 'failed';
|
||||
$scope.sub.title = 'ERROR: ' + data.data;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.openImport = function() {
|
||||
$scope.isOpenImport = true;
|
||||
$scope.back = function() {
|
||||
$location.path('/');
|
||||
};
|
||||
}]);
|
||||
|
||||
$scope.closeImport = function() {
|
||||
$scope.isOpenImport = false;
|
||||
};
|
||||
module.controller('NewCategoryCtrl', ['$scope', '$location', 'FeedService', 'CategoryService', 'MobileService',
|
||||
function($scope, $location, FeedService, CategoryService, MobileService) {
|
||||
|
||||
$scope.cat = {};
|
||||
$scope.CategoryService = CategoryService;
|
||||
$scope.MobileService = MobileService;
|
||||
|
||||
$scope.openCategory = function() {
|
||||
$scope.isOpenCategory = true;
|
||||
$scope.cat = {
|
||||
parentId : 'all'
|
||||
};
|
||||
};
|
||||
|
||||
$scope.closeCategory = function() {
|
||||
$scope.isOpenCategory = false;
|
||||
$scope.cat = {
|
||||
parentId : 'all'
|
||||
};
|
||||
|
||||
$scope.saveCategory = function() {
|
||||
CategoryService.add($scope.cat, function() {
|
||||
CategoryService.init();
|
||||
});
|
||||
$scope.closeCategory();
|
||||
$location.path('/');
|
||||
};
|
||||
|
||||
$scope.back = function() {
|
||||
$location.path('/');
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('CategoryTreeCtrl', ['$scope', '$timeout', '$stateParams', '$window', '$location', '$state', '$route', 'CategoryService',
|
||||
module.controller('ImportCtrl', ['$scope', '$location', 'FeedService', 'CategoryService', 'MobileService',
|
||||
function($scope, $location, FeedService, CategoryService, MobileService) {
|
||||
|
||||
$scope.back = function() {
|
||||
$location.path('/');
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('CategoryTreeCtrl', [
|
||||
'$scope',
|
||||
'$timeout',
|
||||
'$stateParams',
|
||||
'$window',
|
||||
'$location',
|
||||
'$state',
|
||||
'$route',
|
||||
'CategoryService',
|
||||
'AnalyticsService',
|
||||
function($scope, $timeout, $stateParams, $window, $location, $state, $route, CategoryService, AnalyticsService) {
|
||||
'EntryService',
|
||||
'MobileService',
|
||||
function($scope, $timeout, $stateParams, $window, $location, $state, $route, CategoryService, AnalyticsService, EntryService,
|
||||
MobileService) {
|
||||
|
||||
$scope.selectedType = $stateParams._type;
|
||||
$scope.selectedId = $stateParams._id;
|
||||
|
||||
$scope.EntryService = EntryService;
|
||||
$scope.MobileService = MobileService;
|
||||
|
||||
$scope.starred = {
|
||||
id : 'starred',
|
||||
name : 'Starred'
|
||||
};
|
||||
|
||||
$scope.tags = [];
|
||||
$scope.$watch('EntryService.tags', function(newValue, oldValue) {
|
||||
if (newValue) {
|
||||
$scope.tags = [];
|
||||
_.each(newValue, function(e) {
|
||||
$scope.tags.push({
|
||||
id : e,
|
||||
name : e,
|
||||
isTag : true
|
||||
});
|
||||
});
|
||||
}
|
||||
}, true);
|
||||
|
||||
$scope.$on('$stateChangeSuccess', function() {
|
||||
$scope.selectedType = $stateParams._type;
|
||||
$scope.selectedId = $stateParams._id;
|
||||
});
|
||||
|
||||
$scope.resizeCallback = function(event, ui) {
|
||||
$('.main-content').css('margin-left', $(ui.element).outerWidth(true) + 'px');
|
||||
};
|
||||
|
||||
$timeout(function refreshTree() {
|
||||
AnalyticsService.track();
|
||||
CategoryService.refresh(function() {
|
||||
@@ -176,7 +196,7 @@ module.controller('CategoryTreeCtrl', ['$scope', '$timeout', '$stateParams', '$w
|
||||
$scope.$watch(rootUnreadCount, function(value) {
|
||||
var label = 'CommaFeed';
|
||||
if (value > 0) {
|
||||
label = value + ' - ' + label;
|
||||
label = '(' + value + ') ' + label;
|
||||
}
|
||||
$window.document.title = label;
|
||||
});
|
||||
@@ -201,7 +221,7 @@ module.controller('CategoryTreeCtrl', ['$scope', '$timeout', '$stateParams', '$w
|
||||
|
||||
var getCurrentIndex = function(id, type, flat) {
|
||||
var index = -1;
|
||||
for ( var i = 0; i < flat.length; i++) {
|
||||
for (var i = 0; i < flat.length; i++) {
|
||||
var node = flat[i];
|
||||
if (node[0] == id && node[1] == type) {
|
||||
index = i;
|
||||
@@ -266,8 +286,8 @@ module.controller('CategoryTreeCtrl', ['$scope', '$timeout', '$stateParams', '$w
|
||||
});
|
||||
}]);
|
||||
|
||||
module.controller('FeedDetailsCtrl', ['$scope', '$state', '$stateParams', 'FeedService', 'CategoryService', 'ProfileService', '$dialog',
|
||||
function($scope, $state, $stateParams, FeedService, CategoryService, ProfileService, $dialog) {
|
||||
module.controller('FeedDetailsCtrl', ['$scope', '$state', '$stateParams', 'FeedService', 'CategoryService', 'ProfileService',
|
||||
function($scope, $state, $stateParams, FeedService, CategoryService, ProfileService) {
|
||||
|
||||
$scope.CategoryService = CategoryService;
|
||||
$scope.user = ProfileService.get();
|
||||
@@ -288,30 +308,15 @@ module.controller('FeedDetailsCtrl', ['$scope', '$state', '$stateParams', 'FeedS
|
||||
|
||||
$scope.unsubscribe = function() {
|
||||
var sub = $scope.sub;
|
||||
var title = 'Unsubscribe';
|
||||
var msg = 'Unsubscribe from ' + sub.name + '?';
|
||||
var btns = [{
|
||||
result : 'cancel',
|
||||
label : 'Cancel'
|
||||
}, {
|
||||
result : 'ok',
|
||||
label : 'OK',
|
||||
cssClass : 'btn-primary'
|
||||
}];
|
||||
|
||||
$dialog.messageBox(title, msg, btns).open().then(function(result) {
|
||||
if (result == 'ok') {
|
||||
var data = {
|
||||
id : sub.id
|
||||
};
|
||||
FeedService.unsubscribe(data, function() {
|
||||
CategoryService.init();
|
||||
});
|
||||
$state.transitionTo('feeds.view', {
|
||||
_id : 'all',
|
||||
_type : 'category'
|
||||
});
|
||||
}
|
||||
var data = {
|
||||
id : sub.id
|
||||
};
|
||||
FeedService.unsubscribe(data, function() {
|
||||
CategoryService.init();
|
||||
});
|
||||
$state.transitionTo('feeds.view', {
|
||||
_id : 'all',
|
||||
_type : 'category'
|
||||
});
|
||||
};
|
||||
|
||||
@@ -333,7 +338,7 @@ module.controller('FeedDetailsCtrl', ['$scope', '$state', '$stateParams', 'FeedS
|
||||
}]);
|
||||
|
||||
module.controller('CategoryDetailsCtrl', ['$scope', '$state', '$stateParams', 'FeedService', 'CategoryService', 'ProfileService',
|
||||
'$dialog', function($scope, $state, $stateParams, FeedService, CategoryService, ProfileService, $dialog) {
|
||||
function($scope, $state, $stateParams, FeedService, CategoryService, ProfileService) {
|
||||
$scope.CategoryService = CategoryService;
|
||||
$scope.user = ProfileService.get();
|
||||
|
||||
@@ -355,7 +360,7 @@ module.controller('CategoryDetailsCtrl', ['$scope', '$state', '$stateParams', 'F
|
||||
};
|
||||
return;
|
||||
}
|
||||
for ( var i = 0; i < CategoryService.flatCategories.length; i++) {
|
||||
for (var i = 0; i < CategoryService.flatCategories.length; i++) {
|
||||
var cat = CategoryService.flatCategories[i];
|
||||
if (cat.id == $stateParams._id) {
|
||||
$scope.category = {
|
||||
@@ -380,29 +385,14 @@ module.controller('CategoryDetailsCtrl', ['$scope', '$state', '$stateParams', 'F
|
||||
|
||||
$scope.deleteCategory = function() {
|
||||
var category = $scope.category;
|
||||
var title = 'Delete category';
|
||||
var msg = 'Delete category ' + category.name + ' ?';
|
||||
var btns = [{
|
||||
result : 'cancel',
|
||||
label : 'Cancel'
|
||||
}, {
|
||||
result : 'ok',
|
||||
label : 'OK',
|
||||
cssClass : 'btn-primary'
|
||||
}];
|
||||
|
||||
$dialog.messageBox(title, msg, btns).open().then(function(result) {
|
||||
if (result == 'ok') {
|
||||
CategoryService.remove({
|
||||
id : category.id
|
||||
}, function() {
|
||||
CategoryService.init();
|
||||
});
|
||||
$state.transitionTo('feeds.view', {
|
||||
_id : 'all',
|
||||
_type : 'category'
|
||||
});
|
||||
}
|
||||
CategoryService.remove({
|
||||
id : category.id
|
||||
}, function() {
|
||||
CategoryService.init();
|
||||
});
|
||||
$state.transitionTo('feeds.view', {
|
||||
_id : 'all',
|
||||
_type : 'category'
|
||||
});
|
||||
};
|
||||
|
||||
@@ -423,9 +413,23 @@ module.controller('CategoryDetailsCtrl', ['$scope', '$state', '$stateParams', 'F
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('TagDetailsCtrl', ['$scope', '$state', '$stateParams', 'FeedService', 'CategoryService', 'ProfileService',
|
||||
function($scope, $state, $stateParams, FeedService, CategoryService, ProfileService) {
|
||||
$scope.CategoryService = CategoryService;
|
||||
$scope.user = ProfileService.get();
|
||||
|
||||
$scope.tag = $stateParams._id;
|
||||
|
||||
$scope.back = function() {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_id : $scope.tag,
|
||||
_type : 'tag'
|
||||
});
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('ToolbarCtrl', [
|
||||
'$scope',
|
||||
'$http',
|
||||
'$state',
|
||||
'$stateParams',
|
||||
'$route',
|
||||
@@ -437,24 +441,15 @@ module.controller('ToolbarCtrl', [
|
||||
'ServerService',
|
||||
'FeedService',
|
||||
'MobileService',
|
||||
function($scope, $http, $state, $stateParams, $route, $location, SettingsService, EntryService, ProfileService, AnalyticsService,
|
||||
function($scope, $state, $stateParams, $route, $location, SettingsService, EntryService, ProfileService, AnalyticsService,
|
||||
ServerService, FeedService, MobileService) {
|
||||
|
||||
function totalActiveAjaxRequests() {
|
||||
return ($http.pendingRequests.length + $.active);
|
||||
}
|
||||
|
||||
$scope.keywords = $location.search().q;
|
||||
$scope.session = ProfileService.get();
|
||||
$scope.ServerService = ServerService.get();
|
||||
$scope.settingsService = SettingsService;
|
||||
$scope.MobileService = MobileService;
|
||||
|
||||
$scope.loading = true;
|
||||
$scope.$watch(totalActiveAjaxRequests, function() {
|
||||
$scope.loading = (totalActiveAjaxRequests() !== 0);
|
||||
});
|
||||
|
||||
$scope.$watch('settingsService.settings.readingMode', function(newValue, oldValue) {
|
||||
if (newValue && oldValue && newValue != oldValue) {
|
||||
SettingsService.save();
|
||||
@@ -502,6 +497,10 @@ module.controller('ToolbarCtrl', [
|
||||
markAll();
|
||||
};
|
||||
|
||||
$scope.markAll12Hours = function() {
|
||||
markAll(new Date().getTime() - 43200000);
|
||||
};
|
||||
|
||||
$scope.markAllDay = function() {
|
||||
markAll(new Date().getTime() - 86400000);
|
||||
};
|
||||
@@ -515,9 +514,10 @@ module.controller('ToolbarCtrl', [
|
||||
};
|
||||
|
||||
$scope.search = function() {
|
||||
$location.search('q', $scope.keywords);
|
||||
var keywords = this.keywords;
|
||||
$location.search('q', keywords);
|
||||
$scope.$emit('emitEntrySearch', {
|
||||
keywords : $scope.keywords
|
||||
keywords : keywords
|
||||
});
|
||||
};
|
||||
$scope.showButtons = function() {
|
||||
@@ -570,7 +570,7 @@ module.controller('FeedSearchCtrl', ['$scope', '$state', '$filter', '$timeout',
|
||||
}
|
||||
|
||||
var filtered = $scope.filtered;
|
||||
for ( var i = 0; i < filtered.length; i++) {
|
||||
for (var i = 0; i < filtered.length; i++) {
|
||||
if ($scope.focus.id == filtered[i].id) {
|
||||
index = i;
|
||||
break;
|
||||
@@ -665,15 +665,18 @@ module.controller('FeedListCtrl', [
|
||||
'$route',
|
||||
'$state',
|
||||
'$window',
|
||||
'$timeout',
|
||||
'$location',
|
||||
'EntryService',
|
||||
'SettingsService',
|
||||
'FeedService',
|
||||
'CategoryService',
|
||||
'AnalyticsService',
|
||||
function($scope, $stateParams, $http, $route, $state, $window, $location, EntryService, SettingsService, FeedService,
|
||||
CategoryService, AnalyticsService) {
|
||||
'MobileService',
|
||||
function($scope, $stateParams, $http, $route, $state, $window, $timeout, $location, EntryService, SettingsService, FeedService,
|
||||
CategoryService, AnalyticsService, MobileService) {
|
||||
|
||||
$window = angular.element($window);
|
||||
AnalyticsService.track();
|
||||
|
||||
$scope.keywords = $location.search().q;
|
||||
@@ -686,9 +689,11 @@ module.controller('FeedListCtrl', [
|
||||
$scope.errorCount = 0;
|
||||
$scope.timestamp = 0;
|
||||
$scope.entries = [];
|
||||
$scope.ignored_read_status = false;
|
||||
$scope.font_size = 0;
|
||||
|
||||
$scope.settingsService = SettingsService;
|
||||
$scope.MobileService = MobileService;
|
||||
$scope.$watch('settingsService.settings.readingMode', function(newValue, oldValue) {
|
||||
if (newValue && oldValue && newValue != oldValue) {
|
||||
$scope.$emit('emitReload');
|
||||
@@ -700,6 +705,17 @@ module.controller('FeedListCtrl', [
|
||||
}
|
||||
});
|
||||
|
||||
$scope.$watch('settingsService.settings.readingOrder', function(newValue, oldValue) {
|
||||
if (newValue && oldValue && newValue != oldValue) {
|
||||
$scope.$emit('emitReload');
|
||||
}
|
||||
});
|
||||
$scope.$watch('settingsService.settings.theme', function(newValue, oldValue) {
|
||||
if (newValue) {
|
||||
angular.element('html').attr('id', 'theme-' + newValue);
|
||||
}
|
||||
});
|
||||
|
||||
$scope.limit = SettingsService.settings.viewMode == 'title' ? 10 : 5;
|
||||
$scope.busy = false;
|
||||
$scope.hasMore = true;
|
||||
@@ -712,7 +728,9 @@ module.controller('FeedListCtrl', [
|
||||
$scope.busy = true;
|
||||
|
||||
var limit = $scope.limit;
|
||||
var offset = SettingsService.settings.readingMode == 'all' ? $scope.entries.length : _.where($scope.entries, {
|
||||
|
||||
var read_shown = SettingsService.settings.readingMode === 'all' || $scope.ignored_read_status;
|
||||
var offset = read_shown ? $scope.entries.length : _.where($scope.entries, {
|
||||
read : false
|
||||
}).length;
|
||||
if ($scope.entries.length === 0) {
|
||||
@@ -727,10 +745,7 @@ module.controller('FeedListCtrl', [
|
||||
}
|
||||
|
||||
var callback = function(data) {
|
||||
if (data.offset === 0) {
|
||||
$scope.entries = [];
|
||||
}
|
||||
for ( var i = 0; i < data.entries.length; i++) {
|
||||
for (var i = 0; i < data.entries.length; i++) {
|
||||
var entry = data.entries[i];
|
||||
if (!_.some($scope.entries, {
|
||||
id : entry.id
|
||||
@@ -745,19 +760,102 @@ module.controller('FeedListCtrl', [
|
||||
$scope.busy = false;
|
||||
$scope.hasMore = data.hasMore;
|
||||
$scope.feedLink = data.feedLink;
|
||||
$scope.ignored_read_status = data.ignoredReadStatus;
|
||||
};
|
||||
|
||||
var service = $scope.selectedType == 'feed' ? FeedService : CategoryService;
|
||||
service.entries({
|
||||
var data = {
|
||||
id : $scope.selectedId,
|
||||
readType : $scope.keywords ? 'all' : $scope.settingsService.settings.readingMode,
|
||||
order : $scope.settingsService.settings.readingOrder,
|
||||
offset : offset,
|
||||
limit : limit,
|
||||
keywords : $scope.keywords
|
||||
}, callback);
|
||||
};
|
||||
if ($scope.selectedType == 'feed') {
|
||||
FeedService.entries(data, callback);
|
||||
} else if ($scope.selectedType == 'category') {
|
||||
CategoryService.entries(data, callback);
|
||||
} else if ($scope.selectedType == 'tag') {
|
||||
data.tag = data.id;
|
||||
data.id = 'all';
|
||||
CategoryService.entries(data, callback);
|
||||
}
|
||||
};
|
||||
|
||||
var watch_scrolling = true;
|
||||
var watch_current = true;
|
||||
|
||||
$scope.$watch('current', function(newValue, oldValue) {
|
||||
if (!watch_current) {
|
||||
return;
|
||||
}
|
||||
if (newValue && newValue !== oldValue) {
|
||||
var force = $scope.navigationMode == 'keyboard';
|
||||
|
||||
// timeout here to execute after dom update
|
||||
$timeout(function() {
|
||||
var docTop = $(window).scrollTop();
|
||||
var docBottom = docTop + $(window).height();
|
||||
|
||||
var elem = $('#entry_' + newValue.id);
|
||||
var elemTop = elem.offset().top;
|
||||
var elemBottom = elemTop + elem.height();
|
||||
|
||||
if (!force && (elemTop > docTop) && (elemBottom < docBottom)) {
|
||||
// element is entirely visible
|
||||
return;
|
||||
} else {
|
||||
var scrollTop = elemTop - $('#toolbar').outerHeight();
|
||||
var speed = SettingsService.settings.scrollSpeed;
|
||||
watch_scrolling = false;
|
||||
$('html, body').animate({
|
||||
scrollTop : scrollTop
|
||||
}, speed, 'swing', function() {
|
||||
watch_scrolling = true;
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var scrollHandler = function() {
|
||||
if (!watch_scrolling || _.size($scope.entries) === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$scope.navigationMode = 'scroll';
|
||||
if (SettingsService.settings.viewMode == 'expanded') {
|
||||
var w = $(window);
|
||||
var docTop = w.scrollTop();
|
||||
|
||||
var current = null;
|
||||
for (var i = 0; i < $scope.entries.length; i++) {
|
||||
var entry = $scope.entries[i];
|
||||
var e = $('#entry_' + entry.id);
|
||||
if (e.offset().top + e.height() > docTop + $('#toolbar').outerHeight()) {
|
||||
current = entry;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var previous = $scope.current;
|
||||
$scope.current = current;
|
||||
if (previous != current) {
|
||||
if (SettingsService.settings.scrollMarks) {
|
||||
$scope.mark($scope.current, true);
|
||||
}
|
||||
watch_current = false;
|
||||
$scope.$apply();
|
||||
watch_current = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
var scrollListener = _.throttle(scrollHandler, 200);
|
||||
$window.on('scroll', scrollListener);
|
||||
$scope.$on('$destroy', function() {
|
||||
return $window.off('scroll', scrollListener);
|
||||
});
|
||||
|
||||
$scope.goToFeed = function(id) {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_type : 'feed',
|
||||
@@ -773,7 +871,6 @@ module.controller('FeedListCtrl', [
|
||||
});
|
||||
EntryService.mark({
|
||||
id : entry.id,
|
||||
feedId : entry.feedId,
|
||||
read : read
|
||||
});
|
||||
}
|
||||
@@ -794,12 +891,11 @@ module.controller('FeedListCtrl', [
|
||||
|
||||
$scope.markUpTo = function(entry) {
|
||||
var entries = [];
|
||||
for ( var i = 0; i < $scope.entries.length; i++) {
|
||||
for (var i = 0; i < $scope.entries.length; i++) {
|
||||
var e = $scope.entries[i];
|
||||
if (!e.read) {
|
||||
entries.push({
|
||||
id : e.id,
|
||||
feedId : e.feedId,
|
||||
read : true
|
||||
});
|
||||
e.read = true;
|
||||
@@ -833,7 +929,7 @@ module.controller('FeedListCtrl', [
|
||||
var getCurrentIndex = function() {
|
||||
var index = -1;
|
||||
if ($scope.current) {
|
||||
for ( var i = 0; i < $scope.entries.length; i++) {
|
||||
for (var i = 0; i < $scope.entries.length; i++) {
|
||||
if ($scope.current == $scope.entries[i]) {
|
||||
index = i;
|
||||
break;
|
||||
@@ -955,16 +1051,6 @@ module.controller('FeedListCtrl', [
|
||||
}
|
||||
};
|
||||
|
||||
$scope.onScroll = function(entry) {
|
||||
$scope.navigationMode = 'scroll';
|
||||
if (SettingsService.settings.viewMode == 'expanded') {
|
||||
$scope.current = entry;
|
||||
if (SettingsService.settings.scrollMarks) {
|
||||
$scope.mark(entry, true);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Mousetrap.bind('j', function(e) {
|
||||
$scope.$apply(function() {
|
||||
$scope.navigationMode = 'keyboard';
|
||||
@@ -1132,6 +1218,7 @@ module.controller('FeedListCtrl', [
|
||||
|
||||
Mousetrap.bind('f', function(e) {
|
||||
$('body').toggleClass('full-screen');
|
||||
$('.main-content').css('margin-left', '');
|
||||
return false;
|
||||
});
|
||||
|
||||
@@ -1195,6 +1282,30 @@ module.controller('ManageUsersCtrl', ['$scope', '$state', '$location', 'AdminUse
|
||||
multiSelect : false,
|
||||
showColumnMenu : true,
|
||||
showFilter : true,
|
||||
columnDefs : [{
|
||||
field : 'id',
|
||||
displayName : 'ID'
|
||||
}, {
|
||||
field : 'name',
|
||||
displayName : 'Name'
|
||||
}, {
|
||||
field : 'email',
|
||||
cellClass : 'E-Mail'
|
||||
}, {
|
||||
field : 'created',
|
||||
cellClass : 'Created',
|
||||
cellFilter : 'entryDate'
|
||||
}, {
|
||||
field : 'lastLogin',
|
||||
cellClass : 'Last login',
|
||||
cellFilter : 'entryDate'
|
||||
}, {
|
||||
field : 'admin',
|
||||
cellClass : 'Admin'
|
||||
}, {
|
||||
field : 'enabled',
|
||||
cellClass : 'Enabled'
|
||||
}],
|
||||
|
||||
afterSelectionChange : function(item) {
|
||||
$state.transitionTo('admin.useredit', {
|
||||
@@ -1211,8 +1322,8 @@ module.controller('ManageUsersCtrl', ['$scope', '$state', '$location', 'AdminUse
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('ManageUserCtrl', ['$scope', '$state', '$stateParams', '$dialog', 'AdminUsersService',
|
||||
function($scope, $state, $stateParams, $dialog, AdminUsersService) {
|
||||
module.controller('ManageUserCtrl', ['$scope', '$state', '$stateParams', 'AdminUsersService',
|
||||
function($scope, $state, $stateParams, AdminUsersService) {
|
||||
$scope.user = $stateParams._id ? AdminUsersService.get({
|
||||
id : $stateParams._id
|
||||
}) : {
|
||||
@@ -1239,84 +1350,22 @@ module.controller('ManageUserCtrl', ['$scope', '$state', '$stateParams', '$dialo
|
||||
}, alertFunction);
|
||||
};
|
||||
$scope.remove = function() {
|
||||
var title = 'Delete user';
|
||||
var msg = 'Delete user ' + $scope.user.name + ' ?';
|
||||
var btns = [{
|
||||
result : 'cancel',
|
||||
label : 'Cancel'
|
||||
}, {
|
||||
result : 'ok',
|
||||
label : 'OK',
|
||||
cssClass : 'btn-primary'
|
||||
}];
|
||||
|
||||
$dialog.messageBox(title, msg, btns).open().then(function(result) {
|
||||
if (result == 'ok') {
|
||||
AdminUsersService.remove({
|
||||
id : $scope.user.id
|
||||
}, function() {
|
||||
$state.transitionTo('admin.userlist');
|
||||
}, alertFunction);
|
||||
}
|
||||
});
|
||||
AdminUsersService.remove({
|
||||
id : $scope.user.id
|
||||
}, function() {
|
||||
$state.transitionTo('admin.userlist');
|
||||
}, alertFunction);
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('ManageDuplicateFeedsCtrl', ['$scope', 'AdminCleanupService', function($scope, AdminCleanupService) {
|
||||
|
||||
$scope.limit = 10;
|
||||
$scope.page = 0;
|
||||
$scope.minCount = 1;
|
||||
$scope.mode = 'NORMALIZED_URL';
|
||||
$scope.mergeData = {};
|
||||
$scope.refreshData = function() {
|
||||
AdminCleanupService.findDuplicateFeeds({
|
||||
mode : $scope.mode,
|
||||
limit : $scope.limit,
|
||||
page : $scope.page,
|
||||
minCount : $scope.minCount
|
||||
}, function(data) {
|
||||
$scope.counts = data;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.autoMerge = function() {
|
||||
var callback = function() {
|
||||
alert('done!');
|
||||
};
|
||||
for ( var i = 0; i < $scope.counts.length; i++) {
|
||||
var count = $scope.counts[i];
|
||||
if (count.autoMerge) {
|
||||
AdminCleanupService.mergeFeeds({
|
||||
intoFeedId : count.feeds[0].id,
|
||||
feedIds : _.pluck(count.feeds, 'id')
|
||||
}, callback);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$scope.focus = function(count) {
|
||||
$scope.current = count;
|
||||
$scope.mergeData.intoFeedId = count.feeds[0].id;
|
||||
$scope.mergeData.feedIds = _.pluck(count.feeds, 'id');
|
||||
};
|
||||
|
||||
$scope.merge = function() {
|
||||
AdminCleanupService.mergeFeeds($scope.mergeData, function() {
|
||||
alert('done!');
|
||||
});
|
||||
};
|
||||
|
||||
}]);
|
||||
|
||||
module.controller('SettingsCtrl', ['$scope', '$location', 'SettingsService', 'AnalyticsService', 'ServerService',
|
||||
function($scope, $location, SettingsService, AnalyticsService, ServerService) {
|
||||
module.controller('SettingsCtrl', ['$scope', '$location', 'SettingsService', 'AnalyticsService', 'LangService',
|
||||
function($scope, $location, SettingsService, AnalyticsService, LangService) {
|
||||
|
||||
AnalyticsService.track();
|
||||
|
||||
$scope.ServerService = ServerService.get();
|
||||
$scope.langs = LangService.langs;
|
||||
|
||||
$scope.themes = ['default', 'ebraminio', 'MRACHINI', 'svetla'];
|
||||
$scope.themes = ['default', 'bootstrap', 'dark', 'ebraminio', 'MRACHINI', 'svetla', 'third'];
|
||||
|
||||
$scope.settingsService = SettingsService;
|
||||
$scope.$watch('settingsService.settings', function(value) {
|
||||
@@ -1336,8 +1385,8 @@ module.controller('SettingsCtrl', ['$scope', '$location', 'SettingsService', 'An
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('ProfileCtrl', ['$scope', '$location', '$dialog', 'ProfileService', 'AnalyticsService',
|
||||
function($scope, $location, $dialog, ProfileService, AnalyticsService) {
|
||||
module.controller('ProfileCtrl', ['$scope', '$location', 'ProfileService', 'AnalyticsService',
|
||||
function($scope, $location, ProfileService, AnalyticsService) {
|
||||
|
||||
AnalyticsService.track();
|
||||
|
||||
@@ -1361,23 +1410,8 @@ module.controller('ProfileCtrl', ['$scope', '$location', '$dialog', 'ProfileServ
|
||||
});
|
||||
};
|
||||
$scope.deleteAccount = function() {
|
||||
var title = 'Delete account';
|
||||
var msg = 'Delete your acount? There\'s no turning back!';
|
||||
var btns = [{
|
||||
result : 'cancel',
|
||||
label : 'Cancel'
|
||||
}, {
|
||||
result : 'ok',
|
||||
label : 'OK',
|
||||
cssClass : 'btn-primary'
|
||||
}];
|
||||
|
||||
$dialog.messageBox(title, msg, btns).open().then(function(result) {
|
||||
if (result == 'ok') {
|
||||
ProfileService.deleteAccount({});
|
||||
window.location.href = 'logout';
|
||||
}
|
||||
});
|
||||
ProfileService.deleteAccount({});
|
||||
window.location.href = 'logout';
|
||||
};
|
||||
}]);
|
||||
|
||||
@@ -1398,9 +1432,6 @@ module.controller('ManageSettingsCtrl', ['$scope', '$location', '$state', 'Admin
|
||||
$scope.toUsers = function() {
|
||||
$state.transitionTo('admin.userlist');
|
||||
};
|
||||
$scope.toCleanup = function() {
|
||||
$state.transitionTo('admin.duplicate_feeds');
|
||||
};
|
||||
}]);
|
||||
|
||||
module.controller('HelpController', ['$scope', 'CategoryService', 'AnalyticsService', 'ServerService',
|
||||
@@ -1415,11 +1446,82 @@ module.controller('HelpController', ['$scope', 'CategoryService', 'AnalyticsServ
|
||||
|
||||
}]);
|
||||
|
||||
module.controller('FooterController', ['$scope', function($scope) {
|
||||
|
||||
module.controller('FooterController', ['$scope', '$sce', function($scope, $sce) {
|
||||
var baseUrl = window.location.href.substring(0, window.location.href.lastIndexOf('#'));
|
||||
var hostname = window.location.hostname;
|
||||
$scope.subToMeUrl = baseUrl + 'rest/feed/subscribe?url={feed}';
|
||||
$scope.subToMeName = hostname.indexOf('www.commafeed.com') !== -1 ? 'CommaFeed' : 'CommaFeed (' + hostname + ')';
|
||||
var url = baseUrl + 'rest/feed/subscribe?url={feed}';
|
||||
var name = hostname.indexOf('www.commafeed.com') !== -1 ? 'CommaFeed' : 'CommaFeed (' + hostname + ')';
|
||||
var subToMeUrl = 'https://www.subtome.com/register-no-ui.html?name=' + name + '&url=' + url;
|
||||
$scope.subToMeUrl = $sce.trustAsResourceUrl(subToMeUrl);
|
||||
|
||||
}]);
|
||||
|
||||
module.controller('MetricsCtrl', ['$scope', 'AdminMetricsService', function($scope, AdminMetricsService) {
|
||||
$scope.metrics = AdminMetricsService.get();
|
||||
}]);
|
||||
|
||||
module.controller('LoginCtrl', ['$scope', '$location', 'SessionService', 'ServerService', function($scope, $location, SessionService, ServerService) {
|
||||
$scope.model = {};
|
||||
$scope.recovery_model = {};
|
||||
$scope.recovery = false;
|
||||
$scope.recovery_enabled = false;
|
||||
|
||||
ServerService.get(function(data) {
|
||||
$scope.recovery_enabled = data.smtpEnabled;
|
||||
});
|
||||
|
||||
var login = function(model) {
|
||||
var success = function(data) {
|
||||
window.location.href = window.location.href.substring(0, window.location.href.lastIndexOf('#'));
|
||||
};
|
||||
var error = function(data) {
|
||||
$scope.message = data.data;
|
||||
};
|
||||
SessionService.login({
|
||||
name : model.name,
|
||||
password : model.password
|
||||
}, success, error);
|
||||
}
|
||||
$scope.demoLogin = function() {
|
||||
login({
|
||||
name : 'demo',
|
||||
password : 'demo'
|
||||
});
|
||||
};
|
||||
|
||||
$scope.login = function() {
|
||||
login($scope.model);
|
||||
};
|
||||
|
||||
$scope.toggleRecovery = function() {
|
||||
$scope.recovery = !$scope.recovery;
|
||||
};
|
||||
|
||||
var recovery_success = function(data) {
|
||||
$scope.recovery_message = "Email has ben sent. Check your inbox.";
|
||||
};
|
||||
var recovery_error = function(data) {
|
||||
$scope.recovery_message = data.data;
|
||||
};
|
||||
$scope.recover = function() {
|
||||
SessionService.passwordReset({
|
||||
email : $scope.recovery_model.email
|
||||
}, recovery_success, recovery_error);
|
||||
}
|
||||
}]);
|
||||
|
||||
module.controller('RegisterCtrl', ['$scope', '$location', 'SessionService', 'ServerService',
|
||||
function($scope, $location, SessionService, ServerService) {
|
||||
$scope.ServerService = ServerService.get();
|
||||
$scope.model = {};
|
||||
|
||||
$scope.register = function() {
|
||||
var success = function(data) {
|
||||
window.location.href = window.location.href.substring(0, window.location.href.lastIndexOf('#'));
|
||||
};
|
||||
var error = function(data) {
|
||||
$scope.messages = data.data.errors;
|
||||
};
|
||||
SessionService.register($scope.model, success, error);
|
||||
}
|
||||
}]);
|
||||
@@ -15,6 +15,22 @@ module.directive('focus', ['$timeout', function($timeout) {
|
||||
};
|
||||
}]);
|
||||
|
||||
module.directive('confirmClick', [function() {
|
||||
return {
|
||||
priority : -1,
|
||||
restrict : 'A',
|
||||
link : function(scope, element, attrs) {
|
||||
element.bind('click', function(e) {
|
||||
var message = scope.$eval(attrs.confirmClick);
|
||||
if (message && !confirm(message)) {
|
||||
e.stopImmediatePropagation();
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
/**
|
||||
* Open a popup window pointing to the url in the href attribute
|
||||
*/
|
||||
@@ -30,6 +46,41 @@ module.directive('popup', function() {
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* entry tag handling
|
||||
*/
|
||||
module.directive('tags', function() {
|
||||
return {
|
||||
restrict : 'E',
|
||||
scope : {
|
||||
entry : '='
|
||||
},
|
||||
replace : true,
|
||||
templateUrl : 'templates/_tags.html',
|
||||
controller : ['$scope', 'EntryService', function($scope, EntryService) {
|
||||
$scope.select2Options = {
|
||||
'multiple' : true,
|
||||
'simple_tags' : true,
|
||||
'maximumInputLength' : 40,
|
||||
tags : EntryService.tags
|
||||
};
|
||||
|
||||
$scope.$watch('entry.tags', function(newValue, oldValue) {
|
||||
if (oldValue && newValue != oldValue) {
|
||||
var data = {
|
||||
entryId : $scope.entry.id,
|
||||
tags : []
|
||||
};
|
||||
if (newValue) {
|
||||
data.tags = newValue.split(',');
|
||||
}
|
||||
EntryService.tag(data);
|
||||
}
|
||||
}, true);
|
||||
}]
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* Reusable favicon component
|
||||
*/
|
||||
@@ -59,96 +110,6 @@ module.directive('ngBlur', function() {
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* Fired when the top of the element is not visible anymore
|
||||
*/
|
||||
module.directive('onScrollMiddle', function() {
|
||||
return {
|
||||
restrict : 'A',
|
||||
link : function(scope, element, attrs) {
|
||||
|
||||
var w = $(window);
|
||||
var e = $(element);
|
||||
var d = $(document);
|
||||
|
||||
var offset = parseInt(attrs.onScrollMiddleOffset, 10);
|
||||
|
||||
var down = function() {
|
||||
var docTop = w.scrollTop();
|
||||
var elemTop = e.offset().top;
|
||||
var threshold = docTop === 0 ? elemTop - 1 : docTop + offset;
|
||||
return (elemTop > threshold) ? 'below' : 'above';
|
||||
};
|
||||
var up = function() {
|
||||
var docTop = w.scrollTop();
|
||||
var elemTop = e.offset().top;
|
||||
var elemBottom = elemTop + e.height();
|
||||
var threshold = docTop === 0 ? elemBottom - 1 : docTop + offset;
|
||||
return (elemBottom > threshold) ? 'below' : 'above';
|
||||
};
|
||||
|
||||
if (!w.data.scrollInit) {
|
||||
w.data.scrollPosition = d.scrollTop();
|
||||
w.data.scrollDirection = 'down';
|
||||
|
||||
var onScroll = function(e) {
|
||||
var scroll = d.scrollTop();
|
||||
w.data.scrollDirection = (scroll - w.data.scrollPosition > 0) ? 'down' : 'up';
|
||||
w.data.scrollPosition = scroll;
|
||||
scope.$apply();
|
||||
};
|
||||
w.bind('scroll', _.throttle(onScroll, 500));
|
||||
w.data.scrollInit = true;
|
||||
}
|
||||
scope.$watch(down, function downCallback(value, oldValue) {
|
||||
if (value != oldValue && value == 'above')
|
||||
scope.$eval(attrs.onScrollMiddle);
|
||||
});
|
||||
scope.$watch(up, function upCallback(value, oldValue) {
|
||||
if (value != oldValue && value == 'below')
|
||||
scope.$eval(attrs.onScrollMiddle);
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* Scrolls to the element if the value is true and the attribute is not fully
|
||||
* visible, unless the attribute scroll-to-force is true
|
||||
*/
|
||||
module.directive('scrollTo', ['$timeout', function($timeout) {
|
||||
return {
|
||||
restrict : 'A',
|
||||
link : function(scope, element, attrs) {
|
||||
scope.$watch(attrs.scrollTo, function(value) {
|
||||
if (!value)
|
||||
return;
|
||||
var force = scope.$eval(attrs.scrollToForce);
|
||||
|
||||
// timeout here to execute after dom update
|
||||
$timeout(function() {
|
||||
var docTop = $(window).scrollTop();
|
||||
var docBottom = docTop + $(window).height();
|
||||
|
||||
var elemTop = $(element).offset().top;
|
||||
var elemBottom = elemTop + $(element).height();
|
||||
|
||||
if (!force && (elemTop > docTop) && (elemBottom < docBottom)) {
|
||||
// element is entirely visible
|
||||
return;
|
||||
} else {
|
||||
var offset = parseInt(attrs.scrollToOffset, 10);
|
||||
var scrollTop = $(element).offset().top + offset;
|
||||
$('html, body').animate({
|
||||
scrollTop : scrollTop
|
||||
}, 0);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
|
||||
/**
|
||||
* Prevent mousewheel scrolling from propagating to the parent when scrollbar
|
||||
* reaches top or bottom
|
||||
@@ -206,13 +167,14 @@ module.directive('category', [function() {
|
||||
selectedId : '=',
|
||||
showLabel : '=',
|
||||
showChildren : '=',
|
||||
unreadCount : '&'
|
||||
unreadCount : '&',
|
||||
tag : '='
|
||||
},
|
||||
restrict : 'E',
|
||||
replace : true,
|
||||
templateUrl : 'templates/_category.html',
|
||||
controller : ['$scope', '$state', '$dialog', 'FeedService', 'CategoryService', 'SettingsService', 'MobileService',
|
||||
function($scope, $state, $dialog, FeedService, CategoryService, SettingsService, MobileService) {
|
||||
controller : ['$scope', '$state', 'FeedService', 'CategoryService', 'SettingsService', 'MobileService',
|
||||
function($scope, $state, FeedService, CategoryService, SettingsService, MobileService) {
|
||||
$scope.settingsService = SettingsService;
|
||||
|
||||
$scope.getClass = function(level) {
|
||||
@@ -264,13 +226,14 @@ module.directive('category', [function() {
|
||||
}
|
||||
};
|
||||
|
||||
$scope.categoryClicked = function(id) {
|
||||
$scope.categoryClicked = function(id, isTag) {
|
||||
MobileService.toggleLeftMenu();
|
||||
if ($scope.selectedType == 'category' && id == $scope.selectedId) {
|
||||
var type = isTag ? 'tag' : 'category';
|
||||
if ($scope.selectedType == type && id == $scope.selectedId) {
|
||||
$scope.$emit('emitReload');
|
||||
} else {
|
||||
$state.transitionTo('feeds.view', {
|
||||
_type : 'category',
|
||||
_type : type,
|
||||
_id : id
|
||||
});
|
||||
}
|
||||
@@ -282,10 +245,16 @@ module.directive('category', [function() {
|
||||
});
|
||||
};
|
||||
|
||||
$scope.showCategoryDetails = function(category) {
|
||||
$state.transitionTo('feeds.category_details', {
|
||||
_id : category.id
|
||||
});
|
||||
$scope.showCategoryDetails = function(id, isTag) {
|
||||
if (isTag) {
|
||||
$state.transitionTo('feeds.tag_details', {
|
||||
_id : id
|
||||
});
|
||||
} else {
|
||||
$state.transitionTo('feeds.category_details', {
|
||||
_id : id
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.toggleCategory = function(category, event) {
|
||||
@@ -304,46 +273,6 @@ module.directive('category', [function() {
|
||||
};
|
||||
}]);
|
||||
|
||||
/**
|
||||
* Reusable spinner component
|
||||
*/
|
||||
module.directive('spinner', function() {
|
||||
return {
|
||||
scope : {
|
||||
shown : '='
|
||||
},
|
||||
restrict : 'A',
|
||||
link : function($scope, element) {
|
||||
element.addClass('spinner');
|
||||
var opts = {
|
||||
lines : 11, // The number of lines to draw
|
||||
length : 5, // The length of each line
|
||||
width : 3, // The line thickness
|
||||
radius : 8, // The radius of the inner circle
|
||||
corners : 1, // Corner roundness (0..1)
|
||||
rotate : 0, // The rotation offset
|
||||
color : '#000', // #rgb or #rrggbb
|
||||
speed : 1.3, // Rounds per second
|
||||
trail : 60, // Afterglow percentage
|
||||
shadow : false, // Whether to render a shadow
|
||||
hwaccel : true, // Whether to use hardware acceleration
|
||||
zIndex : 2e9, // The z-index (defaults to 2000000000)
|
||||
top : 'auto', // Top position relative to parent in px
|
||||
left : 'auto' // Left position relative to parent in px
|
||||
};
|
||||
var spinner = new Spinner(opts);
|
||||
$scope.$watch('shown', function(shown) {
|
||||
if (shown) {
|
||||
spinner.spin();
|
||||
element.append(spinner.el);
|
||||
} else {
|
||||
spinner.stop();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
module.directive('draggable', function() {
|
||||
return {
|
||||
restrict : 'A',
|
||||
@@ -409,27 +338,24 @@ module.directive('droppable', ['CategoryService', 'FeedService', function(Catego
|
||||
};
|
||||
}]);
|
||||
|
||||
module.filter('highlight', function() {
|
||||
return function(html, keywords) {
|
||||
if (keywords) {
|
||||
var handleKeyword = function(token, html) {
|
||||
var expr = new RegExp(token, 'gi');
|
||||
var container = $('<span>').html(html);
|
||||
var elements = container.find('*').addBack();
|
||||
var textNodes = elements.not('iframe').contents().not(elements);
|
||||
textNodes.each(function() {
|
||||
var replaced = this.nodeValue.replace(expr, '<span class="highlight-search">$&</span>');
|
||||
$('<span>').html(replaced).insertBefore(this);
|
||||
$(this).remove();
|
||||
});
|
||||
return container.html();
|
||||
};
|
||||
module.directive('metricMeter', function() {
|
||||
return {
|
||||
scope : {
|
||||
metric : '=',
|
||||
label : '='
|
||||
},
|
||||
restrict : 'E',
|
||||
templateUrl : 'templates/_metrics.meter.html'
|
||||
};
|
||||
});
|
||||
|
||||
var tokens = keywords.split(' ');
|
||||
for ( var i = 0; i < tokens.length; i++) {
|
||||
html = handleKeyword(tokens[i], html);
|
||||
}
|
||||
}
|
||||
return html;
|
||||
module.directive('metricGauge', function() {
|
||||
return {
|
||||
scope : {
|
||||
metric : '=',
|
||||
label : '='
|
||||
},
|
||||
restrict : 'E',
|
||||
templateUrl : 'templates/_metrics.gauge.html'
|
||||
};
|
||||
});
|
||||
113
src/main/app/js/filters.js
Normal file
@@ -0,0 +1,113 @@
|
||||
var module = angular.module('commafeed.filters', []);
|
||||
|
||||
/**
|
||||
* smart date formatter
|
||||
*/
|
||||
module.filter('entryDate', function() {
|
||||
return function(timestamp, defaultValue) {
|
||||
if (!timestamp) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
var d = moment(timestamp);
|
||||
var now = moment();
|
||||
var formatted;
|
||||
if (Math.abs(d.diff(now)) < 86400000) {
|
||||
formatted = d.fromNow();
|
||||
} else {
|
||||
formatted = d.format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
return formatted;
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* rewrites iframes to use https if commafeed uses https
|
||||
*/
|
||||
module.filter('iframeHttpsRewrite', function() {
|
||||
return function(html) {
|
||||
var result = html;
|
||||
if (location.protocol === 'https:') {
|
||||
var wrapper = $('<div></div>').html(html);
|
||||
$('iframe', wrapper).each(function(i, elem) {
|
||||
var e = $(elem);
|
||||
e.attr('src', e.attr('src').replace(/^http:\/\//i, 'https://'));
|
||||
});
|
||||
result = wrapper.html();
|
||||
}
|
||||
return result;
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* inserts title or alt-text after images, if any
|
||||
*/
|
||||
module.filter('appendImageTitles', function() {
|
||||
return function(html) {
|
||||
var result = html;
|
||||
var wrapper = $('<div></div>').html(html);
|
||||
$('img', wrapper).each(function(i, elem) {
|
||||
var e = $(elem);
|
||||
var title = e.attr('title') || e.attr('alt');
|
||||
if (title) {
|
||||
var text = $('<span style="font-style: italic;"></span>').text(title);
|
||||
e.after(text);
|
||||
}
|
||||
});
|
||||
result = wrapper.html();
|
||||
return result;
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* escapes the url
|
||||
*/
|
||||
module.filter('escape', function() {
|
||||
return encodeURIComponent;
|
||||
});
|
||||
|
||||
/**
|
||||
* returns a trusted html content
|
||||
*/
|
||||
module.filter('trustHtml', ['$sce', function($sce) {
|
||||
return function(val) {
|
||||
return $sce.trustAsHtml(val);
|
||||
};
|
||||
}]);
|
||||
|
||||
/**
|
||||
* returns a trusted url
|
||||
*/
|
||||
module.filter('trustUrl', ['$sce', function($sce) {
|
||||
return function(val) {
|
||||
return $sce.trustAsResourceUrl(val);
|
||||
};
|
||||
}]);
|
||||
|
||||
/**
|
||||
* add the 'highlight-search' class to text matching keywords
|
||||
*/
|
||||
module.filter('highlight', function() {
|
||||
return function(html, keywords) {
|
||||
if (keywords) {
|
||||
var handleKeyword = function(token, html) {
|
||||
var expr = new RegExp(token, 'gi');
|
||||
var container = $('<span>').html(html);
|
||||
var elements = container.find('*').addBack();
|
||||
var textNodes = elements.not('iframe').contents().not(elements);
|
||||
textNodes.each(function() {
|
||||
var replaced = this.nodeValue.replace(expr, '<span class="highlight-search">$&</span>');
|
||||
$('<span>').html(replaced).insertBefore(this);
|
||||
$(this).remove();
|
||||
});
|
||||
return container.html();
|
||||
};
|
||||
|
||||
var tokens = keywords.split(' ');
|
||||
for (var i = 0; i < tokens.length; i++) {
|
||||
html = handleKeyword(tokens[i], html);
|
||||
}
|
||||
}
|
||||
return html;
|
||||
};
|
||||
});
|
||||
34
src/main/app/js/i18n.js
Normal file
@@ -0,0 +1,34 @@
|
||||
var module = angular.module('commafeed.i18n', []);
|
||||
|
||||
module.service('LangService', [function() {
|
||||
this.langs = {
|
||||
'ar': 'العربية',
|
||||
'ca': 'Català',
|
||||
'en': 'English',
|
||||
'es': 'Español',
|
||||
'de': 'Deutsch',
|
||||
'fa': 'فارسی',
|
||||
'fr': 'Français',
|
||||
'gl': 'Galician',
|
||||
'glk': 'گیلکی',
|
||||
'hu': 'Magyar',
|
||||
'ja': '日本語',
|
||||
'ko': '한국어',
|
||||
'nl': 'Nederlands',
|
||||
'nb': 'Norsk (bokmål)',
|
||||
'nn': 'Norsk (nynorsk)',
|
||||
'pt': 'Português',
|
||||
'pl': 'Polski',
|
||||
'ru': 'русский',
|
||||
'fi': 'Suomi',
|
||||
'sv': 'Svenska',
|
||||
'zh': '简体中文',
|
||||
'it': 'Italiano',
|
||||
'tr': 'Türkçe',
|
||||
'cy': 'Cymraeg',
|
||||
'sk': 'Slovenčina',
|
||||
'da': 'Danish',
|
||||
'cs': 'Čeština',
|
||||
'ms': 'Bahasa Malaysian'
|
||||
}
|
||||
}]);
|
||||
@@ -1,11 +1,29 @@
|
||||
var app = angular.module('commafeed', ['ui', 'ui.bootstrap', 'ui.state', 'commafeed.directives', 'commafeed.controllers',
|
||||
'commafeed.services', 'commafeed.filters', 'ngSanitize', 'infinite-scroll', 'ngGrid']);
|
||||
var app = angular.module('commafeed', ['ngRoute', 'ngTouch', 'ngAnimate', 'ui.utils', 'ui.bootstrap', 'ui.router', 'ui.select2',
|
||||
'commafeed.directives', 'commafeed.controllers', 'commafeed.services', 'commafeed.filters', 'commafeed.i18n', 'ngSanitize',
|
||||
'infinite-scroll', 'ngGrid', 'chieffancypants.loadingBar', 'pascalprecht.translate']);
|
||||
|
||||
app.config(['$routeProvider', '$stateProvider', '$urlRouterProvider', '$httpProvider', '$compileProvider',
|
||||
function($routeProvider, $stateProvider, $urlRouterProvider, $httpProvider, $compileProvider) {
|
||||
app.config([
|
||||
'$routeProvider',
|
||||
'$stateProvider',
|
||||
'$urlRouterProvider',
|
||||
'$httpProvider',
|
||||
'$compileProvider',
|
||||
'cfpLoadingBarProvider',
|
||||
'$translateProvider',
|
||||
function($routeProvider, $stateProvider, $urlRouterProvider, $httpProvider, $compileProvider, cfpLoadingBarProvider,
|
||||
$translateProvider) {
|
||||
|
||||
$compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|javascript):/);
|
||||
var interceptor = ['$rootScope', '$q', function(scope, $q) {
|
||||
// $translateProvider.useLocalStorage();
|
||||
$translateProvider.useStaticFilesLoader({
|
||||
prefix : '/i18n/',
|
||||
suffix : '.js'
|
||||
});
|
||||
$translateProvider.preferredLanguage('en');
|
||||
|
||||
cfpLoadingBarProvider.includeSpinner = false;
|
||||
|
||||
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|javascript):/);
|
||||
var interceptor = ['$rootScope', '$q', '$injector', function(scope, $q, $injector) {
|
||||
|
||||
var success = function(response) {
|
||||
return response;
|
||||
@@ -13,11 +31,9 @@ app.config(['$routeProvider', '$stateProvider', '$urlRouterProvider', '$httpProv
|
||||
var error = function(response) {
|
||||
var status = response.status;
|
||||
if (status == 401) {
|
||||
window.location = 'logout';
|
||||
return;
|
||||
} else {
|
||||
return $q.reject(response);
|
||||
$injector.get('$state').transitionTo('welcome');
|
||||
}
|
||||
return $q.reject(response);
|
||||
};
|
||||
|
||||
var promise = function(promise) {
|
||||
@@ -39,6 +55,21 @@ app.config(['$routeProvider', '$stateProvider', '$urlRouterProvider', '$httpProv
|
||||
templateUrl : 'templates/feeds.view.html',
|
||||
controller : 'FeedListCtrl'
|
||||
});
|
||||
$stateProvider.state('feeds.subscribe', {
|
||||
url : '/subscribe',
|
||||
templateUrl : 'templates/feeds.subscribe.html',
|
||||
controller : 'SubscribeCtrl'
|
||||
});
|
||||
$stateProvider.state('feeds.new_category', {
|
||||
url : '/add_category',
|
||||
templateUrl : 'templates/feeds.new_category.html',
|
||||
controller : 'NewCategoryCtrl'
|
||||
});
|
||||
$stateProvider.state('feeds.import', {
|
||||
url : '/import',
|
||||
templateUrl : 'templates/feeds.import.html',
|
||||
controller : 'ImportCtrl'
|
||||
});
|
||||
$stateProvider.state('feeds.search', {
|
||||
url : '/search/:_keywords',
|
||||
templateUrl : 'templates/feeds.view.html',
|
||||
@@ -54,6 +85,11 @@ app.config(['$routeProvider', '$stateProvider', '$urlRouterProvider', '$httpProv
|
||||
templateUrl : 'templates/feeds.category_details.html',
|
||||
controller : 'CategoryDetailsCtrl'
|
||||
});
|
||||
$stateProvider.state('feeds.tag_details', {
|
||||
url : '/details/tag/:_id',
|
||||
templateUrl : 'templates/feeds.tag_details.html',
|
||||
controller : 'TagDetailsCtrl'
|
||||
});
|
||||
$stateProvider.state('feeds.help', {
|
||||
url : '/help',
|
||||
templateUrl : 'templates/feeds.help.html',
|
||||
@@ -90,16 +126,21 @@ app.config(['$routeProvider', '$stateProvider', '$urlRouterProvider', '$httpProv
|
||||
templateUrl : 'templates/admin.useredit.html',
|
||||
controller : 'ManageUserCtrl'
|
||||
});
|
||||
$stateProvider.state('admin.duplicate_feeds', {
|
||||
url : '/feeds/duplicates',
|
||||
templateUrl : 'templates/admin.duplicate_feeds.html',
|
||||
controller : 'ManageDuplicateFeedsCtrl'
|
||||
});
|
||||
$stateProvider.state('admin.settings', {
|
||||
url : '/settings',
|
||||
templateUrl : 'templates/admin.settings.html',
|
||||
controller : 'ManageSettingsCtrl'
|
||||
});
|
||||
$stateProvider.state('admin.metrics', {
|
||||
url : '/metrics',
|
||||
templateUrl : 'templates/admin.metrics.html',
|
||||
controller : 'MetricsCtrl'
|
||||
});
|
||||
|
||||
$stateProvider.state('welcome', {
|
||||
url : '/welcome',
|
||||
templateUrl : 'templates/welcome.html'
|
||||
});
|
||||
|
||||
$urlRouterProvider.when('/', '/feeds/view/category/all');
|
||||
$urlRouterProvider.when('/admin', '/admin/settings');
|
||||
@@ -23,8 +23,7 @@ module.service('MobileService', ['$state', function($state) {
|
||||
this.rightMenu = !this.rightMenu;
|
||||
$('body').toggleClass('right-menu-active');
|
||||
};
|
||||
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
|
||||
this.mobile = width < 979;
|
||||
this.mobile = device.mobile() || device.tablet();
|
||||
}]);
|
||||
|
||||
module.factory('ProfileService', ['$resource', function($resource) {
|
||||
@@ -33,7 +32,15 @@ module.factory('ProfileService', ['$resource', function($resource) {
|
||||
return res;
|
||||
}]);
|
||||
|
||||
module.factory('SettingsService', ['$resource', function($resource) {
|
||||
module.factory('SessionService', ['$resource', function($resource) {
|
||||
var res = {};
|
||||
res.login = $resource('rest/user/login').save;
|
||||
res.register = $resource('rest/user/register').save;
|
||||
res.passwordReset = $resource('rest/user/passwordReset').save;
|
||||
return res;
|
||||
}]);
|
||||
|
||||
module.factory('SettingsService', ['$resource', '$translate', function($resource, $translate) {
|
||||
var res = $resource('rest/user/settings');
|
||||
|
||||
var s = {};
|
||||
@@ -55,6 +62,7 @@ module.factory('SettingsService', ['$resource', function($resource) {
|
||||
lang = 'ms-my';
|
||||
}
|
||||
moment.lang(lang, {});
|
||||
$translate.use(lang);
|
||||
if (callback) {
|
||||
callback(data);
|
||||
}
|
||||
@@ -126,7 +134,7 @@ module.factory('CategoryService', ['$resource', '$http', function($resource, $ht
|
||||
callback(category, parentName);
|
||||
var children = category.children;
|
||||
if (children) {
|
||||
for ( var c = 0; c < children.length; c++) {
|
||||
for (var c = 0; c < children.length; c++) {
|
||||
traverse(callback, children[c], category.name);
|
||||
}
|
||||
}
|
||||
@@ -174,6 +182,7 @@ module.factory('CategoryService', ['$resource', '$http', function($resource, $ht
|
||||
var actions = {
|
||||
get : {
|
||||
method : 'GET',
|
||||
ignoreLoadingBar: true,
|
||||
params : {
|
||||
_method : 'get'
|
||||
}
|
||||
@@ -256,6 +265,7 @@ module.factory('EntryService', ['$resource', '$http', function($resource, $http)
|
||||
},
|
||||
mark : {
|
||||
method : 'POST',
|
||||
ignoreLoadingBar: true,
|
||||
params : {
|
||||
_method : 'mark'
|
||||
}
|
||||
@@ -271,9 +281,29 @@ module.factory('EntryService', ['$resource', '$http', function($resource, $http)
|
||||
params : {
|
||||
_method : 'star'
|
||||
}
|
||||
},
|
||||
tag : {
|
||||
method : 'POST',
|
||||
params : {
|
||||
_method : 'tag'
|
||||
}
|
||||
}
|
||||
};
|
||||
var res = $resource('rest/entry/:_method', {}, actions);
|
||||
res.tags = [];
|
||||
var initTags = function() {
|
||||
$http.get('rest/entry/tags').success(function(data) {
|
||||
res.tags = [];
|
||||
res.tags.push.apply(res.tags, data);
|
||||
});
|
||||
};
|
||||
var oldTag = res.tag;
|
||||
res.tag = function(data) {
|
||||
oldTag(data, function() {
|
||||
initTags();
|
||||
});
|
||||
};
|
||||
initTags();
|
||||
return res;
|
||||
}]);
|
||||
|
||||
@@ -291,23 +321,8 @@ module.factory('AdminSettingsService', ['$resource', function($resource) {
|
||||
return res;
|
||||
}]);
|
||||
|
||||
module.factory('AdminCleanupService', ['$resource', function($resource) {
|
||||
var actions = {
|
||||
findDuplicateFeeds : {
|
||||
method : 'GET',
|
||||
isArray : true,
|
||||
params : {
|
||||
_method : 'findDuplicateFeeds'
|
||||
}
|
||||
},
|
||||
mergeFeeds : {
|
||||
method : 'POST',
|
||||
params : {
|
||||
_method : 'merge'
|
||||
}
|
||||
}
|
||||
};
|
||||
var res = $resource('rest/admin/cleanup/:_method', {}, actions);
|
||||
module.factory('AdminMetricsService', ['$resource', function($resource) {
|
||||
var res = $resource('rest/admin/metrics/');
|
||||
return res;
|
||||
}]);
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -6,10 +6,17 @@
|
||||
@import "components/entry-list";
|
||||
@import "components/subscription-list";
|
||||
@import "components/help";
|
||||
@import "components/loading-bar";
|
||||
|
||||
@import "components/readabilicons";
|
||||
@import "components/zocial";
|
||||
|
||||
@import "mobile/mobile";
|
||||
|
||||
@import "themes/test";
|
||||
@import "themes/bootstrap";
|
||||
@import "themes/ebraminio";
|
||||
@import "themes/MRACHINI";
|
||||
@import "themes/svetla";
|
||||
@import "themes/dark";
|
||||
@import "themes/third";
|
||||
@@ -1,3 +1,8 @@
|
||||
.main-content {
|
||||
margin-left: 250px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.full-screen .main-content {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
@@ -14,6 +19,7 @@
|
||||
|
||||
.entrylist-header h3 {
|
||||
margin: 0;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
.entrylist-header a {
|
||||
@@ -70,7 +76,7 @@
|
||||
|
||||
#feed-accordion .entry-heading-link {
|
||||
color: black;
|
||||
height: 20px;
|
||||
height: 32px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
padding: 6px 0px;
|
||||
@@ -143,7 +149,7 @@
|
||||
}
|
||||
|
||||
.full-screen #feed-accordion .entry-body-content {
|
||||
max-width: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
#feed-accordion .entry-enclosure {
|
||||
@@ -163,6 +169,11 @@
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
#feed-accordion .entry-buttons .keep-unread label {
|
||||
display: inline;
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
#feed-accordion .share-buttons a {
|
||||
color: #333333;
|
||||
padding-left: 5px;
|
||||
@@ -172,6 +183,24 @@
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#feed-accordion .tags-panel {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
#feed-accordion .tags-panel .label{
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.select2-container-multi .select2-choices .select2-search-field input {
|
||||
padding: 2px
|
||||
}
|
||||
|
||||
#feed-accordion .tag-input {
|
||||
margin: 0 0 0 5px;
|
||||
padding: 0;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#feed-accordion .entry-buttons label {
|
||||
margin-bottom: 0px;
|
||||
font-size: 12px;
|
||||
12
src/main/app/sass/components/_loading-bar.scss
Normal file
@@ -0,0 +1,12 @@
|
||||
#loading-bar .bar {
|
||||
background: #2c3e50;
|
||||
}
|
||||
|
||||
#loading-bar .peg {
|
||||
box-shadow: 0 0 10px #2c3e50, 0 0 5px #2c3e50;
|
||||
}
|
||||
|
||||
#loading-bar-spinner .spinner-icon {
|
||||
border-top-color: #2c3e50;
|
||||
border-left-color: #2c3e50;
|
||||
}
|
||||