diff --git a/catalog_gen.go b/catalog_gen.go index 6938dcd..2180164 100644 --- a/catalog_gen.go +++ b/catalog_gen.go @@ -39,43 +39,65 @@ func init() { } var messageKeyToIndex = map[string]int{ - "Allow": 4, + "%sProof of Key Code Exchange%s is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.": 4, + "Allow": 8, "Authorize %s": 0, "Authorize application": 1, - "Choose your scopes": 2, - "Deny": 3, - "Error": 6, - "How do I fix it?": 7, - "Recipient": 10, - "Resource": 11, - "Send": 12, - "Sign In": 8, - "TicketAuth": 9, - "version": 5, + "Deny": 7, + "Error": 10, + "How do I fix it?": 11, + "No scopes is requested: the application will only get your profile URL.": 6, + "Recipient": 14, + "Resource": 15, + "Scopes": 5, + "Send": 16, + "Sign In": 12, + "This client does not use %sPKCE%s!": 3, + "This client uses %sPKCE%s with the %s%s%s method.": 2, + "TicketAuth": 13, + "You will be redirected to %s%s%s": 9, } -var enIndex = []uint32{ // 14 elements - 0x00000000, 0x00000010, 0x00000026, 0x00000039, - 0x0000003e, 0x00000044, 0x0000004c, 0x00000052, - 0x00000063, 0x0000006b, 0x00000076, 0x00000080, - 0x00000089, 0x0000008e, -} // Size: 80 bytes +var enIndex = []uint32{ // 18 elements + 0x00000000, 0x00000010, 0x00000026, 0x00000067, + 0x00000090, 0x000001f3, 0x000001fa, 0x00000242, + 0x00000247, 0x0000024d, 0x00000277, 0x0000027d, + 0x0000028e, 0x00000296, 0x000002a1, 0x000002ab, + 0x000002b4, 0x000002b9, +} // Size: 96 bytes -const enData string = "" + // Size: 142 bytes - "\x02Authorize %[1]s\x02Authorize application\x02Choose your scopes\x02De" + - "ny\x02Allow\x02version\x02Error\x02How do I fix it?\x02Sign In\x02Ticket" + - "Auth\x02Recipient\x02Resource\x02Send" +const enData string = "" + // Size: 697 bytes + "\x02Authorize %[1]s\x02Authorize application\x02This client uses %[1]sPK" + + "CE%[2]s with the %[3]s%[4]s%[5]s method.\x02This client does not use %[1" + + "]sPKCE%[2]s!\x02%[1]sProof of Key Code Exchange%[2]s is a mechanism that" + + " protects against attackers in the middle hijacking your application's a" + + "uthentication process. You can still authorize this application without " + + "this protection, but you must independently verify the security of this " + + "connection. If you have any doubts - stop the process and contact the d" + + "evelopers.\x02Scopes\x02No scopes is requested: the application will onl" + + "y get your profile URL.\x02Deny\x02Allow\x02You will be redirected to %[" + + "1]s%[2]s%[3]s\x02Error\x02How do I fix it?\x02Sign In\x02TicketAuth\x02R" + + "ecipient\x02Resource\x02Send" -var ruIndex = []uint32{ // 14 elements - 0x00000000, 0x0000001f, 0x0000004d, 0x0000008e, - 0x0000009f, 0x000000b2, 0x000000bf, 0x000000cc, - 0x000000ee, 0x000000f9, 0x00000104, 0x00000119, - 0x00000126, 0x00000139, -} // Size: 80 bytes +var ruIndex = []uint32{ // 18 elements + 0x00000000, 0x0000001f, 0x0000004d, 0x000000a1, + 0x000000d8, 0x00000343, 0x00000352, 0x000003e9, + 0x000003fa, 0x0000040d, 0x00000451, 0x0000045e, + 0x00000480, 0x0000048b, 0x00000496, 0x000004ab, + 0x000004b8, 0x000004cb, +} // Size: 96 bytes -const ruData string = "" + // Size: 313 bytes - "\x02Авторизовать %[1]s\x02Авторизовать приложение\x02Выбери предоставляе" + - "мые разрешения\x02Отказать\x02Разрешить\x02версия\x02Ошибка\x02Как испр" + - "авить это?\x02Войти\x02TicketAuth\x02Получатель\x02Ресурс\x02Отправить" +const ruData string = "" + // Size: 1227 bytes + "\x02Авторизовать %[1]s\x02Авторизовать приложение\x02Клиент использует %" + + "[1]sPKCE%[2]s с методом %[3]s%[4]s%[5]s.\x02Клиент не использует %[1]sPK" + + "CE%[2]s!\x02%[1]sProof of Key Code Exchange%[2]s это механизм, защищающи" + + "й от злоумышленников, перехватывающих процесс аутентификации вашего при" + + "ложения. Вы можете авторизовать данное приложение и без этой защиты, но" + + " при этом вы должны самостоятельно проверить безопасность этого соединен" + + "ия. Если у вас есть сомнения - прервите процесс и свяжитесь с разработч" + + "иками.\x02Области\x02Никакие разрешения не запрашиваются: приложение по" + + "лучит только URL вашего профиля.\x02Отказать\x02Разрешить\x02Вы будете " + + "перенаправлены на %[1]s%[2]s%[3]s\x02Ошибка\x02Как исправить это?\x02Во" + + "йти\x02TicketAuth\x02Получатель\x02Ресурс\x02Отправить" - // Total table size 615 bytes (0KiB); checksum: 66FB60EC + // Total table size 2116 bytes (2KiB); checksum: 848DD07E diff --git a/locales/en/messages.gotext.json b/locales/en/messages.gotext.json index b339e20..624594a 100644 --- a/locales/en/messages.gotext.json +++ b/locales/en/messages.gotext.json @@ -26,9 +26,115 @@ "fuzzy": true }, { - "id": "Choose your scopes", - "message": "Choose your scopes", - "translation": "Choose your scopes", + "id": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "message": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "translation": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + }, + { + "id": "Code", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "CodeChallengeMethod", + "string": "%[4]s", + "type": "source.toby3d.me/toby3d/auth/internal/domain.CodeChallengeMethod", + "underlyingType": "struct{codeChallengeMethod string}", + "argNum": 4, + "expr": "p.CodeChallengeMethod" + }, + { + "id": "Code_1", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "`\u003c/code\u003e`" + } + ], + "fuzzy": true + }, + { + "id": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "message": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "translation": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + } + ], + "fuzzy": true + }, + { + "id": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "message": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "translation": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Dfn_idPKCE", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cdfn id=\"PKCE\"\u003e`" + }, + { + "id": "Dfn", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/dfn\u003e`" + } + ], + "fuzzy": true + }, + { + "id": "Scopes", + "message": "Scopes", + "translation": "Scopes", + "translatorComment": "Copied from source.", + "fuzzy": true + }, + { + "id": "No scopes is requested: the application will only get your profile URL.", + "message": "No scopes is requested: the application will only get your profile URL.", + "translation": "No scopes is requested: the application will only get your profile URL.", "translatorComment": "Copied from source.", "fuzzy": true }, @@ -47,10 +153,36 @@ "fuzzy": true }, { - "id": "version", - "message": "version", - "translation": "version", + "id": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "message": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "translation": "You will be redirected to {Code}{RedirectURI}{Code_1}", "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Code", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "RedirectURI", + "string": "%[2]s", + "type": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "underlyingType": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "argNum": 2, + "expr": "p.RedirectURI" + }, + { + "id": "Code_1", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003c/code\u003e`" + } + ], "fuzzy": true }, { diff --git a/locales/en/out.gotext.json b/locales/en/out.gotext.json index b339e20..624594a 100644 --- a/locales/en/out.gotext.json +++ b/locales/en/out.gotext.json @@ -26,9 +26,115 @@ "fuzzy": true }, { - "id": "Choose your scopes", - "message": "Choose your scopes", - "translation": "Choose your scopes", + "id": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "message": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "translation": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + }, + { + "id": "Code", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "CodeChallengeMethod", + "string": "%[4]s", + "type": "source.toby3d.me/toby3d/auth/internal/domain.CodeChallengeMethod", + "underlyingType": "struct{codeChallengeMethod string}", + "argNum": 4, + "expr": "p.CodeChallengeMethod" + }, + { + "id": "Code_1", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "`\u003c/code\u003e`" + } + ], + "fuzzy": true + }, + { + "id": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "message": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "translation": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + } + ], + "fuzzy": true + }, + { + "id": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "message": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "translation": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Dfn_idPKCE", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cdfn id=\"PKCE\"\u003e`" + }, + { + "id": "Dfn", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/dfn\u003e`" + } + ], + "fuzzy": true + }, + { + "id": "Scopes", + "message": "Scopes", + "translation": "Scopes", + "translatorComment": "Copied from source.", + "fuzzy": true + }, + { + "id": "No scopes is requested: the application will only get your profile URL.", + "message": "No scopes is requested: the application will only get your profile URL.", + "translation": "No scopes is requested: the application will only get your profile URL.", "translatorComment": "Copied from source.", "fuzzy": true }, @@ -47,10 +153,36 @@ "fuzzy": true }, { - "id": "version", - "message": "version", - "translation": "version", + "id": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "message": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "translation": "You will be redirected to {Code}{RedirectURI}{Code_1}", "translatorComment": "Copied from source.", + "placeholders": [ + { + "id": "Code", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "RedirectURI", + "string": "%[2]s", + "type": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "underlyingType": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "argNum": 2, + "expr": "p.RedirectURI" + }, + { + "id": "Code_1", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003c/code\u003e`" + } + ], "fuzzy": true }, { diff --git a/locales/ru/messages.gotext.json b/locales/ru/messages.gotext.json index 6d772b7..d62723b 100644 --- a/locales/ru/messages.gotext.json +++ b/locales/ru/messages.gotext.json @@ -24,9 +24,107 @@ "translatorComment": "Заголовок страницы авторизации безымянного приложения" }, { - "id": "Choose your scopes", - "message": "Choose your scopes", - "translation": "Выбери предоставляемые разрешения" + "id": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "message": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "translation": "Клиент использует {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} с методом {Code}{CodeChallengeMethod}{Code_1}.", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + }, + { + "id": "Code", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "CodeChallengeMethod", + "string": "%[4]s", + "type": "source.toby3d.me/toby3d/auth/internal/domain.CodeChallengeMethod", + "underlyingType": "struct{codeChallengeMethod string}", + "argNum": 4, + "expr": "p.CodeChallengeMethod" + }, + { + "id": "Code_1", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "`\u003c/code\u003e`" + } + ] + }, + { + "id": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "message": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "translation": "Клиент не использует {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + } + ] + }, + { + "id": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "message": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "translation": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} это механизм, защищающий от злоумышленников, перехватывающих процесс аутентификации вашего приложения. Вы можете авторизовать данное приложение и без этой защиты, но при этом вы должны самостоятельно проверить безопасность этого соединения. Если у вас есть сомнения - прервите процесс и свяжитесь с разработчиками.", + "placeholders": [ + { + "id": "Dfn_idPKCE", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cdfn id=\"PKCE\"\u003e`" + }, + { + "id": "Dfn", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/dfn\u003e`" + } + ] + }, + { + "id": "Scopes", + "message": "Scopes", + "translation": "Области" + }, + { + "id": "No scopes is requested: the application will only get your profile URL.", + "message": "No scopes is requested: the application will only get your profile URL.", + "translation": "Никакие разрешения не запрашиваются: приложение получит только URL вашего профиля." }, { "id": "Deny", @@ -41,9 +139,35 @@ "translatorComment": "Название кнопки продолжения процесса авторизациии приложения" }, { - "id": "version", - "message": "version", - "translation": "версия" + "id": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "message": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "translation": "Вы будете перенаправлены на {Code}{RedirectURI}{Code_1}", + "placeholders": [ + { + "id": "Code", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "RedirectURI", + "string": "%[2]s", + "type": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "underlyingType": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "argNum": 2, + "expr": "p.RedirectURI" + }, + { + "id": "Code_1", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003c/code\u003e`" + } + ] }, { "id": "Error", diff --git a/locales/ru/out.gotext.json b/locales/ru/out.gotext.json index 6d772b7..d62723b 100644 --- a/locales/ru/out.gotext.json +++ b/locales/ru/out.gotext.json @@ -24,9 +24,107 @@ "translatorComment": "Заголовок страницы авторизации безымянного приложения" }, { - "id": "Choose your scopes", - "message": "Choose your scopes", - "translation": "Выбери предоставляемые разрешения" + "id": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "message": "This client uses {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} with the {Code}{CodeChallengeMethod}{Code_1} method.", + "translation": "Клиент использует {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr} с методом {Code}{CodeChallengeMethod}{Code_1}.", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + }, + { + "id": "Code", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "CodeChallengeMethod", + "string": "%[4]s", + "type": "source.toby3d.me/toby3d/auth/internal/domain.CodeChallengeMethod", + "underlyingType": "struct{codeChallengeMethod string}", + "argNum": 4, + "expr": "p.CodeChallengeMethod" + }, + { + "id": "Code_1", + "string": "%[5]s", + "type": "string", + "underlyingType": "string", + "argNum": 5, + "expr": "`\u003c/code\u003e`" + } + ] + }, + { + "id": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "message": "This client does not use {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "translation": "Клиент не использует {Abbr_titleProof_of_Key_Code_Exchange}PKCE{Abbr}!", + "placeholders": [ + { + "id": "Abbr_titleProof_of_Key_Code_Exchange", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cabbr title=\"Proof of Key Code Exchange\"\u003e`" + }, + { + "id": "Abbr", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/abbr\u003e`" + } + ] + }, + { + "id": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "message": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} is a mechanism that protects against attackers in the middle hijacking your application's authentication process. You can still authorize this application without this protection, but you must independently verify the security of this connection. If you have any doubts - stop the process and contact the developers.", + "translation": "{Dfn_idPKCE}Proof of Key Code Exchange{Dfn} это механизм, защищающий от злоумышленников, перехватывающих процесс аутентификации вашего приложения. Вы можете авторизовать данное приложение и без этой защиты, но при этом вы должны самостоятельно проверить безопасность этого соединения. Если у вас есть сомнения - прервите процесс и свяжитесь с разработчиками.", + "placeholders": [ + { + "id": "Dfn_idPKCE", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003cdfn id=\"PKCE\"\u003e`" + }, + { + "id": "Dfn", + "string": "%[2]s", + "type": "string", + "underlyingType": "string", + "argNum": 2, + "expr": "`\u003c/dfn\u003e`" + } + ] + }, + { + "id": "Scopes", + "message": "Scopes", + "translation": "Области" + }, + { + "id": "No scopes is requested: the application will only get your profile URL.", + "message": "No scopes is requested: the application will only get your profile URL.", + "translation": "Никакие разрешения не запрашиваются: приложение получит только URL вашего профиля." }, { "id": "Deny", @@ -41,9 +139,35 @@ "translatorComment": "Название кнопки продолжения процесса авторизациии приложения" }, { - "id": "version", - "message": "version", - "translation": "версия" + "id": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "message": "You will be redirected to {Code}{RedirectURI}{Code_1}", + "translation": "Вы будете перенаправлены на {Code}{RedirectURI}{Code_1}", + "placeholders": [ + { + "id": "Code", + "string": "%[1]s", + "type": "string", + "underlyingType": "string", + "argNum": 1, + "expr": "`\u003ccode\u003e`" + }, + { + "id": "RedirectURI", + "string": "%[2]s", + "type": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "underlyingType": "*source.toby3d.me/toby3d/auth/internal/domain.URL", + "argNum": 2, + "expr": "p.RedirectURI" + }, + { + "id": "Code_1", + "string": "%[3]s", + "type": "string", + "underlyingType": "string", + "argNum": 3, + "expr": "`\u003c/code\u003e`" + } + ] }, { "id": "Error", diff --git a/web/authorize.qtpl b/web/authorize.qtpl index 9e9cf1c..29644a1 100644 --- a/web/authorize.qtpl +++ b/web/authorize.qtpl @@ -55,6 +55,35 @@
+ +
0 %}
- {%= p.T("Choose your scopes") %} + {%= p.T("Scopes") %} {% for _, scope := range p.Scope %}
@@ -98,6 +127,10 @@
{% endfor %}
+ {% else %} + {% endif %} {% if p.CodeChallenge != "" %} @@ -149,6 +182,10 @@ {%= p.T("Allow") %} + +
{% endfunc %} diff --git a/web/authorize.qtpl.go b/web/authorize.qtpl.go index c5f168c..80548e9 100644 --- a/web/authorize.qtpl.go +++ b/web/authorize.qtpl.go @@ -186,6 +186,59 @@ func (p *AuthorizePage) StreamBody(qw422016 *qt422016.Writer) {
+ +
`) -//line web/authorize.qtpl:67 +//line web/authorize.qtpl:96 if p.CSRF != nil { -//line web/authorize.qtpl:67 +//line web/authorize.qtpl:96 qw422016.N().S(` `) -//line web/authorize.qtpl:71 +//line web/authorize.qtpl:100 } -//line web/authorize.qtpl:71 +//line web/authorize.qtpl:100 qw422016.N().S(` `) -//line web/authorize.qtpl:73 +//line web/authorize.qtpl:102 for key, val := range map[string]string{ "client_id": p.Client.ID.String(), "redirect_uri": p.RedirectURI.String(), "response_type": p.ResponseType.String(), "state": p.State, } { -//line web/authorize.qtpl:78 +//line web/authorize.qtpl:107 qw422016.N().S(` `) -//line web/authorize.qtpl:82 +//line web/authorize.qtpl:111 } -//line web/authorize.qtpl:82 +//line web/authorize.qtpl:111 qw422016.N().S(` `) -//line web/authorize.qtpl:84 +//line web/authorize.qtpl:113 if len(p.Scope) > 0 { -//line web/authorize.qtpl:84 +//line web/authorize.qtpl:113 qw422016.N().S(`
`) -//line web/authorize.qtpl:86 - p.StreamT(qw422016, "Choose your scopes") -//line web/authorize.qtpl:86 +//line web/authorize.qtpl:115 + p.StreamT(qw422016, "Scopes") +//line web/authorize.qtpl:115 qw422016.N().S(` `) -//line web/authorize.qtpl:88 +//line web/authorize.qtpl:117 for _, scope := range p.Scope { -//line web/authorize.qtpl:88 +//line web/authorize.qtpl:117 qw422016.N().S(`
`) -//line web/authorize.qtpl:99 +//line web/authorize.qtpl:128 } -//line web/authorize.qtpl:99 +//line web/authorize.qtpl:128 qw422016.N().S(`
`) -//line web/authorize.qtpl:101 +//line web/authorize.qtpl:130 + } else { +//line web/authorize.qtpl:130 + qw422016.N().S(` + + `) +//line web/authorize.qtpl:134 } -//line web/authorize.qtpl:101 +//line web/authorize.qtpl:134 qw422016.N().S(` `) -//line web/authorize.qtpl:103 +//line web/authorize.qtpl:136 if p.CodeChallenge != "" { -//line web/authorize.qtpl:103 +//line web/authorize.qtpl:136 qw422016.N().S(` `) -//line web/authorize.qtpl:104 +//line web/authorize.qtpl:137 for key, val := range map[string]string{ "code_challenge": p.CodeChallenge, "code_challenge_method": p.CodeChallengeMethod.String(), } { -//line web/authorize.qtpl:107 +//line web/authorize.qtpl:140 qw422016.N().S(` `) -//line web/authorize.qtpl:111 +//line web/authorize.qtpl:144 } -//line web/authorize.qtpl:111 +//line web/authorize.qtpl:144 qw422016.N().S(` `) -//line web/authorize.qtpl:112 +//line web/authorize.qtpl:145 } -//line web/authorize.qtpl:112 +//line web/authorize.qtpl:145 qw422016.N().S(` `) -//line web/authorize.qtpl:114 +//line web/authorize.qtpl:147 if p.Me != nil { -//line web/authorize.qtpl:114 +//line web/authorize.qtpl:147 qw422016.N().S(` `) -//line web/authorize.qtpl:118 +//line web/authorize.qtpl:151 } -//line web/authorize.qtpl:118 +//line web/authorize.qtpl:151 qw422016.N().S(` `) -//line web/authorize.qtpl:120 +//line web/authorize.qtpl:153 if len(p.Providers) > 0 { -//line web/authorize.qtpl:120 +//line web/authorize.qtpl:153 qw422016.N().S(` `) -//line web/authorize.qtpl:133 +//line web/authorize.qtpl:166 } else { -//line web/authorize.qtpl:133 +//line web/authorize.qtpl:166 qw422016.N().S(` `) -//line web/authorize.qtpl:137 +//line web/authorize.qtpl:170 } -//line web/authorize.qtpl:137 +//line web/authorize.qtpl:170 qw422016.N().S(` @@ -411,39 +476,47 @@ func (p *AuthorizePage) StreamBody(qw422016 *qt422016.Writer) { value="allow"> `) -//line web/authorize.qtpl:150 +//line web/authorize.qtpl:183 p.StreamT(qw422016, "Allow") -//line web/authorize.qtpl:150 +//line web/authorize.qtpl:183 qw422016.N().S(` + +
`) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 } -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 func (p *AuthorizePage) WriteBody(qq422016 qtio422016.Writer) { -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 qw422016 := qt422016.AcquireWriter(qq422016) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 p.StreamBody(qw422016) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 qt422016.ReleaseWriter(qw422016) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 } -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 func (p *AuthorizePage) Body() string { -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 qb422016 := qt422016.AcquireByteBuffer() -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 p.WriteBody(qb422016) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 qs422016 := string(qb422016.B) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 qt422016.ReleaseByteBuffer(qb422016) -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 return qs422016 -//line web/authorize.qtpl:154 +//line web/authorize.qtpl:191 } diff --git a/web/baseof.qtpl b/web/baseof.qtpl index c75f730..9ac8840 100644 --- a/web/baseof.qtpl +++ b/web/baseof.qtpl @@ -12,7 +12,7 @@ Head() Lang() Title() - T(format string, args ...interface{}) + T(format message.Reference, args ...any) } %} {% code type BaseOf struct { @@ -104,7 +104,7 @@ en {% endfunc %} -{% func (p *BaseOf) T(format string, args ...interface{}) %} -{%s p.Printer.Sprintf(format, args...) %} +{% func (p BaseOf) T(format message.Reference, args ...any) %} +{%s= p.Printer.Sprintf(format, args...) %} {% endfunc %} {% endcollapsespace %} diff --git a/web/baseof.qtpl.go b/web/baseof.qtpl.go index 64a4faf..f4b30bc 100644 --- a/web/baseof.qtpl.go +++ b/web/baseof.qtpl.go @@ -54,11 +54,11 @@ type Page interface { //line web/baseof.qtpl:10 WriteTitle(qq422016 qtio422016.Writer) //line web/baseof.qtpl:10 - T(format string, args ...interface{}) string + T(format message.Reference, args ...any) string //line web/baseof.qtpl:10 - StreamT(qw422016 *qt422016.Writer, format string, args ...interface{}) + StreamT(qw422016 *qt422016.Writer, format message.Reference, args ...any) //line web/baseof.qtpl:10 - WriteT(qq422016 qtio422016.Writer, format string, args ...interface{}) + WriteT(qq422016 qtio422016.Writer, format message.Reference, args ...any) //line web/baseof.qtpl:10 } @@ -304,18 +304,18 @@ func Template(p Page) string { } //line web/baseof.qtpl:107 -func (p *BaseOf) StreamT(qw422016 *qt422016.Writer, format string, args ...interface{}) { +func (p BaseOf) StreamT(qw422016 *qt422016.Writer, format message.Reference, args ...any) { //line web/baseof.qtpl:107 qw422016.N().S(` `) //line web/baseof.qtpl:108 - qw422016.E().S(p.Printer.Sprintf(format, args...)) + qw422016.N().S(p.Printer.Sprintf(format, args...)) //line web/baseof.qtpl:108 qw422016.N().S(` `) //line web/baseof.qtpl:109 } //line web/baseof.qtpl:109 -func (p *BaseOf) WriteT(qq422016 qtio422016.Writer, format string, args ...interface{}) { +func (p BaseOf) WriteT(qq422016 qtio422016.Writer, format message.Reference, args ...any) { //line web/baseof.qtpl:109 qw422016 := qt422016.AcquireWriter(qq422016) //line web/baseof.qtpl:109 @@ -326,7 +326,7 @@ func (p *BaseOf) WriteT(qq422016 qtio422016.Writer, format string, args ...inter } //line web/baseof.qtpl:109 -func (p *BaseOf) T(format string, args ...interface{}) string { +func (p BaseOf) T(format message.Reference, args ...any) string { //line web/baseof.qtpl:109 qb422016 := qt422016.AcquireByteBuffer() //line web/baseof.qtpl:109