1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-11-12 21:30:10 +00:00

Compare commits

...

36 Commits

Author SHA1 Message Date
5b319d6612
auth: int for refresh token as well 2021-08-22 15:00:20 +01:00
626d623841
auth: don't store jwt expiry as string
caused the jwt library to class all tokens as invalid, now stored as
int64 and converted into a float64 by the library.
2021-08-22 14:13:44 +01:00
08343298fb
lowercase lang 2021-08-22 14:13:30 +01:00
7a343bbc08
merge lang 2021-08-22 13:54:44 +01:00
2be34ed063
quote jellyfin URL for censoring in logs 2021-08-22 13:54:39 +01:00
XCQi
7e32c8c4f0 translation from Weblate (Chinese (Simplified))
Currently translated at 43.4% (73 of 168 strings)

Translation: jfa-go/Admin Page
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/admin/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
a0871e7c47 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.0% (50 of 51 strings)

Translation: jfa-go/Emails
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/emails/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
f6834ee63d Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (6 of 6 strings)

Translation: jfa-go/Telegram/Matrix/Discord bots
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/chat-bots/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
54b8e30cff Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (9 of 9 strings)

Translation: jfa-go/Password Reset Links
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/password-reset-links/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
504d3e39de Translated using Weblate (Chinese (Simplified))
Currently translated at 95.4% (104 of 109 strings)

Translation: jfa-go/Setup
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/setup/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
4e2dce7f18 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (20 of 20 strings)

Translation: jfa-go/Common Strings
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/common-strings/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
b31506d94e translation from Weblate (Chinese (Simplified))
Currently translated at 100.0% (37 of 37 strings)

Translation: jfa-go/Account Creation Form
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/form/zh_Hans/
2021-08-22 14:45:55 +02:00
XCQi
5961bc6086 add translation from Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
XCQi
b0ffa457df Added translation using Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
XCQi
9e3fa0ea9a Added translation using Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
XCQi
ff69d0ba6d Added translation using Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
XCQi
cf25472746 Added translation using Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
XCQi
5e651d7b08 Added translation using Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
XCQi
bcd1011b68 add translation from Weblate (Chinese (Simplified)) 2021-08-22 14:45:55 +02:00
vaheeD khoshnouD
f8f0715a3b Translated using Weblate (Persian)
Currently translated at 100.0% (9 of 9 strings)

Translation: jfa-go/Password Reset Links
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/password-reset-links/fa/
2021-08-22 14:45:55 +02:00
vaheeD khoshnouD
e27e08bfd7 Translated using Weblate (Persian)
Currently translated at 100.0% (6 of 6 strings)

Translation: jfa-go/Telegram/Matrix/Discord bots
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/chat-bots/fa/
2021-08-22 14:45:55 +02:00
vaheeD khoshnouD
ae4d47af43 Translated using Weblate (Persian)
Currently translated at 100.0% (20 of 20 strings)

Translation: jfa-go/Common Strings
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/common-strings/fa/
2021-08-22 14:45:54 +02:00
vaheeD khoshnouD
b32271e375 translation from Weblate (Persian)
Currently translated at 100.0% (37 of 37 strings)

Translation: jfa-go/Account Creation Form
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/form/fa/
2021-08-22 14:45:54 +02:00
mLgz0rn
753e233e27 translation from Weblate (Danish)
Currently translated at 100.0% (168 of 168 strings)

Translation: jfa-go/Admin Page
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/admin/da/
2021-08-22 14:45:54 +02:00
mLgz0rn
d6669bfa70 Translated using Weblate (Danish)
Currently translated at 100.0% (109 of 109 strings)

Translation: jfa-go/Setup
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/setup/da/
2021-08-22 14:45:54 +02:00
mLgz0rn
94b288671d translation from Weblate (Danish)
Currently translated at 100.0% (37 of 37 strings)

Translation: jfa-go/Account Creation Form
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/form/da/
2021-08-22 14:45:54 +02:00
ClankJake
a444e53a99 translation from Weblate (Portuguese (Brazil))
Currently translated at 100.0% (37 of 37 strings)

Translation: jfa-go/Account Creation Form
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/form/pt_BR/
2021-08-22 14:45:54 +02:00
vaheeD khoshnouD
792846f727 Added translation using Weblate (Persian) 2021-08-22 14:45:54 +02:00
vaheeD khoshnouD
6b9fa7bf8a Added translation using Weblate (Persian) 2021-08-22 14:45:54 +02:00
vaheeD khoshnouD
c4378d19db Added translation using Weblate (Persian) 2021-08-22 14:45:54 +02:00
vaheeD khoshnouD
bdebd97dc0 add translation from Weblate (Persian) 2021-08-22 14:45:54 +02:00
Richard de Boer
cf2bd6c095 Translated using Weblate (Dutch)
Currently translated at 100.0% (9 of 9 strings)

Translation: jfa-go/Password Reset Links
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/password-reset-links/nl/
2021-08-22 14:45:54 +02:00
ClankJake
08f3675f71 translation from Weblate (Portuguese (Brazil))
Currently translated at 100.0% (168 of 168 strings)

Translation: jfa-go/Admin Page
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/admin/pt_BR/
2021-08-22 14:45:54 +02:00
ClankJake
8d53ddcf93 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (105 of 105 strings)

Translation: jfa-go/Setup
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/setup/pt_BR/
2021-08-22 14:45:54 +02:00
Richard de Boer
c20dc24ccf translation from Weblate (Dutch)
Currently translated at 100.0% (168 of 168 strings)

Translation: jfa-go/Admin Page
Translate-URL: https://weblate.jfa-go.com/projects/jfa-go/admin/nl/
2021-08-22 14:45:54 +02:00
Richard de Boer
b60be0db6d Added translation using Weblate (Dutch) 2021-08-22 14:45:54 +02:00
22 changed files with 735 additions and 37 deletions

10
auth.go
View File

@ -4,7 +4,6 @@ import (
"encoding/base64"
"fmt"
"os"
"strconv"
"strings"
"time"
@ -23,17 +22,16 @@ func CreateToken(userId, jfId string) (string, string, error) {
claims := jwt.MapClaims{
"valid": true,
"id": userId,
"exp": strconv.FormatInt(time.Now().Add(time.Minute*20).Unix(), 10),
"exp": time.Now().Add(time.Minute * 20).Unix(),
"jfid": jfId,
"type": "bearer",
}
tk := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
token, err := tk.SignedString([]byte(os.Getenv("JFA_SECRET")))
if err != nil {
return "", "", err
}
claims["exp"] = strconv.FormatInt(time.Now().Add(time.Hour*24).Unix(), 10)
claims["exp"] = time.Now().Add(time.Hour * 24).Unix()
claims["type"] = "refresh"
tk = jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
refresh, err = tk.SignedString([]byte(os.Getenv("JFA_SECRET")))
@ -58,7 +56,7 @@ func (app *appContext) authenticate(gc *gin.Context) {
return
}
claims, ok := token.Claims.(jwt.MapClaims)
expiryUnix, err := strconv.ParseInt(claims["exp"].(string), 10, 64)
expiryUnix := int64(claims["exp"].(float64))
if err != nil {
app.debug.Printf("Auth denied: %s", err)
respond(401, "Unauthorized", gc)
@ -200,7 +198,7 @@ func (app *appContext) getTokenRefresh(gc *gin.Context) {
return
}
claims, ok := token.Claims.(jwt.MapClaims)
expiryUnix, err := strconv.ParseInt(claims["exp"].(string), 10, 64)
expiryUnix := int64(claims["exp"].(float64))
if err != nil {
app.debug.Printf("getTokenRefresh: Invalid token expiry: %s", err)
respond(401, "Invalid token", gc)

5
go.sum
View File

@ -21,6 +21,7 @@ github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtE
github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs=
github.com/bwmarrin/discordgo v0.23.2 h1:BzrtTktixGHIu9Tt7dEE6diysEF9HWnXeHuoJEt2fH4=
github.com/bwmarrin/discordgo v0.23.2/go.mod h1:c1WtWUGN6nREDmzIpyTp/iD3VYt4Fpx+bVyfBG7JE+M=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d h1:U+s90UTSYgptZMwQh2aRr3LuazLJIa+Pg3Kc1ylSYVY=
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@ -65,6 +66,7 @@ github.com/getlantern/ops v0.0.0-20200403153110-8476b16edcd6 h1:QthAQCekS1YOeYWS
github.com/getlantern/ops v0.0.0-20200403153110-8476b16edcd6/go.mod h1:D5ao98qkA6pxftxoqzibIBBrLSUli+kYnJqrgBf9cIA=
github.com/getlantern/systray v1.1.0 h1:U0wCEqseLi2ok1fE6b88gJklzriavPJixZysZPkZd/Y=
github.com/getlantern/systray v1.1.0/go.mod h1:AecygODWIsBquJCJFop8MEQcJbWFfw/1yWbVabNgpCM=
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/gin-contrib/gzip v0.0.1 h1:ezvKOL6jH+jlzdHNE4h9h8q8uMpDQjyl0NN0Jd7jozc=
github.com/gin-contrib/gzip v0.0.1/go.mod h1:fGBJBCdt6qCZuCAOwWuFhBB4OOq9EFqlo5dEaFhhu5w=
@ -255,6 +257,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
@ -315,8 +318,10 @@ github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLY
github.com/ugorji/go/codec v1.1.13/go.mod h1:oNVt3Dq+FO91WNQ/9JnHKQP2QJxTzoN7wCBFCq1OeuU=
github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ=
github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw=
github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw=
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
github.com/urfave/cli/v2 v2.1.1/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ=
github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
github.com/writeas/go-strip-markdown v2.0.1+incompatible h1:IIqxTM5Jr7RzhigcL6FkrCNfXkvbR+Nbu1ls48pXYcw=
github.com/writeas/go-strip-markdown v2.0.1+incompatible/go.mod h1:Rsyu10ZhbEK9pXdk8V6MVnZmTzRG0alMNLMwa0J01fE=

View File

@ -96,11 +96,15 @@
"notifyEvent": "Meddel den:",
"notifyInviteExpiry": "Ved udløb",
"notifyUserCreation": "Ved oprettelse af brugere",
"sendPIN": "Bed brugeren om at sende pinkoden nedenfor til boten.",
"sendPIN": "Bed brugeren om at sende pinkoden nedenfor til botten.",
"searchDiscordUser": "Begynd at skrive Discord brugernavnet for at finde brugeren.",
"findDiscordUser": "Find Discord bruger",
"linkMatrixDescription": "Indtast brugernavnet og adgangskoden til den bruger der skal bruges som en bot. Når indsendt, genstarter appen.",
"matrixHomeServer": "Hjemme server adresse"
"matrixHomeServer": "Hjemme server adresse",
"saveAsTemplate": "Gem som skabelon",
"templates": "Skabeloner",
"deleteTemplate": "Slet skabelon",
"templateEnterName": "Indtast et navn for at gemme denne skabelon."
},
"notifications": {
"changedEmailAddress": "Ændret e-mail adresse på {n}.",
@ -140,7 +144,8 @@
"errorApplyUpdate": "Kunne ikke anvende opdateringen, prøv manuelt.",
"errorCheckUpdate": "Kunne ikke kontrollere for opdatering.",
"updateAvailable": "En ny opdatering er tilgængelig, tjek indstillingerne.",
"noUpdatesAvailable": "Ingen nye opdateringer tilgængelige."
"noUpdatesAvailable": "Ingen nye opdateringer tilgængelige.",
"savedAnnouncement": "Meddelelse gemt."
},
"quantityStrings": {
"modifySettingsFor": {

View File

@ -72,7 +72,7 @@
"variables": "Variabelen",
"customizeMessagesDescription": "Als je de e-mailsjablonen van jfa-go niet wilt gebruiken, kun je met gebruik van Markdown je eigen aanmaken.",
"preview": "Voorbeeld",
"reset": "Resetten",
"reset": "Reset",
"edit": "Bewerken",
"customizeMessages": "E-mails aanpassen",
"inviteDuration": "Geldigheidsduur uitnodiging",
@ -100,7 +100,11 @@
"linkMatrixDescription": "Vul de gebruikersnaam en wachtwoord in van de gebruiker om als bot te gebruiken. De app start zodra ze zijn verstuurd.",
"select": "Selecteer",
"findDiscordUser": "Zoek Discord gebruiker",
"matrixHomeServer": "Adres home server"
"matrixHomeServer": "Adres home server",
"templates": "Sjablonen",
"templateEnterName": "Voer een naam in om dit sjabloon op te slaan.",
"saveAsTemplate": "Sla op als sjabloon",
"deleteTemplate": "Verwijder sjabloon"
},
"notifications": {
"changedEmailAddress": "E-mailadres van {n} gewijzigd.",
@ -140,7 +144,8 @@
"noUpdatesAvailable": "Geen nieuwe updates beschikbaar.",
"telegramVerified": "Telegram-account goedgekeurd.",
"updateAppliedRefresh": "Update toegepast, ververs alsjeblieft.",
"accountConnected": "Account gekoppeld."
"accountConnected": "Account gekoppeld.",
"savedAnnouncement": "Aankondiging opgeslagen."
},
"quantityStrings": {
"modifySettingsFor": {

View File

@ -99,7 +99,12 @@
"findDiscordUser": "Encontrar usuário Discord",
"add": "Adicionar",
"linkMatrixDescription": "Digite o nome de usuário e a senha para usar como bot. Depois de enviado, o aplicativo será reiniciado.",
"select": "Selecionar"
"select": "Selecionar",
"templates": "Modelos",
"matrixHomeServer": "Endereço do servidor local",
"saveAsTemplate": "Salvar o modelo",
"deleteTemplate": "Deletar modelo",
"templateEnterName": "Digite um nome para salvar este modelo."
},
"notifications": {
"changedEmailAddress": "Endereço de e-mail alterado de {n}.",
@ -139,7 +144,8 @@
"noUpdatesAvailable": "Nenhuma atualização disponível.",
"telegramVerified": "Conta do Telegram verificada.",
"updateAppliedRefresh": "Atualização instalada, atualize.",
"accountConnected": "Conta conectada."
"accountConnected": "Conta conectada.",
"savedAnnouncement": "Anúncio salvo."
},
"quantityStrings": {
"modifySettingsFor": {

204
lang/admin/zh-hans.json Normal file
View File

@ -0,0 +1,204 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"invites": "邀请",
"accounts": "用户",
"settings": "设置",
"inviteMonths": "月",
"inviteDays": "日",
"inviteHours": "小时",
"inviteMinutes": "分钟",
"inviteNumberOfUses": "使用次数",
"inviteDuration": "邀请时长",
"warning": "警告",
"inviteInfiniteUsesWarning": "无限使用次数的邀请码可能被滥用",
"inviteSendToEmail": "发送到",
"login": "登录",
"logout": "登出",
"create": "创建",
"apply": "申请",
"delete": "删除",
"add": "添加",
"select": "选择",
"name": "名称",
"date": "日期",
"enabled": "已启用",
"disabled": "已禁用",
"reEnable": "重新启用",
"disable": "禁用",
"admin": "管理员",
"updates": "更新",
"update": "更新",
"download": "下载",
"search": "搜索",
"advancedSettings": "高级设置",
"lastActiveTime": "上次活动",
"from": "从",
"user": "用户",
"expiry": "到期",
"userExpiry": "用户到期",
"userExpiryDescription": "每次注册后的指定时间jfa-go 将删除/禁用该帐户。您可以在设置中更改此行为。",
"aboutProgram": "关于",
"version": "版本",
"commitNoun": "提交",
"newUser": "新用户",
"profile": "个人资料",
"unknown": "未知",
"label": "标签",
"announce": "宣布",
"templates": "模板",
"subject": "主题",
"message": "信息",
"variables": "变量",
"conditionals": "条件性条款",
"preview": "预览",
"reset": "重设",
"edit": "编辑",
"donate": "捐助",
"contactThrough": "联系方式:",
"extendExpiry": "延长有效期",
"customizeMessages": "自定义消息",
"customizeMessagesDescription": "如果不想使用 jfa-go 的消息模板,可以使用 Markdown 创建自己的消息模板。",
"markdownSupported": "已支持Markdown。",
"modifySettings": "修改设置",
"modifySettingsDescription": "应用现有配置文件中的设置,或直接从用户处获取设置。",
"applyHomescreenLayout": "应用主屏幕布局",
"sendDeleteNotificationEmail": "发送通知消息",
"sendDeleteNotifiationExample": "您的帐户已被删除。",
"settingsRestart": "重启",
"settingsRestarting": "正在重启……",
"settingsRestartRequired": "需要重启",
"settingsRestartRequiredDescription": "需要重新启动才能应用您更改的某些设置。现在重启还是稍后重启?",
"settingsApplyRestartLater": "应用,稍后重启",
"settingsApplyRestartNow": "应用并重启",
"settingsApplied": "已应用设置。",
"settingsRefreshPage": "几秒钟后刷新页面。",
"settingsRequiredOrRestartMessage": "",
"settingsSave": "",
"ombiUserDefaults": "",
"ombiUserDefaultsDescription": "",
"userProfiles": "",
"userProfilesDescription": "",
"userProfilesIsDefault": "",
"userProfilesLibraries": "",
"addProfile": "",
"addProfileDescription": "",
"addProfileNameOf": "",
"addProfileStoreHomescreenLayout": "",
"inviteNoUsersCreated": "",
"inviteUsersCreated": "",
"inviteNoProfile": "",
"inviteDateCreated": "",
"inviteRemainingUses": "",
"inviteNoInvites": "",
"inviteExpiresInTime": "",
"notifyEvent": "",
"notifyInviteExpiry": "",
"notifyUserCreation": "",
"sendPIN": "",
"searchDiscordUser": "",
"findDiscordUser": "",
"linkMatrixDescription": "",
"matrixHomeServer": "",
"saveAsTemplate": "",
"deleteTemplate": "",
"templateEnterName": ""
},
"notifications": {
"changedEmailAddress": "",
"userCreated": "",
"createProfile": "",
"saveSettings": "",
"saveEmail": "",
"sentAnnouncement": "",
"savedAnnouncement": "",
"setOmbiDefaults": "",
"updateApplied": "",
"updateAppliedRefresh": "",
"telegramVerified": "",
"accountConnected": "",
"errorConnection": "",
"error401Unauthorized": "",
"errorSettingsAppliedNoHomescreenLayout": "",
"errorHomescreenAppliedNoSettings": "",
"errorSettingsFailed": "",
"errorLoginBlank": "",
"errorUnknown": "",
"errorSaveEmail": "",
"errorBlankFields": "",
"errorDeleteProfile": "",
"errorLoadProfiles": "",
"errorCreateProfile": "",
"errorSetDefaultProfile": "",
"errorLoadUsers": "",
"errorSaveSettings": "",
"errorLoadSettings": "",
"errorSetOmbiDefaults": "",
"errorLoadOmbiUsers": "",
"errorChangedEmailAddress": "",
"errorFailureCheckLogs": "",
"errorPartialFailureCheckLogs": "",
"errorUserCreated": "",
"errorSendWelcomeEmail": "",
"errorApplyUpdate": "",
"errorCheckUpdate": "",
"updateAvailable": "",
"noUpdatesAvailable": ""
},
"quantityStrings": {
"modifySettingsFor": {
"singular": "",
"plural": ""
},
"deleteNUsers": {
"singular": "",
"plural": ""
},
"disableUsers": {
"singular": "",
"plural": ""
},
"reEnableUsers": {
"singular": "",
"plural": ""
},
"addUser": {
"singular": "",
"plural": ""
},
"deleteUser": {
"singular": "",
"plural": ""
},
"deletedUser": {
"singular": "",
"plural": ""
},
"disabledUser": {
"singular": "",
"plural": ""
},
"enabledUser": {
"singular": "",
"plural": ""
},
"announceTo": {
"singular": "",
"plural": ""
},
"appliedSettings": {
"singular": "",
"plural": ""
},
"extendExpiry": {
"singular": "",
"plural": ""
},
"extendedExpiry": {
"singular": "",
"plural": ""
}
}
}

26
lang/common/fa-IR.json Normal file
View File

@ -0,0 +1,26 @@
{
"meta": {
"name": "انگلیسی"
},
"strings": {
"username": "نام کاربری",
"password": "کلمه عبور",
"emailAddress": "پست الکترونیک",
"name": "نام",
"submit": "تایید",
"send": "ارسال",
"success": "موفقیت",
"error": "خطا",
"copy": "کپی",
"copied": "کپی شد",
"time24h": "ساعت 24 ساعت",
"time12h": "ساعت 12 ساعت",
"linkTelegram": "لینک تلگرام",
"contactEmail": "تماس از طریق ایمیل",
"contactTelegram": "تماس از طریق تلگرام",
"linkDiscord": "پیوند دیسکورد",
"linkMatrix": "پیوند ماتریکس",
"contactDiscord": "از طریق دیسکورد تماس بگیرید",
"theme": "موضوع"
}
}

26
lang/common/zh-hans.json Normal file
View File

@ -0,0 +1,26 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"username": "用户名",
"password": "密码",
"emailAddress": "电子邮箱",
"name": "名称",
"submit": "提交",
"send": "发送",
"success": "成功",
"error": "错误",
"copy": "复制",
"copied": "已复制",
"time24h": "24小时制",
"time12h": "12小时制",
"linkTelegram": "关联Telegram",
"contactEmail": "通过邮件联系",
"contactTelegram": "通过Telegram联系",
"linkDiscord": "关联Discord",
"linkMatrix": "关联Matrix",
"contactDiscord": "通过Discord联系",
"theme": "主题"
}
}

77
lang/email/zh-hans.json Normal file
View File

@ -0,0 +1,77 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"ifItWasNotYou": "如果这不是您,请忽略本邮件。",
"helloUser": "你好{username}",
"reason": "原因"
},
"userCreated": {
"name": "创建用户",
"title": "注意:用户已创建",
"aUserWasCreated": "使用代码{code}创建了一个用户。",
"time": "时间",
"notificationNotice": "注意:通知邮件可以在管理仪表板上进行切换。"
},
"inviteExpiry": {
"name": "邀请到期",
"title": "注意:邀请已过期",
"inviteExpired": "邀请已过期。",
"expiredAt": "代码 {code} 已于 {time} 过期。",
"notificationNotice": "注意:通知邮件可以在管理仪表板上进行切换。"
},
"passwordReset": {
"name": "重设密码",
"title": "要求重设密码 - Jellyfin",
"someoneHasRequestedReset": "最近在Jellyfin上有一个重设密码的请求。",
"ifItWasYou": "如果这是您请在提示中输入下面的PIN。",
"ifItWasYouLink": "如果这是您,请单击下面的链接。",
"codeExpiry": "该代码将在UTC时间{日期} {时间}到期,也就是{expires In Minutes}。",
"pin": "PIN"
},
"userDeleted": {
"name": "删除用户",
"title": "您的账户已被删除 - Jellyfin",
"yourAccountWasDeleted": "您的 Jellyfin 帐户已被删除。"
},
"userDisabled": {
"name": "用户禁用",
"title": "您的帐户已被禁用 - Jellyfin",
"yourAccountWasDisabled": "您的帐户已被禁用。"
},
"userEnabled": {
"name": "用户已启用",
"title": "您的帐户已重新启用 - Jellyfin",
"yourAccountWasEnabled": "您的帐户已重新启用。"
},
"inviteEmail": {
"name": "邀请邮件",
"title": "邀请 - Jellyfin",
"hello": "您好",
"youHaveBeenInvited": "您已受邀注册 Jellyfin。",
"toJoin": "若要加入,请点击以下链接。",
"inviteExpiry": "此邀请将于 {date} 的 {time} 到期,即 {expires In Minutes},因此请迅速行动。",
"linkButton": "设置您的帐户"
},
"welcomeEmail": {
"name": "欢迎",
"title": "欢迎使用Jellyfin",
"welcome": "欢迎使用Jellyfin",
"youCanLoginWith": "您可以使用以下信息登录",
"yourAccountWillExpire": "您的帐户将于 {date}到期。",
"jellyfinURL": "链接"
},
"emailConfirmation": {
"name": "确认邮件",
"title": "确认您的电子邮件 - Jellyfin",
"clickBelow": "单击下面的链接以确认您的电子邮件地址并开始使用 Jellyfin。",
"confirmEmail": "确认电子邮件"
},
"userExpired": {
"name": "用户到期",
"title": "您的帐户已过期 - Jellyfin",
"yourAccountHasExpired": "您的帐户已过期。",
"contactTheAdmin": "请联系管理员了解更多信息。"
}
}

View File

@ -3,7 +3,7 @@
"name": "Dansk"
},
"strings": {
"pageTitle": "Opret en Jellyfin Konto",
"pageTitle": "Opret Jellyfin Konto",
"createAccountHeader": "Opret Konto",
"accountDetails": "Detaljer",
"emailAddress": "E-mail",
@ -18,7 +18,7 @@
"confirmationRequired": "E-mail bekræftelse er påkrævet",
"confirmationRequiredMessage": "Tjek venligst din e-mail indbakke for at verificere din adresse.",
"yourAccountIsValidUntil": "Din konto er gyldig indtil {date}.",
"sendPIN": "Send nedenstående pinkode til boten, og kom derefter tilbage her for at linke din konto.",
"sendPIN": "Send nedenstående pinkode til botten, og kom derefter tilbage her for at linke din konto.",
"sendPINDiscord": "Skriv {command} i {server_channel} på Discord, og send PIN-koden nedenfor via. DM til boten.",
"matrixEnterUser": "Skriv dit Bruger ID, tryk Indsend, og en PIN-kode vil blive sendt til dig. Skriv den her efter for at fortsætte."
},

57
lang/form/fa-IR.json Normal file
View File

@ -0,0 +1,57 @@
{
"meta": {
"name": "انگلیسی"
},
"strings": {
"pageTitle": "ساختن حساب کاربری",
"createAccountHeader": "ساخت اکانت",
"accountDetails": "جزئیات",
"emailAddress": "پست الکترونیک",
"username": "نام کاربری",
"password": "کلمه عبور",
"reEnterPassword": "کلمه عبور را دوباره وارد کنید",
"reEnterPasswordInvalid": "کلمه های عبور یکسان نیستند.",
"createAccountButton": "ساخت حساب کاربری",
"passwordRequirementsHeader": "کلمه عبور لازم است",
"successHeader": "موفقیت!",
"successContinueButton": "ادامه دادن",
"confirmationRequired": "تایید ایمیل لازم است",
"confirmationRequiredMessage": "لطفاً برای تأیید آدرس خود ، صندوق پستی ایمیل خود را بررسی کنید.",
"yourAccountIsValidUntil": "حساب شما تا {date} معتبر خواهد بود.",
"sendPIN": "پین زیر را به ربات ارسال کنید ، سپس برای پیوند حساب خود به اینجا برگردید.",
"sendPINDiscord": "در Discord {command} را در {server_channel} تایپ کنید ، سپس پین زیر را از طریق DM به ربات ارسال کنید.",
"matrixEnterUser": "شناسه کاربری خود را وارد کرده ، submit را فشار دهید و یک پین برای شما ارسال می شود. برای ادامه آن را اینجا وارد کنید."
},
"notifications": {
"errorUserExists": "کاربر قبلاً وجود دارد.",
"errorInvalidCode": "کد دعوت نامعتبر است.",
"errorTelegramVerification": "تایید تلگرام الزامی است.",
"errorDiscordVerification": "تأیید دیسکورد مورد نیاز است.",
"errorMatrixVerification": "تأیید ماتریکس مورد نیاز است.",
"errorInvalidPIN": "پین نامعتبر است.",
"errorUnknown": "خطای ناشناخته.",
"verified": "حساب تأیید شد."
},
"validationStrings": {
"length": {
"singular": "باید حداقل {n} نویسه داشته باشد",
"plural": "باید حداقل {n} نویسه داشته باشد"
},
"uppercase": {
"singular": "باید حداقل {n} نویسه بزرگ داشته باشد",
"plural": "باید حداقل {n} نویسه بزرگ داشته باشد"
},
"lowercase": {
"singular": "باید حداقل {n} نویسه کوچک داشته باشد",
"plural": "باید حداقل {n} نویسه کوچک داشته باشد"
},
"number": {
"singular": "باید حداقل {n} شماره داشته باشد",
"plural": "باید حداقل {n} شماره داشته باشد"
},
"special": {
"singular": "باید حداقل {n} نویسه خاص داشته باشد",
"plural": "باید حداقل {n} نویسه خاص داشته باشد"
}
}
}

View File

@ -13,7 +13,7 @@
"reEnterPasswordInvalid": "Senha não Coincidem. Tentar novamente.",
"createAccountButton": "Criar Conta",
"passwordRequirementsHeader": "Requisitos da Senha",
"successHeader": "Sucesso!",
"successHeader": "Concluído!",
"successContinueButton": "Continuar",
"confirmationRequired": "Confirmação por e-mail",
"confirmationRequiredMessage": "Verifique sua caixa de email para finalizar o cadastro.",

57
lang/form/zh-hans.json Normal file
View File

@ -0,0 +1,57 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"pageTitle": "创建Jellyfin账户",
"createAccountHeader": "创建账户",
"accountDetails": "账户详情",
"emailAddress": "电子邮箱",
"username": "用户名",
"password": "密码",
"reEnterPassword": "再次输入密码",
"reEnterPasswordInvalid": "两次输入的密码不相同。",
"createAccountButton": "创建账户",
"passwordRequirementsHeader": "密码格式要求",
"successHeader": "成功!",
"successContinueButton": "继续",
"confirmationRequired": "需要邮件确认",
"confirmationRequiredMessage": "请登录您的邮箱收件箱来验证您的地址。",
"yourAccountIsValidUntil": "您的账户将在 {date} 之前有效。",
"sendPIN": "把PIN码发送给下面的bot然后回到这里来关联您的账户。",
"sendPINDiscord": "在 Discord 上,在 {server_channel} 中输入 {command} 并将下面的 PIN 码作为 DM 发送给机器人。",
"matrixEnterUser": "输入您的用户ID并点击提交将发送给您的PIN码输入到这里并继续。"
},
"notifications": {
"errorUserExists": "用户已经存在。",
"errorInvalidCode": "无效的邀请码",
"errorTelegramVerification": "需要Telegram验证",
"errorDiscordVerification": "需要Discord验证。",
"errorMatrixVerification": "需要Matrix验证。",
"errorInvalidPIN": "无效的PIN码",
"errorUnknown": "未知错误。",
"verified": "账户已验证。"
},
"validationStrings": {
"length": {
"singular": "必须至少包含 {n} 个字符",
"plural": "必须至少包含 {n} 个字符"
},
"uppercase": {
"singular": "必须至少包含 {n} 个大写字母",
"plural": "必须至少包含 {n} 个大写字母"
},
"lowercase": {
"singular": "必须至少包含 {n} 个小写字母",
"plural": "必须至少包含 {n} 个小写字母"
},
"number": {
"singular": "必须至少包含 {n} 个数字",
"plural": "必须至少包含 {n} 个数字"
},
"special": {
"singular": "必须至少包含 {n} 个特殊字符",
"plural": "必须至少包含 {n} 个特殊字符"
}
}
}

15
lang/pwreset/fa-IR.json Normal file
View File

@ -0,0 +1,15 @@
{
"meta": {
"name": "انگلیسی"
},
"strings": {
"passwordReset": "تنظیم مجدد رمز عبور",
"reset": "بازنشانی",
"resetFailed": "بازنشانی گذرواژه ناموفق بود",
"tryAgain": "لطفا دوباره تلاش کنید.",
"youCanLogin": "اکنون می توانید با کد زیر به عنوان رمز عبور خود وارد شوید.",
"youCanLoginOmbi": "اکنون می توانید با کد زیر به عنوان رمز عبور وارد شوید.",
"changeYourPassword": "اطمینان حاصل کنید که پس از ورود به سیستم رمز عبور خود را تغییر دهید.",
"enterYourPassword": "رمز عبور جدید خود را در زیر وارد کنید."
}
}

15
lang/pwreset/nl-NL.json Normal file
View File

@ -0,0 +1,15 @@
{
"meta": {
"name": "Nederlands (NL)"
},
"strings": {
"passwordReset": "Wachtwoordreset",
"reset": "Reset",
"resetFailed": "Wachtwoordreset mislukt",
"tryAgain": "Probeer het alsjeblieft nog een keer.",
"youCanLogin": "Je kunt nu inloggen met onderstaande code als wachtwoord.",
"youCanLoginOmbi": "Je kunt nu inloggen bij Jellyfin & Ombi met onderstaande code als wachtwoord.",
"changeYourPassword": "Denk eraan je wachtwoord te wijzigen nadat je bent ingelogd.",
"enterYourPassword": "Voer hieronder je nieuwe wachtwoord in."
}
}

15
lang/pwreset/zh-hans.json Normal file
View File

@ -0,0 +1,15 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"passwordReset": "重设密码",
"reset": "重设",
"resetFailed": "重设密码失败",
"tryAgain": "请重试。",
"youCanLogin": "您现在可以使用下面的代码作为您的密码进行登录。",
"youCanLoginOmbi": "您现在可以使用下面的代码作为您的密码登录Jellyfin和Ombi。",
"changeYourPassword": "确保在登录状态下修改您的密码。",
"enterYourPassword": "在下面输入您的新密码。"
}
}

View File

@ -3,7 +3,7 @@
"name": "Dansk"
},
"strings": {
"pageTitle": "Installer - jfa-go",
"pageTitle": "Opsæt - jfa-go",
"next": "Næste",
"back": "Tilbage",
"optional": "Valgfri",
@ -15,7 +15,11 @@
"serverAddress": "Serveradresse",
"emailSubject": "E-mail emne",
"URL": "URL",
"apiKey": "API Nøgle"
"apiKey": "API Nøgle",
"errorNotAdmin": "Brugeren har ikke tilladelse til at administrere server.",
"errorInvalidUserPass": "Ugyldigt brugernavn/adgangskode.",
"errorUserDisabled": "Bruger kan være deaktiveret.",
"error404": "404, tjek den interne URL."
},
"startPage": {
"welcome": "Velkommen!",
@ -25,7 +29,7 @@
},
"endPage": {
"finished": "Færdig!",
"restartMessage": "Der er flere indstillinger du kan konfigurere på admin-siden. Klik nedenfor for at genstarte, og opdater derefter siden.",
"restartMessage": "Du kan konfigurere Discord/Telegram/Matrix bots, tilpasse dine meddelelser og mere i Indstillinger. Klik herunder for at genstarte, og opdater siden.",
"refreshPage": "Opdater"
},
"language": {
@ -37,7 +41,7 @@
},
"general": {
"title": "Generel",
"listenAddress": "Listen Address",
"listenAddress": "Listen Adresse",
"urlBase": "URL-base",
"urlBaseNotice": "Kun nødvendigt hvis du bruger en omvendt proxy på et underdomæne (f.eks. 'Jellyf.in/accounts').",
"lightTheme": "Lys",
@ -93,16 +97,16 @@
"mailgunApiURL": "API-URL"
},
"notifications": {
"title": "Meddelelser",
"description": "Hvis aktiveret, kan du vælge (pr. Invitation) at modtage en e-mail når en invitation udløber, eller når en bruger oprettes. Hvis du ikke valgte Jellyfin login metoden, skal du sørge for at angive din e-mail adresse."
"title": "Admin Meddelelser",
"description": "Hvis aktiveret, kan du vælge (pr. Invitation) at modtage besked når en invitation udløber, eller når en bruger oprettes. Hvis du ikke valgte Jellyfin login metoden, skal du sørge for at angive din e-mail adresse, eller tilføje en anden kontakt metode senere."
},
"welcomeEmails": {
"title": "Velkomstmails",
"description": "Hvis aktiveret, sendes en e-mail til nye brugere med Jellyfin/Emby URL'en og deres brugernavn."
"title": "Velkomst beskeder",
"description": "Hvis aktiveret, sendes en besked til nye brugere med Jellyfin/Emby URL'en og deres brugernavn."
},
"inviteEmails": {
"title": "Invitations E-mails",
"description": "Hvis aktiveret, kan du sende invitationer direkte til en brugers e-mail adresse. Fordi du muligvis bruger en omvendt proxy, skal du angive en URL, invitationer tilgås fra. Skriv din URL-base, og tilføj '/invite'."
"title": "Invitations Beskeder",
"description": "Hvis aktiveret, kan du sende invitationer direkte til en brugers e-mail adresse, Discord eller Matrix bruger. Fordi du muligvis bruger en omvendt proxy, skal du angive en URL, invitationer tilgås fra. Skriv din URL-base, og tilføj '/invite'."
},
"passwordResets": {
"title": "Nulstilling af Adgangskoder",
@ -111,7 +115,9 @@
"pathToJellyfinNotice": "Hvis du ikke ved hvor dette er, kan du prøve at nulstille din adgangskode i Jellyfin. En popup med '<sti til jellyfin>/passwordreset - *. Json' vises.",
"resetLinks": "Send et link i stedet for en PIN-kode",
"resetLinksNotice": "Hvis Ombi integration er aktiveret, skal du bruge denne til at synkronisere nulstilling af Jellyfin's adgangskode med Ombi.",
"resetLinksLanguage": "Standard sprog til nulstillings link"
"resetLinksLanguage": "Standard sprog til nulstillings link",
"setPassword": "Angiv adgangskode gennem link",
"setPasswordNotice": "Aktivering af dette betyder at brugeren ikke behøver at ændre sin adgangskode væk fra pinkoden efter nulstillingen. Adgangskodevalidering håndhæves også."
},
"passwordValidation": {
"title": "Validering af adgangskode",
@ -133,5 +139,9 @@
"successMessageNotice": "Vises når en bruger opretter sin konto.",
"emailMessage": "E-mail Meddelelse",
"emailMessageNotice": "Vises i bunden af e-mails."
},
"messages": {
"title": "Beskeder",
"description": "jfa-go kan sende nulstilling af adgangskoder og forskellige meddelelser via E-mail, Discord, Telegram og/eller Matrix. Du kan konfigurere E-mail herunder, og de andre kan konfigureres i Indstillinger senere. Instruktioner kan findes på {n}. Hvis du ikke har brug for dette, kan du deaktivere disse funktioner her."
}
}

View File

@ -25,7 +25,7 @@
},
"endPage": {
"finished": "Finalizado!",
"restartMessage": "Existem mais opções que você pode definir na página do administrador. Clique abaixo para reiniciar e atualize a página.",
"restartMessage": "Você pode configurar os bots Discord/Telegram/Matrix, personalizar suas mensagens e muito mais em Configurações. Clique abaixo para reiniciar e, em seguida, atualize a página.",
"refreshPage": "Atualizar"
},
"language": {
@ -86,16 +86,16 @@
"mailgunApiURL": "API URL"
},
"notifications": {
"title": "Notificações",
"description": "Se ativado, você pode escolher (por convite) receber um email quando um convite expirar ou um usuário for criado. Se você não escolheu o método de login Jellyfin, certifique-se de fornecer seu endereço de e-mail."
"title": "Notificações do Administrador",
"description": "Se ativado, você pode escolher (por convite) receber uma mensagem quando um convite expirar ou um usuário for criado. Se você não escolheu o método de login Jellyfin, certifique-se de fornecer seu endereço de e-mail ou adicione outro método de contato posteriormente."
},
"welcomeEmails": {
"title": "Email de boas-vindas",
"description": "Se habilitado, um email será enviado para os novos usuários Jellyfin/Emby."
"title": "Mensagens de boas vindas",
"description": "Se habilitado, uma mensagem será enviada para novos usuários com a URL Jellyfin/Emby e seu nome de usuário."
},
"inviteEmails": {
"title": "Convidar por Emails",
"description": "Se ativado, você pode enviar convites diretamente para o endereço de email do usuário. Como você pode estar usando um proxy reverso, é necessário fornecer a URL de onde os convites são acessados. Escreva a sua URL Base e acrescente '/invite'."
"title": "Convite por Mensagens",
"description": "Se ativado, você pode enviar convites diretamente para o endereço de e-mail do usuário, Discord ou Matrix. Como você pode estar usando um proxy reverso, é necessário fornecer a URL de onde os convites são acessados. Escreva a sua base de URL e acrescente '/ invite'."
},
"passwordResets": {
"title": "Redefinir Senha",
@ -104,7 +104,9 @@
"pathToJellyfinNotice": "Se você não sabe o local onde fica, tente redefinir sua senha no Jellyfin. Um pop-up com '<path to jellyfin>/passwordreset-*.json' aparecerá.",
"resetLinks": "Envie um link em vez de um PIN",
"resetLinksNotice": "Se a integração do Ombi estiver habilitada, use para sincronizar as redefinições de senha do Jellyfin com o Ombi.",
"resetLinksLanguage": "Idioma do link de redefinição padrão"
"resetLinksLanguage": "Idioma do link de redefinição padrão",
"setPassword": "Definir a senha por meio de link",
"setPasswordNotice": "Se habilitar significa que o usuário não precisa alterar a senha do PIN após a redefinição. A validação de senha também será aplicada."
},
"passwordValidation": {
"title": "Validar Senha",
@ -133,5 +135,9 @@
"updateChannel": "Canal de Atualização",
"stable": "Estável",
"unstable": "Instável"
},
"messages": {
"title": "Mensagens",
"description": "jfa-go pode enviar redefinições de senha e várias mensagens por e-mail, Discord, Telegram e/ou Matrix. Você pode configurar o e-mail abaixo e os outros podem ser configurados em Configurações posteriormente. As instruções podem ser encontradas em {n}. Se você não precisar, pode desativar esses recursos aqui."
}
}

147
lang/setup/zh-hans.json Normal file
View File

@ -0,0 +1,147 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"pageTitle": "设置 - jfa-go",
"next": "下一步",
"back": "上一步",
"optional": "可选的",
"serverType": "服务类型",
"disabled": "已禁用",
"enabled": "已启用",
"port": "端口",
"message": "信息",
"serverAddress": "服务地址",
"emailSubject": "邮件主题",
"URL": "链接",
"apiKey": "API Key",
"errorInvalidUserPass": "无效的用户名/密码。",
"errorNotAdmin": "此用户不允许管理服务。",
"errorUserDisabled": "此永固可能已被禁用。",
"error404": "404请检查内部URL。"
},
"startPage": {
"welcome": "欢迎!",
"pressStart": "您需要完成几个步骤来设置jfa-go。点击开始来继续。",
"httpsNotice": "请确保您仅通过HTTPS或者局域网访问本页面。",
"start": "开始"
},
"endPage": {
"finished": "完成!",
"restartMessage": "您可以设置Discord/Telegram/Matrix机器人在 \"设置 \"中自定义你的信息和其他内容。点击下方重新启动,然后刷新页面。",
"refreshPage": "刷新"
},
"language": {
"title": "语言",
"description": "jfa-go 的大部分内容都有社区翻译。您可以选择下面的默认语言,但用户仍然可以根据自己的意愿进行更改。如果您想帮助翻译,请在{n}注册并开始贡献您的力量!",
"defaultAdminLang": "默认管理语言",
"defaultFormLang": "默认帐户创建语言",
"defaultEmailLang": "默认电子邮件语言"
},
"general": {
"title": "常规",
"listenAddress": "监听端口",
"urlBase": "URL Base",
"urlBaseNotice": "仅在子域上使用反向代理时才需要例如“jellyf.in/accounts”。",
"lightTheme": "明亮",
"darkTheme": "暗黑",
"useHTTPS": "使用HTTPS",
"httpsPort": "HTTPS端口",
"useHTTPSNotice": "仅在不使用反向代理时推荐使用。",
"pathToCertificate": "证书文件路径",
"pathToKeyFile": "密钥文件路径"
},
"updates": {
"title": "更新",
"description": "fa-go将每隔30分钟检查一次{n}以便在有新更新时得到通知。不会收集IP或个人身份信息。",
"updateChannel": "更新通道",
"stable": "稳定版",
"unstable": "非稳定版"
},
"login": {
"title": "登录",
"description": "要访问管理页面,您需要使用以下方法登录:",
"authorizeWithJellyfin": "从Jellyfin/Emby 授权:登录信息与 Jellyfin 同步,允许使用多个用户。",
"authorizeManual": "用户名和密码:手动设置用户名和密码。",
"adminOnly": "仅允许管理员账户(推荐)",
"emailNotice": "您的电子邮件地址可以用来接收通知。"
},
"jellyfinEmby": {
"title": "Jellyfin/Emby",
"description": "需要使用管理员帐户,因为 API 不允许使用 API 密钥创建用户。您可以创建一个单独的帐户并选中“允许此用户管理服务器”并禁用其余所有功能。完成后,在此处输入登录信息。",
"embyNotice": "对Emby提供有限支持不支持密码重置功能。",
"internal": "内部",
"external": "外部",
"replaceJellyfin": "服务名称",
"replaceJellyfinNotice": "如果填写则将替换应用程序中出现的所有 \"Jellyfin\"字样。",
"addressExternalNotice": "留空以使用相同的地址。",
"testConnection": "测试连接"
},
"ombi": {
"title": "Ombi",
"description": "连接到 Ombi当用户通过 jfa-go 创建账户时,将同时创建 Jellyfin 和 Ombi 帐户。设置完成后,转到设置为新 Ombi 用户设置默认配置文件。",
"apiKeyNotice": "在Ombi设置的第一个选项卡中找到这个选项。"
},
"messages": {
"title": "信息",
"description": "jfa-go 可以通过电子邮件、Discord、Telegram 和/或 Matrix 发送密码重置和各种消息。您可以在下面设置电子邮件,其他的可以稍后在设置中进行配置。说明可以在 {n} 上找到。如果您不需要此功能,可以在此处禁用这些功能。"
},
"email": {
"title": "电子邮箱",
"description": "jfa-go 可以通过电子邮件发送密码重置 PIN 和各种通知。您可以连接到 SMTP 服务器,或使用 {n} API。",
"method": "发送方式",
"useEmailAsUsername": "使用电子邮件地址作为用户名",
"useEmailAsUsernameNotice": "如果启用,新用户将使用他们的电子邮件地址而不是用户名登录 Jellyfin/Emby。",
"fromAddress": "发件人地址",
"senderName": "发件人姓名",
"dateFormat": "日期格式",
"dateFormatNotice": "日期遵循 strftime 格式。如需更多信息,请访问 {n}。",
"encryption": "加密",
"mailgunApiURL": "API URL"
},
"notifications": {
"title": "管理员通知",
"description": "如果启用,您可以选择(每个邀请)在邀请到期或创建用户时收到通知。如果您没有选择 Jellyfin 登录方式,请确保您提供了电子邮件地址,或稍后添加其他联系方式。"
},
"welcomeEmails": {
"title": "欢迎信息",
"description": "如果启用,将向新用户发送带有 Jellyfin/Emby URL 及其用户名的消息。"
},
"inviteEmails": {
"title": "邀请通知",
"description": "如果启用您可以直接向用户的电子邮件地址、Discord 或 Matrix 用户发送邀请。因为您可能正在使用反向代理,所以需要提供访问邀请的 URL。写下您的 URL Base并附加“/invite”。"
},
"passwordResets": {
"title": "重置密码",
"description": "当用户尝试重置密码时Jellyfin 会创建一个名为“passwordreset-*.json”的文件其中包含一个 PIN码。jfa-go 会读取该文件并将 PIN 码发送给用户。",
"pathToJellyfin": "Jellyfin 配置目录的路径",
"pathToJellyfinNotice": "如果您找不到它在哪,请尝试在 Jellyfin 中重置您的密码。将出现一个带有 '<path to jellyfin>/passwordreset-*.json' 的弹出窗口。",
"resetLinks": "发送链接而不是PIN码",
"resetLinksNotice": "如果启用了 Ombi 集成,请使用它与 Ombi 同步 Jellyfin 密码重置。",
"resetLinksLanguage": "默认重置链接语言",
"setPassword": "通过链接设置密码",
"setPasswordNotice": "启用此功能意味着用户无需在重置后通过 PIN 更改其密码。并将强制执行密码验证。"
},
"passwordValidation": {
"title": "密码验证",
"description": "如果启用,则在创建帐户页面上会显示一组密码要求,例如最小长度、大写/小写字符等。",
"length": "长度",
"uppercase": "大写字母",
"lowercase": "小写字母",
"numbers": "数字",
"special": "特殊字符 (%, *, etc.)"
},
"helpMessages": {
"title": "帮助信息",
"description": "这些消息将显示在帐户创建页面和某些电子邮件中。",
"contactMessage": "联系方式",
"contactMessageNotice": "显示在除 admin 之外的所有页面的底部。",
"helpMessage": "帮助信息",
"helpMessageNotice": "显示在帐户创建页面上。",
"successMessage": "成功信息",
"successMessageNotice": "在用户创建账户时显示。",
"emailMessage": "电子邮件",
"emailMessageNotice": "显示在电子邮件的底部。"
}
}

12
lang/telegram/fa-IR.json Normal file
View File

@ -0,0 +1,12 @@
{
"meta": {
"name": "انگلیسی"
},
"strings": {
"startMessage": "سلام!\nبرای تأیید حساب خود ، کد PIN خود را در اینجا وارد کنید.",
"matrixStartMessage": "سلام\nبرای تأیید حساب خود ، پین زیر را در صفحه ثبت نام وارد کنید.",
"invalidPIN": "آن پین نامعتبر بود ، دوباره امتحان کنید.",
"pinSuccess": "موفقیت! اکنون می توانید به صفحه ثبت نام بازگردید.",
"languageMessage": "توجه: زبانهای موجود با {command} را مشاهده کرده و زبان را با {command} <code code> تنظیم کنید."
}
}

View File

@ -0,0 +1,12 @@
{
"meta": {
"name": "简体中文(CN)"
},
"strings": {
"startMessage": "您好!\n请在这里输入Jellyfin的PIN码来验证您的账户。",
"matrixStartMessage": "您好\n请在Jellyfin的注册页面中输入下面的PIN码来验证您的账户。",
"invalidPIN": "这个PIN码无效请重试。",
"pinSuccess": "成功!您现在可以返回注册页面。",
"languageMessage": "提示:使用 {command} 查看可用语言,并使用 {command} <language code> 来设置语言。"
}
}

View File

@ -434,7 +434,7 @@ func start(asDaemon, firstCall bool) {
if status != 200 || err != nil {
app.err.Fatalf("Failed to authenticate with Jellyfin @ \"%s\" (%d): %v", server, status, err)
}
app.info.Printf("Authenticated with %s", server)
app.info.Printf("Authenticated with \"%s\"", server)
runMigrations(app)