From b5472c793f1ff70872b000075a8d6781cf8f74a9 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Mon, 5 Jun 2023 18:38:29 +0800 Subject: [PATCH 01/11] update answer search list --- internal/repo/answer/answer_repo.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/repo/answer/answer_repo.go b/internal/repo/answer/answer_repo.go index 5961a270..b5350cbe 100644 --- a/internal/repo/answer/answer_repo.go +++ b/internal/repo/answer/answer_repo.go @@ -243,7 +243,11 @@ func (ar *answerRepo) SearchList(ctx context.Context, search *entity.AnswerSearc session = session.OrderBy("adopted desc,vote_count desc,created_at asc") } if !search.IncludeDeleted { - session = session.And("status = ? OR user_id = ?", entity.AnswerStatusAvailable, search.LoginUserID) + if search.LoginUserID == "" { + session = session.And("status = ? ", entity.AnswerStatusAvailable) + } else { + session = session.And("status = ? OR user_id = ?", entity.AnswerStatusAvailable, search.LoginUserID) + } } session = session.Limit(search.PageSize, offset) From d6d0bd488359f2d97e3893fadfb040c189d3d04f Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Tue, 6 Jun 2023 10:04:03 +0800 Subject: [PATCH 02/11] fix(migrations): add migration error log --- internal/migrations/migrations.go | 2 +- internal/migrations/v13.go | 23 +++++++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/internal/migrations/migrations.go b/internal/migrations/migrations.go index 07147cfe..c9747c11 100644 --- a/internal/migrations/migrations.go +++ b/internal/migrations/migrations.go @@ -69,7 +69,7 @@ var migrations = []Migration{ NewMigration("v1.0.9", "add login limitations", addLoginLimitations, true), NewMigration("v1.1.0-beta.1", "update user pin hide features", updateRolePinAndHideFeatures, true), NewMigration("v1.1.0-beta.2", "update question post time", updateQuestionPostTime, true), - NewMigration("v1.1.0", "add gravatar base url", updateCount, false), + NewMigration("v1.1.0", "add gravatar base url", updateCount, true), } // GetCurrentDBVersion returns the current db version diff --git a/internal/migrations/v13.go b/internal/migrations/v13.go index d5df039f..e43222f5 100644 --- a/internal/migrations/v13.go +++ b/internal/migrations/v13.go @@ -14,14 +14,21 @@ import ( ) func updateCount(x *xorm.Engine) error { - addPrivilegeForInviteSomeoneToAnswer(x) - addGravatarBaseURL(x) - updateQuestionCount(x) - updateTagCount(x) - updateUserQuestionCount(x) - updateUserAnswerCount(x) - inviteAnswer(x) - inBoxData(x) + fns := []func(*xorm.Engine) error{ + addPrivilegeForInviteSomeoneToAnswer, + addGravatarBaseURL, + updateQuestionCount, + updateTagCount, + updateUserQuestionCount, + updateUserAnswerCount, + inviteAnswer, + inBoxData, + } + for _, fn := range fns { + if err := fn(x); err != nil { + return err + } + } return nil } From fbb3269f08c8dd8fb006dd7d1c0e51dff54e29e0 Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Tue, 6 Jun 2023 11:26:02 +0800 Subject: [PATCH 03/11] fix(email): fix the old email config format --- i18n/en_US.yaml | 3 +++ internal/base/reason/reason.go | 2 +- internal/repo/config/config_repo.go | 11 ++++++----- internal/service/export/email_service.go | 16 ++-------------- internal/service/siteinfo/siteinfo_service.go | 15 +++++---------- 5 files changed, 17 insertions(+), 30 deletions(-) diff --git a/i18n/en_US.yaml b/i18n/en_US.yaml index 3ec38cd3..09aa2e3b 100644 --- a/i18n/en_US.yaml +++ b/i18n/en_US.yaml @@ -261,6 +261,9 @@ backend: upload: unsupported_file_format: other: Unsupported file format. + site_info: + config_not_found: + other: Site config not found. reason: spam: name: diff --git a/internal/base/reason/reason.go b/internal/base/reason/reason.go index 91ee74c6..0d8c2144 100644 --- a/internal/base/reason/reason.go +++ b/internal/base/reason/reason.go @@ -61,7 +61,7 @@ const ( DatabaseConnectionFailed = "error.database.connection_failed" InstallCreateTableFailed = "error.database.create_table_failed" InstallConfigFailed = "error.install.create_config_failed" - SiteInfoNotFound = "error.site_info.not_found" + SiteInfoConfigNotFound = "error.site_info.config_not_found" UploadFileSourceUnsupported = "error.upload.source_unsupported" UploadFileUnsupportedFileFormat = "error.upload.unsupported_file_format" RecommendTagNotExist = "error.tag.recommend_tag_not_found" diff --git a/internal/repo/config/config_repo.go b/internal/repo/config/config_repo.go index c81b9af7..c5a155bd 100644 --- a/internal/repo/config/config_repo.go +++ b/internal/repo/config/config_repo.go @@ -80,8 +80,8 @@ func (cr configRepo) GetConfigByKey(ctx context.Context, key string) (c *entity. func (cr configRepo) UpdateConfig(ctx context.Context, key string, value string) (err error) { // check if key exists - cf := &entity.Config{} - exist, err := cr.data.DB.Context(ctx).Get(cf) + oldConfig := &entity.Config{} + exist, err := cr.data.DB.Context(ctx).Get(oldConfig) if err != nil { return errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() } @@ -90,19 +90,20 @@ func (cr configRepo) UpdateConfig(ctx context.Context, key string, value string) } // update database - _, err = cr.data.DB.Context(ctx).ID(cf.ID).Update(&entity.Config{Value: value}) + _, err = cr.data.DB.Context(ctx).ID(oldConfig.ID).Update(&entity.Config{Value: value}) if err != nil { return errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() } - cacheVal := cf.JsonString() + oldConfig.Value = value + cacheVal := oldConfig.JsonString() // update cache if err := cr.data.Cache.SetString(ctx, constant.ConfigKEY2ContentCacheKeyPrefix+key, cacheVal, -1); err != nil { log.Error(err) } if err := cr.data.Cache.SetString(ctx, - fmt.Sprintf("%s%d", constant.ConfigID2KEYCacheKeyPrefix, cf.ID), cacheVal, -1); err != nil { + fmt.Sprintf("%s%d", constant.ConfigID2KEYCacheKeyPrefix, oldConfig.ID), cacheVal, -1); err != nil { log.Error(err) } return diff --git a/internal/service/export/email_service.go b/internal/service/export/email_service.go index 8ab8139f..2812aa66 100644 --- a/internal/service/export/email_service.go +++ b/internal/service/export/email_service.go @@ -54,19 +54,6 @@ type EmailConfig struct { SMTPUsername string `json:"smtp_username"` SMTPPassword string `json:"smtp_password"` SMTPAuthentication bool `json:"smtp_authentication"` - - RegisterTitle string `json:"register_title"` - RegisterBody string `json:"register_body"` - PassResetTitle string `json:"pass_reset_title"` - PassResetBody string `json:"pass_reset_body"` - ChangeTitle string `json:"change_title"` - ChangeBody string `json:"change_body"` - TestTitle string `json:"test_title"` - TestBody string `json:"test_body"` - NewAnswerTitle string `json:"new_answer_title"` - NewAnswerBody string `json:"new_answer_body"` - NewCommentTitle string `json:"new_comment_title"` - NewCommentBody string `json:"new_comment_body"` } func (e *EmailConfig) IsSSL() bool { @@ -306,7 +293,8 @@ func (es *EmailService) GetEmailConfig(ctx context.Context) (ec *EmailConfig, er ec = &EmailConfig{} err = json.Unmarshal([]byte(emailConf), ec) if err != nil { - return nil, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() + log.Errorf("old email config format is invalid, you need to update smtp config: %v", err) + return nil, errors.BadRequest(reason.SiteInfoConfigNotFound) } return ec, nil } diff --git a/internal/service/siteinfo/siteinfo_service.go b/internal/service/siteinfo/siteinfo_service.go index 0778bbbd..b8cb276e 100644 --- a/internal/service/siteinfo/siteinfo_service.go +++ b/internal/service/siteinfo/siteinfo_service.go @@ -227,9 +227,7 @@ func (s *SiteInfoService) SaveSiteUsers(ctx context.Context, req *schema.SiteUse } // GetSMTPConfig get smtp config -func (s *SiteInfoService) GetSMTPConfig(ctx context.Context) ( - resp *schema.GetSMTPConfigResp, err error, -) { +func (s *SiteInfoService) GetSMTPConfig(ctx context.Context) (resp *schema.GetSMTPConfigResp, err error) { emailConfig, err := s.emailService.GetEmailConfig(ctx) if err != nil { return nil, err @@ -241,13 +239,10 @@ func (s *SiteInfoService) GetSMTPConfig(ctx context.Context) ( // UpdateSMTPConfig get smtp config func (s *SiteInfoService) UpdateSMTPConfig(ctx context.Context, req *schema.UpdateSMTPConfigReq) (err error) { - oldEmailConfig, err := s.emailService.GetEmailConfig(ctx) - if err != nil { - return err - } - _ = copier.Copy(oldEmailConfig, req) + ec := &export.EmailConfig{} + _ = copier.Copy(ec, req) - err = s.emailService.SetEmailConfig(ctx, oldEmailConfig) + err = s.emailService.SetEmailConfig(ctx, ec) if err != nil { return err } @@ -258,7 +253,7 @@ func (s *SiteInfoService) UpdateSMTPConfig(ctx context.Context, req *schema.Upda } go s.emailService.SendAndSaveCode(ctx, req.TestEmailRecipient, title, body, "", "") } - return + return nil } func (s *SiteInfoService) GetSeo(ctx context.Context) (resp *schema.SiteSeoReq, err error) { From 1a3c34b267d0383831c8d408a6c66c970f4864cd Mon Sep 17 00:00:00 2001 From: Fen Date: Tue, 6 Jun 2023 12:02:46 +0800 Subject: [PATCH 04/11] New Crowdin updates (#388) * New translations en_US.yaml (French) * New translations en_US.yaml (German) * New translations en_US.yaml (Chinese Simplified) * New translations en_US.yaml (Chinese Traditional) * New translations en_US.yaml (Welsh) * New translations en_US.yaml (French) * New translations en_US.yaml (Spanish) * New translations en_US.yaml (German) * New translations en_US.yaml (Italian) * New translations en_US.yaml (Japanese) * New translations en_US.yaml (Portuguese) * New translations en_US.yaml (Russian) * New translations en_US.yaml (Slovak) * New translations en_US.yaml (Turkish) * New translations en_US.yaml (Chinese Simplified) * New translations en_US.yaml (Chinese Traditional) * New translations en_US.yaml (Vietnamese) * New translations en_US.yaml (Indonesian) * New translations en_US.yaml (Welsh) * New translations en_US.yaml (French) * New translations en_US.yaml (Spanish) * New translations en_US.yaml (German) * New translations en_US.yaml (Italian) * New translations en_US.yaml (Japanese) * New translations en_US.yaml (Portuguese) * New translations en_US.yaml (Russian) * New translations en_US.yaml (Slovak) * New translations en_US.yaml (Turkish) * New translations en_US.yaml (Chinese Simplified) * New translations en_US.yaml (Chinese Traditional) * New translations en_US.yaml (Vietnamese) * New translations en_US.yaml (Indonesian) * New translations en_US.yaml (Welsh) * New translations en_US.yaml (Chinese Simplified) --- i18n/cy_GB.yaml | 517 +++++++++++++++++++++++++++++++++++++----------- i18n/de_DE.yaml | 429 +++++++++++++++++++++++++++++++++------- i18n/es_ES.yaml | 349 ++++++++++++++++++++++++++++---- i18n/fr_FR.yaml | 425 ++++++++++++++++++++++++++++++++------- i18n/id_ID.yaml | 351 ++++++++++++++++++++++++++++---- i18n/it_IT.yaml | 351 ++++++++++++++++++++++++++++---- i18n/ja_JP.yaml | 329 +++++++++++++++++++++++++++--- i18n/pt_PT.yaml | 331 ++++++++++++++++++++++++++++--- i18n/ru_RU.yaml | 327 +++++++++++++++++++++++++++--- i18n/sk_SK.yaml | 351 ++++++++++++++++++++++++++++---- i18n/tr_TR.yaml | 329 +++++++++++++++++++++++++++--- i18n/vi_VN.yaml | 327 +++++++++++++++++++++++++++--- i18n/zh_CN.yaml | 359 +++++++++++++++++++-------------- i18n/zh_TW.yaml | 369 +++++++++++++++++++++++++++++----- 14 files changed, 4429 insertions(+), 715 deletions(-) diff --git a/i18n/cy_GB.yaml b/i18n/cy_GB.yaml index 5b099723..126a77a6 100644 --- a/i18n/cy_GB.yaml +++ b/i18n/cy_GB.yaml @@ -11,25 +11,31 @@ backend: other: Anawdurdodedig. database_error: other: Gwall gweinydd data. + forbidden_error: + other: Forbidden. action: report: - other: Flag + other: Tynnu sylw edit: - other: Edit + other: Golygu delete: - other: Delete + other: Dileu close: - other: Close + other: Cau reopen: - other: Reopen + other: Ailagor + forbidden_error: + other: Forbidden. pin: - other: Pin + other: Pinio hide: - other: Unlist + other: Dad-restru unpin: - other: Unpin + other: Dadbinio show: - other: List + other: Rhestr + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Bod â'r pŵer llawn i gael mynediad i'r safle. moderator: other: Mae ganddo fynediad i bob post ac eithrio gosodiadau gweinyddol. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: Ebost password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: Nid yw e-bost a chyfrinair yn cyfateb. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: Ni allwch addasu eich cyfrinair. @@ -82,6 +145,8 @@ backend: other: Dylid gwirio e-bost. verify_url_expired: other: Mae'r URL wedi'i wirio gan e-bost wedi dod i ben, anfonwch yr e-bost eto. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Ffeil iaith heb ei chanfod. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Rank yn methu â bodloni'r amod. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Methodd handlen yr adroddiad. @@ -154,6 +221,10 @@ backend: no_permission: other: Dim caniatâd i adolygu. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: Nid yw e-bost a chyfrinair yn cyfateb. @@ -171,6 +242,10 @@ backend: other: Ni allwch addasu eich rôl. not_allowed_registration: other: Ar hyn o bryd nid yw'r safle ar agor i'w gofrestru + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Wedi methu darllen y ffurfwedd @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Fformat ffeil heb ei gefnogi. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: - other: sbam + other: spam desc: - other: Mae'r swydd hon yn hysbyseb, neu fandaliaeth. Nid yw'n ddefnyddiol nac yn berthnasol i'r pwnc cyfredol. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: anghwrtais neu sarhaus + other: rude or abusive desc: - other: Byddai person rhesymol yn gweld y cynnwys hwn yn amhriodol ar gyfer trafodaeth barchus. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: dyblyg + other: a duplicate desc: - other: Mae'r cwestiwn hwn wedi'i ofyn o'r blaen ac mae ganddo ateb yn barod. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: nid ateb + other: not an answer desc: - other: Postiwyd hwn fel ateb, ond nid yw'n ceisio ateb y cwestiwn. Mae'n bosibl y dylai fod yn olygiad, yn sylwad, yn gwestiwn arall, neu'n cael ei ddileu yn gyfan gwbl. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: nad oes ei angen mwyach + other: no longer needed desc: - other: Mae'r sylw hwn yn hen ffasiwn, yn sgyrsiol neu ddim yn berthnasol i'r post hwn. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: rhywbeth arall + other: something else desc: - other: Mae'r swydd hon angen sylw staff am reswm arall nad yw wedi'i restru uchod. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: atebodd modified: other: wedi newid + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Mae eich ateb wedi’i dileu your_comment_was_deleted: other: Mae eich sylw wedi’i dileu + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,20 +482,28 @@ ui: upgrade: Ateb Uwchraddio maintenance: Cynnal a Chadw Gwefan users: Defnyddwyr + oauth_callback: Processing http_404: Gwall HTTP 404 http_50X: Gwall HTTP 500 - http_403: HTTP Error 403 + http_403: Gwall HTTP 403 notifications: title: Hysbysiadau inbox: Mewnflwch achievement: Llwyddiannau all_read: Marciwch y cyfan fel wedi'i ddarllen show_more: Dangos mwy + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Mae'ch Cyfrif wedi'i Atal until_time: "Cafodd eich cyfrif ei atal tan {{ time }}." forever: Cafodd y defnyddiwr hwn ei atal am byth. end: Nid ydych yn arwain cymunedol. + contact_us: Contact us editor: blockquote: text: Dyfyniad @@ -412,64 +595,64 @@ ui: empty: Ni all URL fod yn wag. name: label: Disgrifiad - btn_cancel: Cancel - btn_confirm: Add + btn_cancel: Canslo + btn_confirm: Ychwanegu ordered_list: - text: Numbered List + text: Rhestr wedi'i rhifo unordered_list: - text: Bulleted List + text: Rhestr Bwled table: - text: Table - heading: Heading + text: Tabl + heading: Pennawd cell: Cell close_modal: - title: I am closing this post as... - btn_cancel: Cancel - btn_submit: Submit + title: Rwy'n cau'r post hon fel... + btn_cancel: Canslo + btn_submit: Cyflwyno remark: - empty: Cannot be empty. + empty: Ni all fod yn wag. msg: - empty: Please select a reason. + empty: Dewis rheswm. report_modal: - flag_title: I am flagging to report this post as... - close_title: I am closing this post as... - review_question_title: Review question - review_answer_title: Review answer - review_comment_title: Review comment - btn_cancel: Cancel - btn_submit: Submit + flag_title: Dwi'n tynnu sylw i adrodd y swydd hon fel... + close_title: Rwy'n cau'r post hon fel... + review_question_title: Adolygu cwestiwn + review_answer_title: Adolygu ateb + review_comment_title: Adolygu sylwad + btn_cancel: Canslo + btn_submit: Cyflwyno remark: - empty: Cannot be empty. + empty: Ni all fod yn wag. msg: - empty: Please select a reason. + empty: Dewis rheswm. tag_modal: - title: Create new tag + title: Creu tag newydd form: fields: display_name: - label: Display Name + label: Enw dangos msg: - empty: Display name cannot be empty. - range: Display name up to 35 characters. + empty: Ni all fod enw dangos yn wag. + range: Enw arddangos hyd at 35 nod. slug_name: label: URL Slug - desc: URL slug up to 35 characters. + desc: Slug URL hyd at 35 nod. msg: - empty: URL slug cannot be empty. - range: URL slug up to 35 characters. - character: URL slug contains unallowed character set. + empty: Ni all Slug URL fod yn wag. + range: Slug URL hyd at 35 nod. + character: Mae slug URL yn cynnwys set nodau na caniateir. desc: - label: Description - btn_cancel: Cancel - btn_submit: Submit - btn_post: Post new tag + label: Disgrifiad + btn_cancel: Canslo + btn_submit: Cyflwyno + btn_post: Post tag newydd tag_info: - created_at: Created - edited_at: Edited - history: History + created_at: Creuwyd + edited_at: Golygwyd + history: Hanes synonyms: - title: Synonyms - text: The following tags will be remapped to + title: Cyfystyron + text: Bydd y tagiau canlynol yn cael eu hail-fapio i empty: No synonyms found. btn_add: Add a synonym btn_edit: Edit @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -544,59 +727,59 @@ ui: placeholder: >- Briefly explain your changes (corrected spelling, fixed grammar, improved formatting) btn_save_edits: Save edits - btn_cancel: Cancel + btn_cancel: Canslo tags: - title: Tags + title: Tagiau sort_buttons: - popular: Popular - name: Name - newest: newest - button_follow: Follow - button_following: Following - tag_label: questions - search_placeholder: Filter by tag name - no_desc: The tag has no description. - more: More + popular: Poblogaidd + name: Enw + newest: mwyaf newydd + button_follow: Dilyn + button_following: Yn dilyn + tag_label: cwestiynau + search_placeholder: Hidlo yn ôl enw tag + no_desc: Nid oes gan y tag unrhyw ddisgrifiad. + more: Mwy ask: - title: Add Question - edit_title: Edit Question - default_reason: Edit question - similar_questions: Similar questions + title: Ychwanegu Cwestiwn + edit_title: Golygu Cwestiwn + default_reason: Golygu Cwestiwn + similar_questions: Cwestiynau tebyg form: fields: revision: - label: Revision + label: Diwygiad title: - label: Title - placeholder: Be specific and imagine you're asking a question to another person + label: Teitl + placeholder: Byddwch yn benodol a dychmygwch eich bod yn gofyn cwestiwn i berson arall msg: - empty: Title cannot be empty. - range: Title up to 150 characters + empty: Ni all teitl fod yn wag. + range: Teitl hyd at 20 nod body: - label: Body + label: Corff msg: - empty: Body cannot be empty. + empty: Ni all corff fod yn wag. tags: - label: Tags + label: Tagiau msg: - empty: Tags cannot be empty. + empty: Ni all tagiau fod yn wag. answer: - label: Answer + label: Ateb msg: - empty: Answer cannot be empty. + empty: Ni all ateb fod yn wag. edit_summary: - label: Edit Summary + label: Golygu Crynodeb placeholder: >- - Briefly explain your changes (corrected spelling, fixed grammar, improved formatting) - btn_post_question: Post your question - btn_save_edits: Save edits - answer_question: Answer your own question - post_question&answer: Post your question and answer + Eglurwch yn fyr eich newidiadau (sillafu wedi'i gywiro, gramadeg sefydlog, fformatio gwell) + btn_post_question: Post cweistiwn + btn_save_edits: Cadw golygiadau + answer_question: Atebwch eich cwestiwn eich hun + post_question&answer: Postiwch eich cwestiwn ac ateb tag_selector: - add_btn: Add tag - create_btn: Create new tag - search_tag: Search tag - hint: "Describe what your question is about, at least one tag is required." + add_btn: Ychwanegu tag + create_btn: Creu tag newydd + search_tag: Chwilio tag + hint: "Disgrifiwch beth yw eich cwestiwn, mae angen o leiaf un tag." no_result: No tags matched tag_required_text: Required tag (at least one) header: @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: Welcome to {{site_name}} login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email cannot be empty. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Cancel btn_update: Update email address send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Password Reset btn_name: Reset my password @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: asked - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderators x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Customize themes: Themes - css-html: CSS/HTML + css_html: CSS/HTML login: Login + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/de_DE.yaml b/i18n/de_DE.yaml index da16e6c0..435bcb98 100644 --- a/i18n/de_DE.yaml +++ b/i18n/de_DE.yaml @@ -11,25 +11,31 @@ backend: other: Nicht autorisiert. database_error: other: Datenbank-Fehler. + forbidden_error: + other: Forbidden. action: report: - other: Flag + other: Melden edit: - other: Edit + other: Bearbeiten delete: - other: Delete + other: Löschen close: - other: Close + other: Schließen reopen: - other: Reopen + other: Wieder öffnen + forbidden_error: + other: Forbidden. pin: - other: Pin + other: Anpinnen hide: - other: Unlist + other: Nicht Aufführen unpin: - other: Unpin + other: Loslösen show: - other: List + other: Liste + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Haben Sie die volle Berechtigung, auf die Website zuzugreifen. moderator: other: Hat Zugriff auf alle Beiträge außer Admin-Einstellungen. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: E-Mail password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: E-Mail und Passwort stimmen nicht überein. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: Sie können Ihr Passwort nicht ändern. @@ -82,6 +145,8 @@ backend: other: E-Mail muss überprüft werden. verify_url_expired: other: E-Mail-verifizierte URL ist abgelaufen, bitte senden Sie die E-Mail erneut. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Sprachdatei nicht gefunden. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Rang erfüllt die Bedingung nicht. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Berichtshandle fehlgeschlagen. @@ -154,6 +221,10 @@ backend: no_permission: other: Keine Berechtigung zum Revision. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: E-Mail und Passwort stimmen nicht überein. @@ -171,6 +242,10 @@ backend: other: Du kannst deine Rolle nicht ändern. not_allowed_registration: other: Derzeit ist die Website nicht zur Registrierung geöffnet + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Lesekonfiguration fehlgeschlagen @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Dateiformat nicht unterstützt. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: - other: Dieser Beitrag ist eine Werbung oder Vandalismus. Er ist nicht nützlich oder relevant für das aktuelle Thema. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: unhöflich oder beleidigend + other: rude or abusive desc: - other: Eine vernünftige Person würde diesen Inhalt für respektvoll diskutierten Diskurs für unangemessen halten. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: ein Duplikat + other: a duplicate desc: - other: Diese Frage ist bereits gestellt worden und hat bereits eine Antwort. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: keine Antwort + other: not an answer desc: - other: Dies wurde als Antwort veröffentlicht, aber es versucht nicht, die Frage zu beantworten. Es sollte möglicherweise eine Bearbeitung, ein Kommentar, eine andere Frage oder komplett gelöscht werden. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: nicht mehr benötigt + other: no longer needed desc: - other: Dieser Kommentar ist veraltet, Konversation oder nicht relevant für diesen Beitrag. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: etwas anderes + other: something else desc: - other: Dieser Beitrag benötigt die Aufmerksamkeit des Personals aus einem anderen Grund, der oben nicht aufgeführt ist. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: beantwortet modified: other: geändert + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Ihre Antwort wurde gelöscht your_comment_was_deleted: other: Ihr Kommentar wurde gelöscht + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,20 +482,28 @@ ui: upgrade: Antwort-Upgrade maintenance: Website-Pflege users: Benutzer + oauth_callback: Processing http_404: HTTP-Fehler 404 http_50X: HTTP-Fehler 500 - http_403: HTTP Error 403 + http_403: HTTP Fehler 403 notifications: title: Benachrichtigungen inbox: Posteingang achievement: Erfolge all_read: Alle als gelesen markieren show_more: Mehr Anzeigen + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Dein Konto wurde gesperrt until_time: "Ihr Konto wurde bis {{ time }} gesperrt." forever: Dieser Benutzer wurde für immer gesperrt. end: Du erfüllst keine Community-Richtlinie. + contact_us: Contact us editor: blockquote: text: Blockzitat @@ -527,7 +710,7 @@ ui: Verwenden Sie Kommentare, um weitere Informationen anzufordern oder Verbesserungen vorzuschlagen. Vermeiden Sie die Beantwortung von Fragen in Kommentaren. tip_answer: >- Verwenden Sie Kommentare, um anderen Benutzern zu antworten oder sie über Änderungen zu informieren. Wenn Sie neue Informationen hinzufügen, bearbeiten Sie Ihren Beitrag, anstatt ihn zu kommentieren. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Antwort bearbeiten default_reason: Antwort bearbeiten @@ -609,6 +792,8 @@ ui: logout: Ausloggen admin: Administrator review: Rezension + bookmark: Bookmarks + moderation: Moderation search: placeholder: Suchen footer: @@ -633,7 +818,6 @@ ui: msg: empty: Kann nicht leer sein. login: - page_title: Willkommen bei {{site_name}} login_to_continue: Melden Sie sich an, um fortzufahren info_sign: Sie haben noch kein Konto? <1>Melden Sie sich an info_login: Haben Sie bereits ein Konto? <1>Melden Sie sich an @@ -644,6 +828,7 @@ ui: msg: empty: Der Name darf nicht leer sein. range: Nennen Sie bis zu 30 Zeichen. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: E-Mail darf nicht leer sein. change_email: - page_title: Willkommen bei {{site_name}} btn_cancel: Stornieren btn_update: Aktualisiere email adresse send_success: >- @@ -672,6 +856,17 @@ ui: label: Neue e-mail msg: empty: E-Mail darf nicht leer sein. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Passwort zurücksetzen btn_name: Setze mein Passwort zurück @@ -690,6 +885,7 @@ ui: label: Bestätige neues Passwort settings: page_title: Einstellungen + goto_modify: Go to Modify nav: profile: Profil notification: Benachrichtigungen @@ -711,7 +907,7 @@ ui: avatar: label: Profilbild gravatar: Gravatar - gravatar_text: Sie können das Bild auf <1>gravatar.com ändern + gravatar_text: You can change image on custom: Benutzerdefiniert btn_refresh: Aktualisieren custom_text: Sie können Ihr Bild hochladen. @@ -738,8 +934,11 @@ ui: change_email_info: >- Wir haben eine E-Mail an diese Adresse gesendet. Bitte folgen Sie den Bestätigungsanweisungen. email: - label: E-Mail - msg: E-Mail-Feld darf nicht leer sein. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Passwort current_pass: label: Aktuelles Passwort @@ -756,6 +955,13 @@ ui: lang: label: Schnittstellensprache text: Sprache der Benutzeroberfläche. Es ändert sich, wenn Sie die Seite aktualisieren. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: erfolg aktualisieren update_password: Das Kennwort wurde erfolgreich geändert. @@ -766,8 +972,14 @@ ui: title: Verwandte Fragen btn: Frage hinzufügen answers: antworten + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: - action: Action + action: Aktion Asked: Fragte asked: fragte update: Geändert @@ -775,14 +987,15 @@ ui: Views: Gesehen Follow: Folgen Following: Folgend + follow_tip: Follow this question to receive notifications answered: beantwortet closed_in: Abgeschlossen in show_exist: Bestehende Frage anzeigen. - useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful - answer_useful: It is useful - answer_un_useful: It is not useful + useful: Nützlich + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful + answer_useful: Das ist nützlich + answer_un_useful: Das ist nicht nützlich answers: title: Antworten score: Punkte @@ -800,19 +1013,19 @@ ui: empty: Antwort darf nicht leer sein. characters: der Inhalt muss mindestens 6 Zeichen lang sein. tips: - header_1: Thanks for your answer - li1_1: Please be sure to answer the question. Provide details and share your research. - li1_2: Back up any statements you make with references or personal experience. - header_2: But avoid ... - li2_1: Asking for help, seeking clarification, or responding to other answers. + header_1: Vielen Dank für Ihre Antwort + li1_1: Bitte beantworten Sie die Frage. Geben Sie Details ein und teilen Sie Ihre Begründung/ Recherche. + li1_2: Begründen Sie Ihre Aussagen mit Referenzen oder persönlicher Erfahrung. + header_2: Aber vermeide... + li2_1: Bitte um Hilfe, um Klarstellung oder um Antwort auf andere Antworten. reopen: - confirm_btn: Reopen + confirm_btn: Wieder öffnen title: Diesen Beitrag erneut öffnen content: Möchten Sie wirklich wieder öffnen? pin: - title: Pin this post - content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists. - confirm_btn: Pin + title: Beitrag anheften + content: Sind Sie sicher, dass Sie global anpinnen möchten? Dieser Beitrag wird oben auf allen Beitragslisten erscheinen. + confirm_btn: Anheften delete: title: Diesen Beitrag löschen question: >- @@ -824,6 +1037,7 @@ ui: btns: confirm: Bestätigen cancel: Abbrechen + edit: Edit save: Speichern delete: Löschen login: Einloggen @@ -835,7 +1049,11 @@ ui: reject: Ablehnen skip: Überspringen discard_draft: Entwurf verwerfen - pinned: Pinned + pinned: Angeheftet + all: All + question: Question + answer: Answer + comment: Comment search: title: Suchergebnisse keywords: Schlüsselwörter @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Fehler... account_result: - page_title: Willkommen bei {{site_name}} success: Ihr neues Konto wird bestätigt; Sie werden auf die Startseite weitergeleitet. link: Weiter zur Startseite invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Akzeptiert answered: antwortete asked: fragte - upvote: positiv bewerten - downvote: ablehnen + downvoted: downvoted mod_short: Mod mod_long: Moderatoren x_reputation: ruf @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Der Name darf nicht leer sein. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Passwort text: >- @@ -1025,11 +1242,11 @@ ui: answers: antworten accepted: Akzeptiert page_error: - http_error: HTTP Error {{ code }} - desc_403: You don’t have permission to access this page. - desc_404: Unfortunately, this page doesn't exist. - desc_50X: The server encountered an error and could not complete your request. - back_home: Back to homepage + http_error: HTTP Fehler {{ code }} + desc_403: Sie haben keine Zugriffsberechtigung für diese Seite. + desc_404: Leider existiert diese Seite nicht. + desc_50X: Der Server ist auf einen Fehler gestoßen und konnte Ihre Anfrage nicht abschließen. + back_home: Zurück zur Startseite page_maintenance: desc: "Wir werden gewartet, wir sind bald wieder da." nav_menus: @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Anpassen themes: Themen - css-html: CSS/HTML + css_html: CSS/HTML login: Anmeldung + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Administrator @@ -1095,6 +1323,7 @@ ui: pending: Ausstehend completed: Abgeschlossen flagged: Gekennzeichnet + flagged_type: Flagged {{ type }} created: Erstellt action: Aktion review: Rezension @@ -1122,7 +1351,7 @@ ui: closed_name: schließen closed_desc: "Eine geschlossene Frage kann nicht beantworten, kann aber trotzdem bearbeiten, abstimmen und kommentieren." deleted_name: gelöschte - deleted_desc: Alle erworbenen und verlorenen Reputationen werden wiederhergestellt. + deleted_desc: This post will be deleted. btn_cancel: Abbrechen btn_submit: Senden btn_next: Weiter @@ -1243,9 +1472,6 @@ ui: label: Zeitzone msg: Die Zeitzone darf nicht leer sein. text: Wählen Sie eine Stadt in derselben Zeitzone wie Sie. - avatar: - label: Standard-Avatar - text: Für Benutzer ohne eigenen Avatar. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Fusszeile text: Dies wird vor eingefügt. + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Anmeldung membership: title: Mitgliedschaft label: Neuregistrierungen zulassen text: Deaktivieren Sie diese Option, um zu verhindern, dass jemand ein neues Konto erstellt. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Privatgelände label: Anmeldung erforderlich text: Nur angemeldete Benutzer können auf diese Community zugreifen. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: kann nicht leer sein invalid: ist ungültig btn_submit: Speichern not_found_props: "Erforderliche Eigenschaft {{ key }} nicht gefunden." + select: Select page_review: review: Rezension proposed: vorgeschlagen @@ -1397,10 +1678,10 @@ ui: closed: geschlossen reopened: wiedereröffnet created: erstellt - pin: pinned - unpin: unpinned - show: listed - hide: unlisted + pin: angeheftet + unpin: losgelöst + show: gelistet + hide: nicht gelistet title: "Geschichte für" tag_title: "Zeitleiste für" show_votes: "Stimmen anzeigen" @@ -1415,8 +1696,8 @@ ui: no_data: "Wir konnten nichts finden." users: title: Benutzer - users_with_the_most_reputation: Users with the highest reputation scores this week - users_with_the_most_vote: Users who voted the most this week + users_with_the_most_reputation: Benutzer mit den höchsten Reputationspunkten dieser Woche + users_with_the_most_vote: Benutzer, die diese Woche am meisten gestimmt haben staffs: Benutzer reputation: ruf votes: stimmen @@ -1427,8 +1708,8 @@ ui: discard_confirm: Möchten Sie Ihren Entwurf wirklich verwerfen? messages: post_deleted: Dieser Beitrag wurde gelöscht. - post_pin: This post has been pinned. - post_unpin: This post has been unpinned. - post_hide_list: This post has been hidden from list. - post_show_list: This post has been shown to list. - post_reopen: This post has been reopened. + post_pin: Dieser Beitrag wurde angepinnt. + post_unpin: Dieser Beitrag wurde losgelöst. + post_hide_list: Dieser Beitrag wurde aus der Liste verborgen. + post_show_list: Dieser Beitrag wird in der Liste angezeigt. + post_reopen: Dieser Beitrag wurde wieder geöffnet. diff --git a/i18n/es_ES.yaml b/i18n/es_ES.yaml index a7a894f3..daace7ed 100644 --- a/i18n/es_ES.yaml +++ b/i18n/es_ES.yaml @@ -11,6 +11,8 @@ backend: other: No autorizado. database_error: other: Error en el servidor de datos. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Dispone de acceso total al sitio web y sus ajustes. moderator: other: Dispone de acceso a todas las publicaciones pero no a los ajustes de administrador. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: Correo electrónico password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: Contraseña o correo incorrecto. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: No puede modificar su contraseña. @@ -82,6 +145,8 @@ backend: other: El correo debe ser verificado. verify_url_expired: other: La URL verificada del correo electrónico ha caducado. Por favor, vuelva a enviar el correo electrónico. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Archivo de idioma no encontrado. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: El rango no cumple la condición. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Error en el manejador del reporte. @@ -154,6 +221,10 @@ backend: no_permission: other: Sin permiso para revisar. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: Contraseña o correo incorrecto. @@ -171,6 +242,10 @@ backend: other: No puedes modificar tu propio rol. not_allowed_registration: other: Actualmente el sitio no acepta registros + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Lectura de configuración fallida @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Formato de archivo no soportado. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: - other: Esta publicación es un anuncio o vandalismo. No es útil ni relevante para el tema actual. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: grosero o abusivo + other: rude or abusive desc: - other: Una persona con juicio encontraría este contenido inapropiado para un discurso respuetuoso. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: duplicado + other: a duplicate desc: - other: La pregunta ya ha sido preguntada y resuelta previamente. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: no una respuesta + other: not an answer desc: - other: Esto fue publicado como una respuesta, pero no intenta responder a la pregunta. Posiblemente debería de ser una edición, un comentario, otra pregunta o directamente eliminado totalmente. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: ya no necesario + other: no longer needed desc: - other: El comentario está desactualizado, es altamente controvertido o ya no relevante para esta publicación. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: otra razón + other: something else desc: - other: Esta publicación requiere revisión por parte del gestor del sitio por alguna razón diferente a las anteriores. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: respondida modified: other: modificada + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Tu respuesta ha sido eliminada your_comment_was_deleted: other: Tu comentario ha sido eliminado + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -328,6 +503,7 @@ ui: upgrade: Actualización de Answer maintenance: Mantenimiento del sitio web users: Usuarios + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -337,11 +513,18 @@ ui: achievement: Logros all_read: Marcar todo como leído show_more: Mostrar más + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Tu cuenta ha sido suspendida until_time: "Tu cuenta ha sido suspendida hasta el {{ time }}." forever: Este usuario ha sido suspendido indefinidamente. end: Has infringido alguna norma de la comunidad. + contact_us: Contact us editor: blockquote: text: Cita @@ -548,7 +731,7 @@ ui: Utiliza los comentarios para pedir más información o sugerir mejoras y modificaciones. Evita responder preguntas en los comentarios. tip_answer: >- Usa comentarios para responder a otros usuarios o notificarles de cambios. Si estás añadiendo nueva información, edita tu publicación en vez de comentar. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Editar respuesta default_reason: Editar respuesta @@ -630,6 +813,8 @@ ui: logout: Cerrar sesión admin: Administrador review: Revisar + bookmark: Bookmarks + moderation: Moderation search: placeholder: Buscar footer: @@ -654,7 +839,6 @@ ui: msg: empty: No puede estar en blanco. login: - page_title: Bienvenido a {{site_name}} login_to_continue: Inicia sesión para continuar info_sign: '¿No tienes cuenta? <1>Regístrate' info_login: '¿Ya tienes una cuenta? <1>Inicia sesión' @@ -665,6 +849,7 @@ ui: msg: empty: El nombre no puede estar vacío. range: Nombre hasta 30 caracteres. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Correo electrónico msg: @@ -684,7 +869,6 @@ ui: msg: empty: El correo electrónico no puede estar vacío. change_email: - page_title: Bienvenido a {{site_name}} btn_cancel: Cancelar btn_update: Actualizar dirección de correo send_success: >- @@ -693,6 +877,17 @@ ui: label: Nuevo correo electrónico msg: empty: El correo electrónico no puede estar vacío. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Restablecimiento de Contraseña btn_name: Restablecer mi contraseña @@ -711,6 +906,7 @@ ui: label: Confirmar nueva contraseña settings: page_title: Ajustes + goto_modify: Go to Modify nav: profile: Perfil notification: Notificaciones @@ -732,7 +928,7 @@ ui: avatar: label: Imagen de perfil gravatar: Gravatar - gravatar_text: Puedes cambiar la imagen en <1>gravatar.com + gravatar_text: You can change image on custom: Propia btn_refresh: Actualizar custom_text: Puedes subir tu propia imagen. @@ -759,8 +955,11 @@ ui: change_email_info: >- Te hemos enviado un email a esa dirección. Por favor sigue las instrucciones de confirmación. email: - label: Correo electrónico - msg: El correo electrónico no puede estar vacío. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Contraseña current_pass: label: Contraseña actual @@ -777,6 +976,13 @@ ui: lang: label: Idioma de la Interfaz text: Idioma de la interfaz de usuario. Cambiará cuando actualices la página. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: actualización correcta update_password: Contraseña cambiada con éxito. @@ -787,6 +993,12 @@ ui: title: Preguntas relacionadas btn: Añadir pregunta answers: respuestas + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Preguntada @@ -796,12 +1008,13 @@ ui: Views: Visto Follow: Seguir Following: Siguiendo + follow_tip: Follow this question to receive notifications answered: respondida closed_in: Cerrado el show_exist: Mostrar una pregunta existente. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -849,6 +1062,7 @@ ui: btns: confirm: Confirmar cancel: Cancelar + edit: Edit save: Guardar delete: Eliminar login: Acceder @@ -861,6 +1075,10 @@ ui: skip: Omitir discard_draft: Descartar borrador pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Resultados de la búsqueda keywords: Palabras claves @@ -895,7 +1113,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Bienvenido a {{site_name}} success: Tu nueva cuenta ha sido confirmada, serás redirigido a la página de inicio. link: Continuar a la página de inicio invalid: >- @@ -956,8 +1173,7 @@ ui: accepted: Aceptada answered: respondida asked: preguntó - upvote: votar a favor - downvote: voto negativo + downvoted: downvoted mod_short: Modificación mod_long: Moderadores x_reputation: reputación @@ -1019,6 +1235,7 @@ ui: admin_name: label: Nombre msg: El nombre no puede estar vacío. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Contraseña text: >- @@ -1076,8 +1293,19 @@ ui: seo: ESTE customize: Personalizar themes: Temas - css-html: CSS/HTML + css_html: CSS/HTML login: Iniciar sesión + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Administrador @@ -1120,6 +1348,7 @@ ui: pending: Pendiente completed: Terminado flagged: Marcado + flagged_type: Flagged {{ type }} created: Creado action: Acción review: Revisar @@ -1147,7 +1376,7 @@ ui: closed_name: cerrada closed_desc: "Una pregunta cerrada no puede responder, pero aún puede editar, votar y comentar." deleted_name: eliminado - deleted_desc: Toda la reputación ganada y perdida será restaurada. + deleted_desc: This post will be deleted. btn_cancel: Cancelar btn_submit: Entregar btn_next: Próximo @@ -1268,9 +1497,6 @@ ui: label: Zona horaria msg: Timezone cannot be empty. text: Elija una ciudad en la misma zona horaria que usted. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1380,22 +1606,77 @@ ui: footer: label: Pie de página text: Esto se insertará antes de . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Iniciar sesión membership: title: Membresía label: Permitir registro de nuevas ceuntas text: Desactiva esto para evitar que cualquier persona pueda crear una cuenta. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Privado label: Inicio de sesión requerido text: Sólo usuarios con sesión iniciada pueden acceder a esta comunidad. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: no puede estar en blanco invalid: no es válido btn_submit: Guardar not_found_props: "La propiedad requerida {{ key }} no se ha encontrado." + select: Select page_review: review: Revisar proposed: propuesto diff --git a/i18n/fr_FR.yaml b/i18n/fr_FR.yaml index 8b320017..8649fd61 100644 --- a/i18n/fr_FR.yaml +++ b/i18n/fr_FR.yaml @@ -11,25 +11,31 @@ backend: other: Non autorisé. database_error: other: Erreur du serveur de données. + forbidden_error: + other: Forbidden. action: report: other: Flag edit: - other: Edit + other: Éditer delete: - other: Delete + other: Supprimer close: - other: Close + other: Fermer reopen: - other: Reopen + other: Rouvrir + forbidden_error: + other: Forbidden. pin: - other: Pin + other: Épingler hide: - other: Unlist + other: Délister unpin: - other: Unpin + other: Désépingler show: - other: List + other: Liste + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Possède tous les droits pour accéder au site. moderator: other: Possède les accès à tous les messages sauf aux paramètres d'administration. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: Email password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: L'email et le mot de passe ne correspondent pas. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: Vous ne pouvez pas modifier votre mot de passe. @@ -82,6 +145,8 @@ backend: other: L'adresse e-mail doit être vérifiée. verify_url_expired: other: L'URL de vérification de l'email a expiré, veuillez renvoyer l'email. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Fichier de langue non trouvé. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Le rang ne remplit pas la condition. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: La gestion du rapport a échoué. @@ -154,6 +221,10 @@ backend: no_permission: other: Vous n'êtes pas autorisé à Vérifier. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: L'email et le mot de passe ne correspondent pas. @@ -171,6 +242,10 @@ backend: other: Vous ne pouvez pas modifier votre rôle. not_allowed_registration: other: Actuellement, le site n'est pas ouvert aux inscriptions + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: La lecture de la configuration a échoué @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Format de fichier non supporté. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: - other: Ce message est une publicité ou un vandalisme. Il n'est pas utile ou pertinent pour le sujet actuel. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: grossier ou abusif + other: rude or abusive desc: - other: Une personne raisonnable jugerait que ce contenu est inapproprié pour un discours respectueux. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: doublon + other: a duplicate desc: - other: Cette question a déjà été posée auparavant et a déjà une réponse. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: ce n'est pas une réponse + other: not an answer desc: - other: Cela a été posté comme une réponse, mais il n'essaie pas de répondre à la question. Il devrait s'agir d'une modification, d'un commentaire, d'une autre question, ou d'une suppression totale. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: n’est plus nécessaire + other: no longer needed desc: - other: Ce commentaire est obsolète, conversationnel ou non pertinent pour ce post. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: quelque chose d'autre + other: something else desc: - other: Ce message nécessite l'attention du personnel pour une autre raison non listée ci-dessus. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: a répondu modified: other: modifié + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Votre réponse a bien été supprimée your_comment_was_deleted: other: Votre commentaire a été supprimé + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,20 +482,28 @@ ui: upgrade: Mise à jour d'Answer maintenance: Maintenance du site users: Utilisateurs + oauth_callback: Processing http_404: Erreur HTTP 404 http_50X: Erreur HTTP 500 - http_403: HTTP Error 403 + http_403: Erreur HTTP 403 notifications: title: Notifications inbox: Boîte de réception achievement: Succès all_read: Tout marquer comme lu show_more: Afficher plus + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Votre compte a été suspendu until_time: "Votre compte a été suspendu jusqu'au {{ time }}." forever: Cet utilisateur a été suspendu pour toujours. end: Vous ne respectez pas les directives de la communauté. + contact_us: Contact us editor: blockquote: text: Bloc de citation @@ -527,7 +710,7 @@ ui: Utilisez les commentaires pour demander plus d'informations ou suggérer des améliorations. Évitez de répondre aux questions dans les commentaires. tip_answer: >- Utilisez des commentaires pour répondre à d'autres utilisateurs ou leur signaler des modifications. Si vous ajoutez de nouvelles informations, modifiez votre message au lieu de commenter. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Modifier la réponse default_reason: Modifier la réponse @@ -609,6 +792,8 @@ ui: logout: Se déconnecter admin: Administration review: Vérifier + bookmark: Bookmarks + moderation: Moderation search: placeholder: Rechercher footer: @@ -633,7 +818,6 @@ ui: msg: empty: Ne peut pas être vide. login: - page_title: Bienvenue sur {{site_name}} login_to_continue: Connectez-vous pour continuer info_sign: Vous n'avez pas de compte ? <1>Inscrivez-vous info_login: Vous avez déjà un compte ? <1>Connectez-vous @@ -644,6 +828,7 @@ ui: msg: empty: Le nom ne peut pas être vide. range: Le nom doit contenir moins de 30 caractères. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: L'e-mail ne peut pas être vide. change_email: - page_title: Bienvenue sur {{site_name}} btn_cancel: Annuler btn_update: Mettre à jour l'adresse e-mail send_success: >- @@ -672,6 +856,17 @@ ui: label: Nouvel e-mail msg: empty: L'email ne peut pas être vide. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Réinitialiser le mot de passe btn_name: Réinitialiser mon mot de passe @@ -690,6 +885,7 @@ ui: label: Confirmer le nouveau mot de passe settings: page_title: Paramètres + goto_modify: Go to Modify nav: profile: Profil notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Image de profil gravatar: Gravatar - gravatar_text: Vous pouvez changer d'image sur <1>gravatar.com + gravatar_text: You can change image on custom: Personnaliser btn_refresh: Actualiser custom_text: Vous pouvez charger votre image. @@ -738,8 +934,11 @@ ui: change_email_info: >- Nous vous avons envoyé un mail à cette adresse. Merci de suivre les instructions. email: - label: E-mail - msg: L'e-mail ne peut pas être vide. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Mot de passe current_pass: label: Mot de passe actuel @@ -756,6 +955,13 @@ ui: lang: label: Langue de l'interface text: Langue de l'interface utilisateur. Cela changera lorsque vous rafraîchissez la page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: mise à jour effectuée update_password: Mot de passe changé avec succès. @@ -766,6 +972,12 @@ ui: title: Questions liées btn: Ajouter une question answers: réponses + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Demandé @@ -775,14 +987,15 @@ ui: Views: Consultée Follow: S’abonner Following: Abonné(s) + follow_tip: Follow this question to receive notifications answered: répondu closed_in: Fermé dans show_exist: Afficher la question existante. - useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful - answer_useful: It is useful - answer_un_useful: It is not useful + useful: Utile + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful + answer_useful: C'est utile + answer_un_useful: Ce n'est pas utile answers: title: Réponses score: Score @@ -800,19 +1013,19 @@ ui: empty: La réponse ne peut être vide. characters: le contenu doit comporter au moins 6 caractères. tips: - header_1: Thanks for your answer - li1_1: Please be sure to answer the question. Provide details and share your research. - li1_2: Back up any statements you make with references or personal experience. - header_2: But avoid ... - li2_1: Asking for help, seeking clarification, or responding to other answers. + header_1: Merci pour votre réponse + li1_1: N’oubliez pas de répondre à la question. Fournissez des détails et partagez vos recherches. + li1_2: Sauvegardez toutes les déclarations que vous faites avec des références ou une expérience personnelle. + header_2: Mais évitez... + li2_1: Demander de l’aide, chercher des éclaircissements ou répondre à d’autres réponses. reopen: - confirm_btn: Reopen + confirm_btn: Rouvrir title: Rouvrir ce message content: Êtes-vous sûr de vouloir rouvrir ? pin: - title: Pin this post - content: Are you sure you wish to pinned globally? This post will appear at the top of all post lists. - confirm_btn: Pin + title: Épingler cet article + content: Êtes-vous sûr de vouloir l'épingler globalement ? Ce message apparaîtra en haut de toutes les listes de messages. + confirm_btn: Épingler delete: title: Supprimer la publication question: >- @@ -824,6 +1037,7 @@ ui: btns: confirm: Confimer cancel: Annuler + edit: Edit save: Enregistrer delete: Supprimer login: Se connecter @@ -835,7 +1049,11 @@ ui: reject: Rejeter skip: Ignorer discard_draft: Abandonner le brouillon - pinned: Pinned + pinned: Épinglé + all: All + question: Question + answer: Answer + comment: Comment search: title: Résultats de la recherche keywords: Mots-clés @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Erreur... account_result: - page_title: Bienvenue sur {{site_name}} success: Votre nouveau compte est confirmé; vous serez redirigé vers la page d'accueil. link: Continuer vers la page d'accueil invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepté answered: a répondu asked: a demandé - upvote: voter pour - downvote: voter contre + downvoted: downvoted mod_short: Modérateurs mod_long: Modérateurs x_reputation: réputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Nom msg: Le nom ne peut pas être vide. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Mot de passe text: >- @@ -1025,11 +1242,11 @@ ui: answers: réponses accepted: Accepté page_error: - http_error: HTTP Error {{ code }} - desc_403: You don’t have permission to access this page. - desc_404: Unfortunately, this page doesn't exist. - desc_50X: The server encountered an error and could not complete your request. - back_home: Back to homepage + http_error: Erreur HTTP {{ code }} + desc_403: Vous n'avez pas la permission d'accéder à cette page. + desc_404: Malheureusement, cette page n'existe pas. + desc_50X: Le serveur a rencontré une erreur et n'a pas pu répondre à votre requête. + back_home: Retour à la page d'accueil page_maintenance: desc: "Nous sommes en maintenance, nous serons bientôt de retour." nav_menus: @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Personnaliser themes: Thèmes - css-html: CSS/HTML + css_html: CSS/HTML login: Se connecter + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: En attente completed: Complété flagged: Signalé + flagged_type: Flagged {{ type }} created: Créé action: Action review: Vérification @@ -1122,7 +1351,7 @@ ui: closed_name: fermé closed_desc: "Une question fermée ne peut pas être répondue, mais peut-être quand même modifiée, votée et commentée." deleted_name: supprimé - deleted_desc: Tous les points de réputation gagnés et perdus seront restaurés. + deleted_desc: This post will be deleted. btn_cancel: Annuler btn_submit: Valider btn_next: Suivant @@ -1243,9 +1472,6 @@ ui: label: Fuseau Horaire msg: Le fuseau horaire ne peut pas être vide. text: Choisissez une ville dans le même fuseau horaire que vous. - avatar: - label: Avatar par défaut - text: Pour les utilisateurs sans avatar personnalisé. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: Ceci va être inséré avant . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Se connecter membership: title: Adhésion label: Autoriser les inscriptions text: Désactivez pour empêcher quiconque de créer un nouveau compte. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Privé label: Connexion requise text: Seuls les utilisateurs connectés peuvent accéder à cette communauté. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optionnel) empty: ne peut pas être vide invalid: est invalide btn_submit: Sauvegarder not_found_props: "La propriété requise {{ key }} est introuvable." + select: Select page_review: review: Vérifier proposed: proposé @@ -1397,10 +1678,10 @@ ui: closed: fermé reopened: réouvert created: créé - pin: pinned - unpin: unpinned - show: listed - hide: unlisted + pin: épinglé + unpin: non épinglé + show: listé + hide: non listé title: "Historique de" tag_title: "Chronologie de" show_votes: "Afficher les votes" @@ -1415,8 +1696,8 @@ ui: no_data: "Nous n'avons rien pu trouver." users: title: Utilisateurs - users_with_the_most_reputation: Users with the highest reputation scores this week - users_with_the_most_vote: Users who voted the most this week + users_with_the_most_reputation: Utilisateurs ayant le score de réputation le plus élevé cette semaine + users_with_the_most_vote: Utilisateurs qui ont le plus voté cette semaine staffs: Staff de la communauté reputation: réputation votes: votes @@ -1427,8 +1708,8 @@ ui: discard_confirm: Êtes-vous sûr de vouloir abandonner ce brouillon ? messages: post_deleted: Ce message a été supprimé. - post_pin: This post has been pinned. - post_unpin: This post has been unpinned. - post_hide_list: This post has been hidden from list. - post_show_list: This post has been shown to list. - post_reopen: This post has been reopened. + post_pin: Ce message a été épinglé. + post_unpin: Ce message a été déépinglé. + post_hide_list: Ce message a été masqué de la liste. + post_show_list: Ce message a été affiché dans la liste. + post_reopen: Ce message a été rouvert. diff --git a/i18n/id_ID.yaml b/i18n/id_ID.yaml index 8fd9b5da..6a2f21eb 100644 --- a/i18n/id_ID.yaml +++ b/i18n/id_ID.yaml @@ -11,6 +11,8 @@ backend: other: Tidak diizinkan. database_error: other: Kesalahan data server. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Memiliki hak penuh untuk mengakses website. moderator: other: Memiliki hak penuh pada semua pertanyaan, kecuali pengaturan Admin. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: Email password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: Email dan kata sandi tidak cocok. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: You cannot modify your password. @@ -82,6 +145,8 @@ backend: other: Email harus terverifikasi. verify_url_expired: other: URL verifikasi email telah kadaluwarsa, silahkan kirim ulang. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Bahasa tidak ditemukan. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Peringkat gagal memenuhi syarat. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Laporan penanganan gagal. @@ -154,6 +221,10 @@ backend: no_permission: other: Tidak memiliki izin untuk merevisi. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: Email dan kata sandi tidak cocok. @@ -171,6 +242,10 @@ backend: other: Anda tidak dapat memodifikasi role anda sendiri. not_allowed_registration: other: Website tidak membuka pendaftaran baru untuk saat ini + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Gagal membaca konfigurasi @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Unsupported file format. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: - other: Spam + other: spam desc: - other: Posting ini adalah iklan, atau vandalisme. Tidak berguna atau relevan dengan topik saat ini. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: kasar atau kejam + other: rude or abusive desc: - other: Orang yang berakal sehat akan menganggap konten ini tidak pantas untuk wacana yang terhormat. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: Duplikat + other: a duplicate desc: - other: Pertanyaan ini telah ditanyakan sebelumnya dan sudah ada jawabannya. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: bukan jawaban + other: not an answer desc: - other: Ini diposting sebagai jawaban, tetapi tidak menjawab pertanyaan. Itu mungkin berupa suntingan, komentar, pertanyaan lain, atau telah dihapus sepenuhnya. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: tidak Dibutuhkan Lagi + other: no longer needed desc: - other: Komentar ini kedaluwarsa, sesuai percakapan, atau tidak relevan dengan postingan ini. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: lainnya + other: something else desc: - other: Posting ini membutuhkan perhatian staf karena alasan lain yang tidak tercantum di atas. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: dijawab modified: other: dimodifikasi + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Jawabanmu telah dihapus your_comment_was_deleted: other: Komentarmu telah dihapus + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Meng-upgrade Answer maintenance: Pemeliharaan Website users: Pengguna + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Pencapaian all_read: Tandai Semua Jika Sudah Dibaca show_more: Tampilkan lebih banyak + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Akun Anda telah ditangguhkan until_time: "Akun anda ditangguhkan sampai {{ time }}." forever: Pengguna ini ditangguhkan selamanya. end: Anda tidak sesuai dengan syarat pedoman komunitas. + contact_us: Contact us editor: blockquote: text: Blockquote @@ -527,7 +710,7 @@ ui: Gunakan komentar untuk meminta informasi lebih lanjut atau menyarankan perbaikan. Hindari menjawab pertanyaan di komentar. tip_answer: >- Gunakan komentar untuk membalas pengguna lain atau memberi tahu mereka tentang perubahan. Jika Anda menambahkan informasi baru, cukup edit posting Anda. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Sunting jawaban default_reason: Edit jawaban @@ -609,6 +792,8 @@ ui: logout: Keluar admin: Admin review: Ulasan + bookmark: Bookmarks + moderation: Moderation search: placeholder: Cari footer: @@ -633,7 +818,6 @@ ui: msg: empty: Tidak bisa kosong. login: - page_title: Selamat datang ke {{site_name}} login_to_continue: Masuk untuk melanjutkan info_sign: Belum punya akun? <1>Daftar info_login: Sudah punya akun? <1>Masuk @@ -644,6 +828,7 @@ ui: msg: empty: Nama tidak boleh kosong. range: Nama harus menunjukkan 1-30 karakter. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email tidak boleh kosong. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Batal btn_update: Perbarui alamat email send_success: >- @@ -672,6 +856,17 @@ ui: label: Email Baru msg: empty: Email tidak boleh kosong. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Atur ulang kata sandi btn_name: Atur ulang kata sandi saya @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Bahasa Antarmuka text: Bahasa antarmuka pengguna. Itu akan berubah ketika Anda me-refresh halaman. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: pembaruan sukses update_password: Kata sandi berhasil diganti. @@ -766,6 +972,12 @@ ui: title: Pertanyaan Terkait btn: Tambahkan pertanyaan answers: jawaban + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Ditanyakan @@ -775,12 +987,13 @@ ui: Views: Dilihat Follow: Ikuti Following: Mengikuti + follow_tip: Follow this question to receive notifications answered: dijawab closed_in: Ditutup pada show_exist: Gunakan pertanyaan yang sudah ada. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Konfirmasi cancel: Batal + edit: Edit save: Simpan delete: Hapus login: Masuk @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Diterima answered: dijawab asked: ditanyakan - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderator x_reputation: reputasi @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Kostumisasi themes: Tema - css-html: CSS/HTML + css_html: CSS/HTML login: Masuk + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/it_IT.yaml b/i18n/it_IT.yaml index 830f9d1e..9e0e5252 100644 --- a/i18n/it_IT.yaml +++ b/i18n/it_IT.yaml @@ -11,6 +11,8 @@ backend: other: Non autorizzato database_error: other: Errore server dati + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Avere il pieno potere di accedere al sito. moderator: other: Ha accesso a tutti i post tranne le impostazioni di amministratore. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: E-mail password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: Email o password errati error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: You cannot modify your password. @@ -82,6 +145,8 @@ backend: other: email deve essere verificata verify_url_expired: other: l'url di verifica email è scaduto, si prega di reinviare la email + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: lingua non trovata @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Condizioni non valide per il grado vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Gestione del report fallita @@ -154,6 +221,10 @@ backend: no_permission: other: Nessun permesso per la revisione. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: Email o password errati @@ -171,6 +242,10 @@ backend: other: Non puoi modificare il tuo ruolo. not_allowed_registration: other: Al momento il sito non è aperto per la registrazione + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Read config failed @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Unsupported file format. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: - other: posta indesiderata + other: spam desc: - other: Questo articolo è una pubblicità o vandalismo. Non è utile o rilevante all'argomento corrente. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: scortese o violento + other: rude or abusive desc: - other: Una persona ragionevole trova questo contenuto inappropriato a un discorso rispettoso. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: duplicato + other: a duplicate desc: - other: Questa domanda è già stata posta e ha già una risposta. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: non è una risposta + other: not an answer desc: - other: Questo è stato pubblicato come una risposta, ma non tenta di rispondere alla domanda. Dovrebbe forse essere una modifica, un commento, un'altra domanda, o cancellata del tutto. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: non più necessario + other: no longer needed desc: - other: Questo commento è obsoleto, conversazionale o non pertinente per questo post. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: altro + other: something else desc: - other: Questo articolo richiede una supervisione dello staff per altre ragioni non listate sopra. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: answered modified: other: modified + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: la tua risposta è stata rimossa your_comment_was_deleted: other: il tuo commento è stato rimosso + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Answer Upgrade maintenance: Website Maintenance users: Users + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Achievements all_read: Mark all as read show_more: Show more + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Your Account has been Suspended until_time: "Your account was suspended until {{ time }}." forever: This user was suspended forever. end: You don't meet a community guideline. + contact_us: Contact us editor: blockquote: text: Blockquote @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: Welcome to {{site_name}} login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email cannot be empty. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Cancel btn_update: Update email address send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Password Reset btn_name: Reset my password @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: asked - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderators x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Customize themes: Themes - css-html: CSS/HTML + css_html: CSS/HTML login: Login + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/ja_JP.yaml b/i18n/ja_JP.yaml index 41b9733c..424bda7a 100644 --- a/i18n/ja_JP.yaml +++ b/i18n/ja_JP.yaml @@ -11,6 +11,8 @@ backend: other: 権限がありません。 database_error: other: データサーバーエラー + forbidden_error: + other: Forbidden. action: report: other: フラグ @@ -22,6 +24,8 @@ backend: other: 閉じる reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Have the full power to access the site. moderator: other: Has access to all posts except admin settings. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: メールアドレス password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: メールアドレスとパスワードが一致しません。 error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: パスワードは変更できません。 @@ -82,6 +145,8 @@ backend: other: 電子メールを確認する必要があります。 verify_url_expired: other: メール認証済みURLの有効期限が切れています。メールを再送信してください。 + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: 言語ファイルが見つかりません。 @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: ランクは条件を満たしていません。 vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: レポートの処理に失敗しました。 @@ -154,6 +221,10 @@ backend: no_permission: other: No permission to Revision. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: メールアドレスとパスワードが一致しません。 @@ -171,6 +242,10 @@ backend: other: You cannot modify your role. not_allowed_registration: other: Currently the site is not open for registration + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Read config failed @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Unsupported file format. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: - other: スパム + other: spam desc: other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. - rude: + rude_or_abusive: name: other: rude or abusive desc: other: A reasonable person would find this content inappropriate for respectful discourse. - duplicate: + a_duplicate: name: other: a duplicate desc: other: This question has been asked before and already has an answer. - not_answer: + placeholder: + other: Enter the existing question link + not_a_answer: name: other: not an answer desc: other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. - not_need: + no_longer_needed: name: other: no longer needed desc: other: This comment is outdated, conversational or not relevant to this post. - other: + something: name: other: something else desc: other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: 回答済み modified: other: 修正済み + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Your answer has been deleted your_comment_was_deleted: other: Your comment has been deleted + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Answer Upgrade maintenance: Website Maintenance users: ユーザー + oauth_callback: Processing http_404: HTTP エラー 404 http_50X: HTTP エラー 500 http_403: HTTP エラー 403 @@ -316,11 +492,18 @@ ui: achievement: Achievements all_read: Mark all as read show_more: もっと見る + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: あなたのアカウントは停止されています。 until_time: "あなたのアカウントは {{ time }} まで停止されました。" forever: このユーザーは永久に停止されました。 end: You don't meet a community guideline. + contact_us: Contact us editor: blockquote: text: 引用 @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: '{{site_name}} へようこそ' login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: メールアドレス msg: @@ -663,7 +848,6 @@ ui: msg: empty: メールアドレスを入力してください。 change_email: - page_title: '{{site_name}} へようこそ' btn_cancel: キャンセル btn_update: メールアドレスを更新 send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: パスワード再設定 btn_name: パスワードをリセット @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: メールアドレス - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: パスワード current_pass: label: 現在のパスワード @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: '{{site_name}} へようこそ' success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: 質問済み - upvote: 賛成 - downvote: 反対票を投じる + downvoted: downvoted mod_short: Mod mod_long: モデレーター x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: パスワード text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: カスタマイズ themes: テーマ - css-html: CSS/HTML + css_html: CSS/HTML login: ログイン + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: 管理者 @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: 保存 not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/pt_PT.yaml b/i18n/pt_PT.yaml index 2ed0c03a..7721dedc 100644 --- a/i18n/pt_PT.yaml +++ b/i18n/pt_PT.yaml @@ -11,6 +11,8 @@ backend: other: Não autorizado. database_error: other: Erro no servidor de dados. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Possui acesso total ao site. moderator: other: Possui acesso a todas as postagens exceto às configurações de usuários. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: E-mail password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: O e-mail e a palavra-passe não coincidem. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: You cannot modify your password. @@ -82,6 +145,8 @@ backend: other: O e-mail deve ser verificado. verify_url_expired: other: O e-mail verificado URL expirou, por favor, reenvie o e-mail. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Arquivo de idioma não encontrado. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: O nível não consegue satisfazer a condição. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Falha ao manusear relatório. @@ -154,6 +221,10 @@ backend: no_permission: other: Sem permissão de modificação. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: O e-mail e a senha não conferem. @@ -171,6 +242,10 @@ backend: other: Você não pode modificar a sua função. not_allowed_registration: other: O site não está aberto para novos registros + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Falha ao ler configuração @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Formato de arquivo não suportado. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: - other: Essa postagem é um anúncio, ou vandalismo. Não é útil ou relevante para o tópico atual. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: rude ou abusivo + other: rude or abusive desc: other: A reasonable person would find this content inappropriate for respectful discourse. - duplicate: + a_duplicate: name: other: a duplicate desc: other: This question has been asked before and already has an answer. - not_answer: + placeholder: + other: Enter the existing question link + not_a_answer: name: other: not an answer desc: other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. - not_need: + no_longer_needed: name: other: no longer needed desc: other: This comment is outdated, conversational or not relevant to this post. - other: + something: name: other: something else desc: other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: answered modified: other: modified + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Your answer has been deleted your_comment_was_deleted: other: Your comment has been deleted + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Atualização do Answer maintenance: Manutenção do website users: Usuários + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Conquistas all_read: Marcar todos como lida show_more: Mostrar mais + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: A sua conta foi suspensa until_time: "Sua conta está suspensa até {{ time }}." forever: Este usuário foi suspenso permanentemente. end: Você não atende a uma diretriz da comunidade. + contact_us: Contact us editor: blockquote: text: Bloco de citação @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: Welcome to {{site_name}} login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email cannot be empty. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Cancel btn_update: Update email address send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Password Reset btn_name: Reset my password @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: asked - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderators x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Customize themes: Themes - css-html: CSS/HTML + css_html: CSS/HTML login: Login + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/ru_RU.yaml b/i18n/ru_RU.yaml index f5a7be38..f6a79139 100644 --- a/i18n/ru_RU.yaml +++ b/i18n/ru_RU.yaml @@ -11,6 +11,8 @@ backend: other: Авторизация не выполнена. database_error: other: Ошибка сервера данных. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Имейте все полномочия для доступа к сайту. moderator: other: Имеет доступ ко всем сообщениям, кроме настроек администратора. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: Эл. почта password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: Неверное имя пользователя или пароль. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: You cannot modify your password. @@ -82,6 +145,8 @@ backend: other: Адрес электронной почты должен быть подтвержден. verify_url_expired: other: Срок действия подтверждённого адреса электронной почты истек, пожалуйста, отправьте письмо повторно. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Языковой файл не найден. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Ранг не соответствует условию. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Не удалось обработать отчет. @@ -154,6 +221,10 @@ backend: no_permission: other: Нет прав на ревизию. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: Email and password do not match. @@ -171,6 +242,10 @@ backend: other: You cannot modify your role. not_allowed_registration: other: Currently the site is not open for registration + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Read config failed @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Unsupported file format. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. - rude: + rude_or_abusive: name: other: rude or abusive desc: other: A reasonable person would find this content inappropriate for respectful discourse. - duplicate: + a_duplicate: name: other: a duplicate desc: other: This question has been asked before and already has an answer. - not_answer: + placeholder: + other: Enter the existing question link + not_a_answer: name: other: not an answer desc: other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. - not_need: + no_longer_needed: name: other: no longer needed desc: other: This comment is outdated, conversational or not relevant to this post. - other: + something: name: other: something else desc: other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: answered modified: other: modified + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Your answer has been deleted your_comment_was_deleted: other: Your comment has been deleted + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Обновить ответ maintenance: Обслуживание сайта users: Пользователи + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Достижения all_read: Отметить всё как прочитанное show_more: Показать еще + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Ваш аккаунт заблокирован until_time: "Ваша учетная запись была заблокирована до {{ time }}." forever: Этот пользователь был навсегда заблокирован. end: Вы не соответствуете правилам сообщества. + contact_us: Contact us editor: blockquote: text: Цитата @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: Welcome to {{site_name}} login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email cannot be empty. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Cancel btn_update: Update email address send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Password Reset btn_name: Reset my password @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: asked - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderators x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Customize themes: Themes - css-html: CSS/HTML + css_html: CSS/HTML login: Login + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/sk_SK.yaml b/i18n/sk_SK.yaml index 8084368c..1c376987 100644 --- a/i18n/sk_SK.yaml +++ b/i18n/sk_SK.yaml @@ -11,6 +11,8 @@ backend: other: Neoprávnené. database_error: other: Chyba dátového servera. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Má plnú moc a prístup ku stránke. moderator: other: Má prístup ku všetkým príspevkom okrem nastavenia správcu. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: E-mail password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: E-mail a heslo sa nezhodujú. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: Svoje heslo upraviť. @@ -82,6 +145,8 @@ backend: other: E-mail by sa mal overiť. verify_url_expired: other: Platnosť overenej adresy URL e-mailu vypršala, pošlite e-mail znova. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Jazykový súbor sa nenašiel. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Poradie nespĺňa podmienku. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Spracovanie prehľadu zlyhalo. @@ -154,6 +221,10 @@ backend: no_permission: other: Žiadne povolenie na revíziu. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: E-mail a heslo sa nezhodujú. @@ -171,6 +242,10 @@ backend: other: Svoju rolu nemôžete zmeniť. not_allowed_registration: other: V súčasnosti nie je stránka otvorená na registráciu + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Read Config zlyhal @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Nepodporovaný formát súboru. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: - other: nevyžiadaná pošta + other: spam desc: - other: Tento príspevok je reklama alebo vandalizmus. Nie je to užitočné ani relevantné pre aktuálnu tému. - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: hrubý alebo urážlivý + other: rude or abusive desc: - other: Rozumný človek by považoval tento obsah za nevhodný na zdvorilý prejav. - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: duplikát + other: a duplicate desc: - other: Táto otázka už bola položená a už má odpoveď. - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: nie odpoveď + other: not an answer desc: - other: Toto bolo uverejnené ako odpoveď, ale nepokúša sa odpovedať na otázku. Možno by to mala byť úprava, komentár, iná otázka, alebo úplne vymazané. - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: už nie sú potrebné + other: no longer needed desc: - other: Tento komentár je zastaraný, konverzačný alebo nesúvisí s týmto príspevkom. - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: niečo iné + other: something else desc: - other: Tento príspevok si vyžaduje pozornosť zamestnancov z iného dôvodu, ktorý nie je uvedený vyššie. + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: zodpovedaný modified: other: upravený + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Vaša odpoveď bola odstránená your_comment_was_deleted: other: Váš komentár bol odstránený + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Answer Upgrade maintenance: Údržba webových stránok users: Užívatelia + oauth_callback: Processing http_404: HTTP chyba 404 http_50X: HTTP chyba 403 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Úspechy all_read: Označiť všetko ako prečítané show_more: Zobraziť viac + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Váš účet bol pozastavený until_time: "Váš účet bol pozastavený do {{ time }}." forever: Tento používateľ bol navždy pozastavený. end: Nespĺňate pokyny pre komunitu. + contact_us: Contact us editor: blockquote: text: Blockquote @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Uprav odpoveď default_reason: Uprav odpoveď @@ -609,6 +792,8 @@ ui: logout: Odhlásiť sa admin: Správca review: Preskúmanie + bookmark: Bookmarks + moderation: Moderation search: placeholder: Vyhľadávanie footer: @@ -633,7 +818,6 @@ ui: msg: empty: Nemôže byť prázdny. login: - page_title: Vitajte na stránke {{site_name}} login_to_continue: Pre pokračovanie sa prihláste info_sign: Nemáte účet? <1>Sign up info_login: Máte už účet? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Prihlasovacie meno nemôže byť prázdne. range: Prihlasovacie meno nesmie mať viac ako 30 znakov. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: E-mail msg: @@ -663,7 +848,6 @@ ui: msg: empty: E-mail nemôže byť prázdny. change_email: - page_title: Vitajte na stránke {{site_name}} btn_cancel: Zrušiť btn_update: Aktualizovať e-mailovú adresu send_success: >- @@ -672,6 +856,17 @@ ui: label: Nový e-mail msg: empty: E-mail nemôže byť prázdny. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Resetovanie hesla btn_name: Obnoviť heslo @@ -690,6 +885,7 @@ ui: label: Potvrďte nové heslo settings: page_title: Nastavenia + goto_modify: Go to Modify nav: profile: Profil notification: Oznámenia @@ -711,7 +907,7 @@ ui: avatar: label: Profilová fotka gravatar: Gravatar - gravatar_text: Obrázok môžete zmeniť na <1>gravatar.com + gravatar_text: You can change image on custom: Vlastný btn_refresh: Obnoviť custom_text: Môžete nahrať svoj obrázok. @@ -738,8 +934,11 @@ ui: change_email_info: >- Na túto adresu sme poslali e-mail. Postupujte podľa pokynov na potvrdenie. email: - label: E-mail - msg: E-mail nemôže byť prázdny. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Heslo current_pass: label: Aktuálne heslo @@ -756,6 +955,13 @@ ui: lang: label: Jazyk rozhrania text: Jazyk používateľského rozhrania. Zmení sa pri obnove stránky. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: aktualizácia úspešna update_password: Heslo bolo úspešne zmenené. @@ -766,6 +972,12 @@ ui: title: Súvisiace otázky btn: Pridať otázku answers: odpovede + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Opýtané @@ -775,12 +987,13 @@ ui: Views: Videné Follow: Sledovať Following: Sledované + follow_tip: Follow this question to receive notifications answered: zodpovedaný closed_in: Uzatvorené show_exist: Ukázať existujúcu otázku. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Potvrdiť cancel: Zrušiť + edit: Edit save: Uložiť delete: Vymazať login: Prihlásiť sa @@ -836,6 +1050,10 @@ ui: skip: Preskočiť discard_draft: Zahodiť koncept pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Výsledky vyhľadávania keywords: Kľúčové slová @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Chyba... account_result: - page_title: Vitajte na stránke {{site_name}} success: Váš nový účet je potvrdený; Budete presmerovaný na domovskú stránku. link: Pokračovať na domovskú stránku invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Prijaté answered: zodpovedané asked: opýtané - upvote: hlasovať za - downvote: hlasovať proti + downvoted: downvoted mod_short: mod mod_long: Moderátori x_reputation: reputácia @@ -994,6 +1210,7 @@ ui: admin_name: label: Meno msg: Meno nemôže byť prázdne. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Heslo text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Prispôsobiť themes: Témy - css-html: CSS/HTML + css_html: CSS/HTML login: Prihlásiť sa + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Administrátor @@ -1095,6 +1323,7 @@ ui: pending: Prebiehajúce completed: Dokončené flagged: Označené + flagged_type: Flagged {{ type }} created: Vytvorené action: Akcia review: Preskúmanie @@ -1122,7 +1351,7 @@ ui: closed_name: Uzavreté closed_desc: "Na uzavretú otázku nemôžete odpovedať, ale stále ju môžete upravovať, hlasovať a komentovať." deleted_name: Vymazané - deleted_desc: Získaná a stratená reputácia sa obnoví. + deleted_desc: This post will be deleted. btn_cancel: Zrušiť btn_submit: Odovdať btn_next: Ďalšie @@ -1243,9 +1472,6 @@ ui: label: Časové pásmo msg: Časové pásmo nemôže byť prázdne. text: Vyberte si mesto v rovnakom časovom pásme ako vy. - avatar: - label: Predvolený avatar - text: Pre používateľov bez vlastného avatara. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Päta text: Toto sa vloží pred . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Prihlásenie membership: title: Členstvo label: Povoliť nové registrácie text: Vypnúť, aby sa zabránilo vytvorenie nového účtu hocikým. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Súkromné label: Vyžaduje sa prihlásenie text: Do tejto komunity majú prístup iba prihlásení používatelia + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (voliteľné) empty: nemôže byť prázdne invalid: je neplatné btn_submit: Uložiť not_found_props: "Požadovaná vlastnosť {{ key }} nebola nájdená." + select: Select page_review: review: Preskúmanie proposed: navrhované diff --git a/i18n/tr_TR.yaml b/i18n/tr_TR.yaml index 0cb69e65..c5077ed4 100644 --- a/i18n/tr_TR.yaml +++ b/i18n/tr_TR.yaml @@ -11,6 +11,8 @@ backend: other: İzin yok. database_error: other: Veri sunucu hatası. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Have the full power to access the site. moderator: other: Has access to all posts except admin settings. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: E-Posta password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: E-Posta ve parola eşleşmiyor. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: You cannot modify your password. @@ -82,6 +145,8 @@ backend: other: E-Posta doğrulanmalı. verify_url_expired: other: Email verified URL has expired, please resend the email. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Dil dosyası bulunamadı. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Rank fail to meet the condition. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Rapor işlenemedi. @@ -154,6 +221,10 @@ backend: no_permission: other: Revizyon izni yok. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: E-Posta ve parola eşleşmiyor. @@ -171,6 +242,10 @@ backend: other: Kendi rolünüzü değiştiremezsiniz. not_allowed_registration: other: Site şu anda kayıt olmaya açık değil + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Read config failed @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Desteklenmeyen dosya formatı. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. - rude: + rude_or_abusive: name: other: rude or abusive desc: other: A reasonable person would find this content inappropriate for respectful discourse. - duplicate: + a_duplicate: name: other: a duplicate desc: other: This question has been asked before and already has an answer. - not_answer: + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: cevap değil + other: not an answer desc: other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. - not_need: + no_longer_needed: name: other: no longer needed desc: other: This comment is outdated, conversational or not relevant to this post. - other: + something: name: other: something else desc: other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: answered modified: other: modified + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Cevabınız silindi your_comment_was_deleted: other: Yorumunuz silindi + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Answer Upgrade maintenance: Website Bakımı users: Kullanıcılar + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Başarılar all_read: Tümünü okundu olarak işaretle show_more: Daha fazla göster + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Hesabınız Askıya Alındı until_time: "Your account was suspended until {{ time }}." forever: This user was suspended forever. end: You don't meet a community guideline. + contact_us: Contact us editor: blockquote: text: Alıntı @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: Welcome to {{site_name}} login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email cannot be empty. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Cancel btn_update: Update email address send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Password Reset btn_name: Reset my password @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: asked - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderators x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Customize themes: Themes - css-html: CSS/HTML + css_html: CSS/HTML login: Login + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/vi_VN.yaml b/i18n/vi_VN.yaml index ba414c65..4c13b065 100644 --- a/i18n/vi_VN.yaml +++ b/i18n/vi_VN.yaml @@ -11,6 +11,8 @@ backend: other: Unauthorized. database_error: other: Data server error. + forbidden_error: + other: Forbidden. action: report: other: Flag @@ -22,6 +24,8 @@ backend: other: Close reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: Have the full power to access the site. moderator: other: Has access to all posts except admin settings. + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: Email password: @@ -52,6 +112,9 @@ backend: email_or_password_wrong_error: other: Email and password do not match. error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: other: You cannot modify your password. @@ -82,6 +145,8 @@ backend: other: Email should be verified. verify_url_expired: other: Email verified URL has expired, please resend the email. + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: Language file not found. @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: Rank fail to meet the condition. vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: Report handle failed. @@ -154,6 +221,10 @@ backend: no_permission: other: No permission to Revision. user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: Email and password do not match. @@ -171,6 +242,10 @@ backend: other: You cannot modify your role. not_allowed_registration: other: Currently the site is not open for registration + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: Read config failed @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: Unsupported file format. - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: other: spam desc: other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. - rude: + rude_or_abusive: name: other: rude or abusive desc: other: A reasonable person would find this content inappropriate for respectful discourse. - duplicate: + a_duplicate: name: other: a duplicate desc: other: This question has been asked before and already has an answer. - not_answer: + placeholder: + other: Enter the existing question link + not_a_answer: name: other: not an answer desc: other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. - not_need: + no_longer_needed: name: other: no longer needed desc: other: This comment is outdated, conversational or not relevant to this post. - other: + something: name: other: something else desc: other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: answered modified: other: modified + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: Your answer has been deleted your_comment_was_deleted: other: Your comment has been deleted + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,6 +482,7 @@ ui: upgrade: Answer Upgrade maintenance: Website Maintenance users: Users + oauth_callback: Processing http_404: HTTP Error 404 http_50X: HTTP Error 500 http_403: HTTP Error 403 @@ -316,11 +492,18 @@ ui: achievement: Achievements all_read: Mark all as read show_more: Show more + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: Your Account has been Suspended until_time: "Your account was suspended until {{ time }}." forever: This user was suspended forever. end: You don't meet a community guideline. + contact_us: Contact us editor: blockquote: text: Blockquote @@ -527,7 +710,7 @@ ui: Use comments to ask for more information or suggest improvements. Avoid answering questions in comments. tip_answer: >- Use comments to reply to other users or notify them of changes. If you are adding new information, edit your post instead of commenting. - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: Edit Answer default_reason: Edit answer @@ -609,6 +792,8 @@ ui: logout: Log out admin: Admin review: Review + bookmark: Bookmarks + moderation: Moderation search: placeholder: Search footer: @@ -633,7 +818,6 @@ ui: msg: empty: Cannot be empty. login: - page_title: Welcome to {{site_name}} login_to_continue: Log in to continue info_sign: Don't have an account? <1>Sign up info_login: Already have an account? <1>Log in @@ -644,6 +828,7 @@ ui: msg: empty: Name cannot be empty. range: Name up to 30 characters. + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: Email msg: @@ -663,7 +848,6 @@ ui: msg: empty: Email cannot be empty. change_email: - page_title: Welcome to {{site_name}} btn_cancel: Cancel btn_update: Update email address send_success: >- @@ -672,6 +856,17 @@ ui: label: New Email msg: empty: Email cannot be empty. + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: Password Reset btn_name: Reset my password @@ -690,6 +885,7 @@ ui: label: Confirm New Password settings: page_title: Settings + goto_modify: Go to Modify nav: profile: Profile notification: Notifications @@ -711,7 +907,7 @@ ui: avatar: label: Profile Image gravatar: Gravatar - gravatar_text: You can change image on <1>gravatar.com + gravatar_text: You can change image on custom: Custom btn_refresh: Refresh custom_text: You can upload your image. @@ -738,8 +934,11 @@ ui: change_email_info: >- We've sent an email to that address. Please follow the confirmation instructions. email: - label: Email - msg: Email cannot be empty. + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: Password current_pass: label: Current Password @@ -756,6 +955,13 @@ ui: lang: label: Interface Language text: User interface language. It will change when you refresh the page. + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: update success update_password: Password changed successfully. @@ -766,6 +972,12 @@ ui: title: Related Questions btn: Add question answers: answers + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: Asked @@ -775,12 +987,13 @@ ui: Views: Viewed Follow: Follow Following: Following + follow_tip: Follow this question to receive notifications answered: answered closed_in: Closed in show_exist: Show existing question. useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: Confirm cancel: Cancel + edit: Edit save: Save delete: Delete login: Log in @@ -836,6 +1050,10 @@ ui: skip: Skip discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: Search Results keywords: Keywords @@ -870,7 +1088,6 @@ ui: modal_confirm: title: Error... account_result: - page_title: Welcome to {{site_name}} success: Your new account is confirmed; you will be redirected to the home page. link: Continue to homepage invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: Accepted answered: answered asked: asked - upvote: upvote - downvote: downvote + downvoted: downvoted mod_short: Mod mod_long: Moderators x_reputation: reputation @@ -994,6 +1210,7 @@ ui: admin_name: label: Name msg: Name cannot be empty. + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: Password text: >- @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: Customize themes: Themes - css-html: CSS/HTML + css_html: CSS/HTML login: Login + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: Admin @@ -1095,6 +1323,7 @@ ui: pending: Pending completed: Completed flagged: Flagged + flagged_type: Flagged {{ type }} created: Created action: Action review: Review @@ -1122,7 +1351,7 @@ ui: closed_name: closed closed_desc: "A closed question can't answer, but still can edit, vote and comment." deleted_name: deleted - deleted_desc: All reputation gained and lost will be restored. + deleted_desc: This post will be deleted. btn_cancel: Cancel btn_submit: Submit btn_next: Next @@ -1243,9 +1472,6 @@ ui: label: Timezone msg: Timezone cannot be empty. text: Choose a city in the same timezone as you. - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: Footer text: This will insert before . + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: Login membership: title: Membership label: Allow new registrations text: Turn off to prevent anyone from creating a new account. + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: Private label: Login required text: Only logged in users can access this community. + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (optional) empty: cannot be empty invalid: is invalid btn_submit: Save not_found_props: "Required property {{ key }} not found." + select: Select page_review: review: Review proposed: proposed diff --git a/i18n/zh_CN.yaml b/i18n/zh_CN.yaml index 8bc80aee..71a62ba2 100644 --- a/i18n/zh_CN.yaml +++ b/i18n/zh_CN.yaml @@ -11,6 +11,8 @@ backend: other: 未授权。 database_error: other: 数据服务器错误。 + forbidden_error: + other: 禁止访问。 action: report: other: 举报 @@ -22,14 +24,18 @@ backend: other: 关闭 reopen: other: 重新打开 + forbidden_error: + other: 禁止访问。 pin: other: 置顶 hide: - other: 隐藏 + other: 列表隐藏 unpin: other: 取消置顶 show: - other: 显示 + other: 列表显示 + invite_someone_to_answer: + other: 编辑 role: name: user: @@ -44,62 +50,62 @@ backend: admin: other: 拥有管理网站的全部权限。 moderator: - other: 拥有访问除管理员设置以外的所有权限。 + other: 拥有访问除后台管理以外的所有权限。 privilege: level_1: description: - other: 等级1(创业社区所需的声望最低) + other: 第 1 级 (私人团队、群组所需的声望) level_2: description: - other: 等级2(创业社区所需的声望较低) + other: 级别2(启动社区所需的低声望) level_3: description: - other: 等级3(成熟社区所需的声望较高) + other: 等级 3 (成熟社区所需的高声望) rank_question_add_label: - other: 提问 + other: 提问s rank_answer_add_label: - other: 回答问题 + other: 写入答案 rank_comment_add_label: other: 发表评论 rank_report_add_label: other: 举报 rank_comment_vote_up_label: - other: 评论点赞 + other: 点赞评论 rank_link_url_limit_label: - other: 一次发布超过两个链接 + other: 每次发布超过 2 个链接 rank_question_vote_up_label: - other: 问题点赞 + other: 点赞问题 rank_answer_vote_up_label: - other: 答案点赞 + other: 点赞答案 rank_question_vote_down_label: - other: 问题点踩 + other: 点踩问题 rank_answer_vote_down_label: - other: 答案点踩 + other: 点踩答案 rank_invite_someone_to_answer_label: other: 邀请回答 rank_tag_add_label: other: 创建新标签 rank_tag_edit_label: - other: 编辑标签描述(需要审核) + other: 编辑标签描述(需要审核) rank_question_edit_label: - other: 编辑他人提问(需要审核) + other: 编辑对方的问题 (需要审查) rank_answer_edit_label: - other: 编辑他人回答(需要审核) + other: 编辑对方的答案 (需要审查) rank_question_edit_without_review_label: - other: 编辑他人提问(无需审核) + other: 不经评论编辑对方的问题 rank_answer_edit_without_review_label: - other: 编辑他人回答(无需审核) + other: 编辑对方的答案而不需要审核 rank_question_audit_label: - other: 审核问题编辑 + other: 审查问题 rank_answer_audit_label: - other: 审核答案编辑 + other: 审核回答 rank_tag_audit_label: other: 审核标签编辑 rank_tag_edit_without_review_label: - other: 编辑标签描述(无需审核) + other: 编辑标签且无需审核 rank_tag_synonym_label: other: 管理标签同义词 - e_mail: + email: other: 邮箱 password: other: 密码 @@ -108,12 +114,12 @@ backend: error: password: space_invalid: - other: 密码不能包含空格。 + other: 密码不得含有空格 admin: cannot_update_their_password: - other: 您无法修改自己的密码。 + other: 你无法修改自己的密码。 cannot_modify_self_status: - other: 您无法修改自己的状态。 + other: 你无法修改自己的状态。 email_or_password_wrong: other: 邮箱和密码不匹配。 answer: @@ -131,7 +137,7 @@ backend: not_found: other: 评论未找到。 cannot_edit_after_deadline: - other: 评论时间太长,无法修改。 + other: 评论时间太久,无法修改。 email: duplicate: other: 邮箱已经存在。 @@ -140,102 +146,106 @@ backend: verify_url_expired: other: 邮箱验证的网址已过期,请重新发送邮件。 illegal_email_domain_error: - other: 该域名的邮箱无法使用。请尝试更换其他邮箱。 + other: 此邮箱不在允许注册的邮箱域中。请使用其他邮箱尝试。 lang: not_found: - other: 语言未找到 + other: 语言文件未找到。 object: captcha_verification_failed: - other: 验证码错误 + other: 验证码错误。 disallow_follow: - other: 你不能关注 + other: 你不能关注。 disallow_vote: - other: 你不能投票 + other: 你不能投票。 disallow_vote_your_self: - other: 你不能为自己的帖子投票! + other: 你不能为自己的帖子投票。 not_found: - other: 对象未找到 + other: 对象未找到。 verification_failed: - other: 验证失败 + other: 验证失败。 email_or_password_incorrect: - other: 邮箱或密码不正确 + other: 邮箱和密码不匹配。 old_password_verification_failed: - other: 旧密码验证失败 + other: 旧密码验证失败。 new_password_same_as_previous_setting: - other: 新密码与之前的设置相同 + other: 新密码和旧密码相同。 question: already_deleted: - other: 此问题已被删除. + other: 该帖子已被删除。 not_found: - other: 问题未找到 + other: 问题未找到。 cannot_deleted: - other: 无删除权限 + other: 没有删除权限。 cannot_close: - other: 无关闭权限 + other: 没有关闭权限。 cannot_update: - other: 无更新权限 + other: 没有更新权限。 rank: fail_to_meet_the_condition: - other: 级别不符合条件 + other: 声望值未达到要求。 vote_fail_to_meet_the_condition: other: 感谢您的投票。您至少需要{{.Rank}}声望才能投票。 no_enough_rank_to_operate: other: 您至少需要{{.Rank}}声望才能执行此操作。 report: handle_failed: - other: 报告处理失败 + other: 报告处理失败。 not_found: - other: 报告未找到 + other: 报告未找到。 tag: already_exist: other: 标签已存在。 not_found: - other: 标签未找到 + other: 标签未找到。 recommend_tag_not_found: - other: 推荐标签不存在 + other: 推荐的标签不存在。 recommend_tag_enter: - other: 请输入至少一个必需的标签。 + other: 请选择至少一个必选标签。 not_contain_synonym_tags: other: 不应包含同义词标签。 cannot_update: - other: 没有更新标签权限。 + other: 没有更新权限。 is_used_cannot_delete: - other: 您不能删除正在使用的标签 + other: 您不能删除这个正在使用的标签。 cannot_set_synonym_as_itself: - other: 您不能将当前标签的同义词设置为本身。 + other: 你不能将当前标签设为自己的同义词。 smtp: config_from_name_cannot_be_email: - other: 发件人名称不能是电子邮件地址。 + other: 发件人名称不能是邮箱地址。 theme: not_found: - other: 主题未找到 + other: 主题未找到。 revision: review_underway: other: 目前无法编辑,有一个版本在审阅队列中。 no_permission: other: 无权限修改 user: + external_login_missing_user_id: + other: 第三方平台没有提供唯一的用户ID,所以您不能登录,请联系网站管理员。 + external_login_unbinding_forbidden: + other: 请在您移除此登录之前为您的帐户设置登录密码。 email_or_password_wrong: other: - other: 邮箱或密码错误 + other: 邮箱和密码不匹配。 not_found: - other: 用户未找到 + other: 用户未找到。 suspended: - other: 用户已被暂停 + other: 用户已被封禁。 username_invalid: - other: 用户名无效 + other: 用户名无效。 username_duplicate: - other: 用户名已被使用 + other: 用户名已被使用。 set_avatar: - other: 头像设置错误 + other: 头像设置错误。 cannot_update_your_role: - other: 您不能修改自己的角色。 + other: 你不能修改自己的角色。 not_allowed_registration: - other: 目前该站点未开放注册 + other: 目前该站点未开放注册。 access_denied: - other: 访问被拒绝 + other: 拒绝访问 page_access_denied: - other: 你没有权限进入这个页面。 + other: 您没有权限访问此页面。 config: read_config_failed: other: 读取配置失败 @@ -250,12 +260,15 @@ backend: upload: unsupported_file_format: other: 不支持的文件格式。 + site_info: + config_not_found: + other: 未找到网站的该配置信息。 reason: spam: name: other: 垃圾信息 desc: - other: 这个帖子是一个广告,或是破坏性行为。它对当前的主题没有用处,也不相关。 + other: 这个帖子是一个广告,或是破坏性行为。它对当前的主题无帮助或无关。 rude_or_abusive: name: other: 粗鲁或辱骂的 @@ -265,46 +278,46 @@ backend: name: other: 重复信息 desc: - other: 此问题以前就有人问过,而且已经有了答案。 + other: 该问题有人问过,而且已经有了答案。 placeholder: - other: 请输入重复的问题的网址 + other: 输入已有的问题链接 not_a_answer: name: other: 不是答案 desc: - other: 此帖子是作为一个答案发布的,但它并没有试图回答这个问题。总之,它可能应该是个编辑,评论,另一个问题或者被删除。 + other: 该帖是作为答案发布的,但它并没有试图回答这个问题。总之,它可能应该是个编辑、评论、另一个问题或需要被删除。 no_longer_needed: name: other: 不再需要 desc: - other: 此评论已过时,对话或与此帖子无关。 + other: 该评论已过时,对话性质或与此帖子无关。 something: name: other: 其他原因 desc: - other: 此帖子需要工作人员关注,因为是上述所列以外的其他理由。 + other: 此帖子需要工作人员注意,因为是上述所列以外的其他理由。 placeholder: - other: 让我们具体了解你所关注的内容 + other: 让我们具体知道你关心的什么 community_specific: name: - other: 特定社区原因 + other: 社区特定原因 desc: - other: 这个问题不符合社区准则。 + other: 该问题不符合社区准则。 not_clarity: name: other: 需要细节或澄清 desc: - other: 此问题目前包含多个问题。它应该只关注一个问题。 + other: 该问题目前涵盖多个问题。它应该侧重在一个问题上。 looks_ok: name: - other: 看起来不错 + other: 看起来还好 desc: - other: 这篇文章很好,不是低质量的。 + other: 这个帖子是好的,不是低质量。 needs_edit: name: - other: 需要编辑,我已经编辑了 + other: 需要编辑,我已做了修改。 desc: - other: 自己改善和纠正这篇文章中的问题。 + other: 改进和纠正你自己帖子中的问题。 needs_close: name: other: 需要关闭 @@ -314,7 +327,7 @@ backend: name: other: 需要删除 desc: - other: 所有获得和失去的声望都将被恢复。 + other: 该帖子将被删除。 question: close: duplicate: @@ -326,17 +339,17 @@ backend: name: other: 社区特定原因 desc: - other: 此问题不符合社区准则。 + other: 该问题不符合社区准则。 multiple: name: other: 需要细节或澄清 desc: - other: 此问题目前涵盖多个问题。它应该只集中在一个问题上。 + other: 该问题目前涵盖多个问题。它应该只集中在一个问题上。 other: name: other: 其他原因 desc: - other: 这个帖子需要上面没有列出的另一个原因。 + other: 该帖子存在上面没有列出的另一个原因。 operation_type: asked: other: 提问于 @@ -345,7 +358,7 @@ backend: modified: other: 修改于 deleted_title: - other: 问题已被删除 + other: 删除的问题 notification: action: update_question: @@ -355,7 +368,7 @@ backend: update_answer: other: 更新了答案 accept_answer: - other: 已接受的回答 + other: 采纳了答案 comment_question: other: 评论了问题 comment_answer: @@ -373,48 +386,48 @@ backend: your_comment_was_deleted: other: 你的评论已被删除 up_voted_question: - other: 赞了问题 + other: 点赞问题 down_voted_question: - other: 踩了问题 + other: 点踩问题 up_voted_answer: - other: 赞了答案 + other: 点赞答案 down_voted_answer: - other: 踩了答案 + other: 点踩回答 up_voted_comment: - other: 赞了评论 + other: 点赞评论 invited_you_to_answer: - other: 邀请你回答问题 + other: 邀请你回答 email_tpl: change_email: title: - other: "[{{.SiteName}}] 确认您的新电子邮件地址" + other: "[{{.SiteName}}] 确认你的新邮箱地址" body: - other: "请点击以下链接确认您在 {{.SiteName}} 上的新电子邮件地址:

\n\n{{.ChangeEmailUrl}}

\n\n如果您没有请求此更改,请忽略此电子邮件。\n" + other: "请点击以下链接确认你在 {{.SiteName}} 上的新邮箱地址:

\n\n{{.ChangeEmailUrl}}

\n\n如果你没有请求此更改,请忽略此邮件。\n\n" new_answer: title: other: "[{{.SiteName}}] {{.DisplayName}} 回答了您的问题" body: - other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\n在 {{.SiteName}} 上查看

\n\n您会收到此邮件是因为您开启了订阅。取消订阅" + other: "{{.QuestionTitle}}

\\n\\n{{.DisplayName}}:
\\n
{{.AnswerSummary}}

\\n在 {{.SiteName}} 上查看

\\n\\n您会收到此邮件是因为您开启了订阅。取消订阅" invited_you_to_answer: title: other: "[{{.SiteName}}] {{.DisplayName}} 邀请您回答问题" body: - other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
我想你可能知道答案。

\n在 {{.SiteName}} 上查看

\n\n您会收到此邮件是因为您开启了订阅. 取消订阅" + other: "{{.QuestionTitle}}

\\n\\n{{.DisplayName}}:
\\n
我想你可能知道答案。

\\n在 {{.SiteName}} 上查看

\\n\\n您会收到此邮件是因为您开启了订阅. 取消订阅" new_comment: title: other: "[{{.SiteName}}] {{.DisplayName}} 评论了您的帖子" body: - other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\n在 {{.SiteName}} 上查看

\n\n您会收到此邮件是因为您开启了订阅。取消订阅" + other: "{{.QuestionTitle}}

\\n\\n{{.DisplayName}}:
\\n
{{.CommentSummary}}

\\n在 {{.SiteName}} 上查看

\\n\\n您会收到此邮件是因为您开启了订阅。取消订阅" pass_reset: title: other: "[{{.SiteName }}] 重置密码" body: - other: "有人要求在 [{{.SiteName}}] 上重置您的密码。

\n\n如果这不是您的操作,请安心忽略此电子邮件。

\n\n请点击以下链接选择一个新密码:
\n{{.PassResetUrl}}\n" + other: "有人要求在 [{{.SiteName}}] 上重置您的密码。

\\n\\n如果这不是您的操作,请安心忽略此电子邮件。

\\n\\n请点击以下链接选择一个新密码:
\\n{{.PassResetUrl}}" register: title: other: "[{{.SiteName}}] 确认您的新账户" body: - other: "欢迎加入 {{.SiteName}}

\n\n请点击以下链接确认并激活您的新账户:
\n{{.RegisterUrl}}

\n\n如果上面的链接不能点击,请将其复制并粘贴到您的浏览器地址栏中。\n" + other: "欢迎加入 {{.SiteName}}

\\n\\n请点击以下链接确认并激活您的新账户:
\\n{{.RegisterUrl}}

\\n\\n如果上面的链接不能点击,请将其复制并粘贴到您的浏览器地址栏中。\\n" test: title: other: "[{{.SiteName}}] 测试邮件" @@ -424,21 +437,21 @@ backend: upvote: other: 点赞 upvoted: - other: 被赞 + other: 点赞 downvote: other: 点踩 downvoted: - other: 被踩 + other: 已踩 accept: other: 采纳 accepted: - other: 被采纳 + other: 已采纳 #The following fields are used for interface presentation(Front-end) ui: how_to_format: - title: 如何设定文本格式 + title: 如何排版 desc: >- -
  • 添加链接:

    <https://url.com>

    [标题](https://url.com)
  • 段落之间使用空行分隔

  • _斜体_ 或者 **粗体**

  • 使用 4 个空格缩进代码

  • 在行首添加>表示引用

  • 反引号进行转义 `像 _这样_`

  • 使用```创建代码块

    ```
    // 这是代码
    ```
+
  • 添加链接

    <https://url.com>

    [标题](https://url.com)
  • 段落之间使用空行分隔

  • _斜体_ 或者 **粗体**

  • 使用 4 个空格缩进代码

  • 在行首添加 > 表示引用

  • 反引号进行转义 `像 _这样_`

  • 使用 ``` 创建代码块

    ```
    // 这是代码
    ```
pagination: prev: 上一页 next: 下一页 @@ -447,7 +460,7 @@ ui: questions: 问题 tag: 标签 tags: 标签 - tag_wiki: 标签 wiki + tag_wiki: 标记维基 create_tag: 创建标签 edit_tag: 编辑标签 ask_a_question: 提问题 @@ -455,20 +468,21 @@ ui: edit_answer: 编辑回答 search: 搜索 posts_containing: 包含 - settings: 设定 + settings: 设置 notifications: 通知 login: 登录 sign_up: 注册 account_recovery: 账号恢复 account_activation: 账号激活 confirm_email: 确认电子邮件 - account_suspended: 账号已封禁 + account_suspended: 账号已被封禁 admin: 后台管理 change_email: 修改邮箱 install: Answer 安装 upgrade: Answer 升级 maintenance: 网站维护 users: 用户 + oauth_callback: 处理中 http_404: HTTP 错误 404 http_50X: HTTP 错误 500 http_403: HTTP 错误 403 @@ -479,11 +493,17 @@ ui: all_read: 全部标记为已读 show_more: 显示更多 someone: 有人 + inbox_type: + all: 全部 + posts: 帖子 + invites: 邀请 + votes: 投票 suspended: - title: 账号已封禁 - until_time: "你的账号被封禁至{{ time }}。" + title: 你的账号账号已被封禁 + until_time: "你的账号被封禁直到 {{ time }}。" forever: 你的账号已被永久封禁。 end: 违反了我们的社区准则。 + contact_us: 联系我们 editor: blockquote: text: 引用 @@ -772,6 +792,8 @@ ui: logout: 退出登录 admin: 后台管理 review: 审查 + bookmark: 收藏夹 + moderation: 管理 search: placeholder: 搜索 footer: @@ -796,7 +818,6 @@ ui: msg: empty: 不能为空 login: - page_title: 欢迎来到 {{site_name}} login_to_continue: 登录以继续 info_sign: 没有账户?<1>注册 info_login: 已经有一个账户?<1>登录 @@ -807,6 +828,7 @@ ui: msg: empty: 昵称不能为空 range: 昵称最多 30 个字符 + character: '只能由 "a-z", "0-9", " - . _" 组成' email: label: 邮箱 msg: @@ -826,7 +848,6 @@ ui: msg: empty: 邮箱不能为空 change_email: - page_title: 欢迎来到 {{site_name}} btn_cancel: 取消 btn_update: 更新电子邮件地址 send_success: >- @@ -835,6 +856,17 @@ ui: label: 新邮箱 msg: empty: 邮箱不能为空 + oauth_bind_email: + subtitle: 向你的账户添加恢复邮件地址。 + btn_update: 更新电子邮件地址 + email: + label: 邮箱 + msg: + empty: 邮箱不能为空。 + modal_title: 邮箱已经存在。 + modal_content: 此电子邮件地址已经注册。你确定要连接到已有账户吗? + modal_cancel: 更改邮箱 + modal_confirm: 连接到已有账户 password_reset: page_title: 密码重置 btn_name: 重置我的密码 @@ -875,7 +907,7 @@ ui: avatar: label: 头像 gravatar: Gravatar - gravatar_text: 您可以在 <1>gravatar.com 更改图像 + gravatar_text: 你可以更改图像在 custom: 自定义 btn_refresh: 刷新 custom_text: 您可以上传您的图片。 @@ -902,8 +934,11 @@ ui: change_email_info: >- 邮件已发送。请根据指引完成验证。 email: - label: 邮箱 - msg: 邮箱不能为空 + label: 新邮箱 + msg: 新邮箱不能为空。 + pass: + label: 当前密码 + msg: 密码不能为空。 password_title: 密码 current_pass: label: 当前密码 @@ -920,6 +955,13 @@ ui: lang: label: 界面语言 text: 设置用户界面语言,在刷新页面后生效。 + my_logins: + title: 我的登录 + label: 使用这些账户登录或注册本网站。 + modal_title: 移除登录 + modal_content: 你确定要从账户里移除该登录? + modal_confirm_btn: 移除 + remove_success: 移除成功 toast: update: 更新成功 update_password: 更改密码成功。 @@ -930,6 +972,12 @@ ui: title: 相关问题 btn: 我要提问 answers: 个回答 + invite_to_answer: + title: 受邀人 + desc: 邀请你认为可能知道答案的人。 + invite: 邀请回答 + add: 添加人员 + search: 搜索人员 question_detail: action: 操作 Asked: 提问于 @@ -939,12 +987,13 @@ ui: Views: 阅读次数 Follow: 关注此问题 Following: 已关注 + follow_tip: 关注此问题以接收通知 answered: 回答于 closed_in: 关闭于 show_exist: 查看相关问题。 useful: 有用的 - question_useful: 这是有用和清楚的 - question_un_useful: 它不明确或没有用 + question_useful: 它是有用和明确的 + question_un_useful: 它不明确或没用的 answer_useful: 这是有用的 answer_un_useful: 它是没有用的 answers: @@ -988,6 +1037,7 @@ ui: btns: confirm: 确认 cancel: 取消 + edit: 编辑 save: 保存 delete: 删除 login: 登录 @@ -1000,7 +1050,7 @@ ui: skip: 略过 discard_draft: 丢弃草稿 pinned: 已置顶 - all: 所有 + all: 全部 question: 问题 answer: 回答 comment: 评论 @@ -1038,7 +1088,6 @@ ui: modal_confirm: title: 发生错误... account_result: - page_title: 欢迎来到 {{site_name}} success: 你的账号已通过验证,即将返回首页。 link: 返回首页 invalid: >- @@ -1099,8 +1148,7 @@ ui: accepted: 已采纳 answered: 回答于 asked: 提问于 - upvote: 赞同 - downvote: 反对 + downvoted: 点踩 mod_short: 管理员 mod_long: 管理员 x_reputation: 声望 @@ -1162,6 +1210,7 @@ ui: admin_name: label: 昵称 msg: 昵称不能为空。 + character: '只能由 "a-z", "0-9", " - . _" 组成' admin_password: label: 密码 text: >- @@ -1219,18 +1268,19 @@ ui: seo: SEO customize: 自定义 themes: 主题 - css-html: CSS/HTML + css_html: CSS/HTML login: 登录 + privileges: 特权 plugins: 插件 - installed_plugins: 插件列表 + installed_plugins: 已安装插件 website_welcome: 欢迎来到 {{site_name}} plugins: login: 登录 - qrcode_login_tip: 请使用 {{ agentName }} 扫描二维码登录 - login_failed_email_tip: 登录失败, 请允许该应用程序访问您的电子邮件信息,然后再试一次。 + qrcode_login_tip: 请使用 {{ agentName }} 扫描二维码并登录。 + login_failed_email_tip: 登录失败,请允许此应用访问您的邮箱信息,然后重试。 oauth: connect: 连接到 {{ auth_name }} - remove: 解绑 {{ auth_name }} + remove: 移除 {{ auth_name }} admin: admin_header: title: 后台管理 @@ -1273,7 +1323,7 @@ ui: pending: 等待处理 completed: 已完成 flagged: 被举报内容 - flagged_type: 被举报的{{ type }} + flagged_type: 标记了 {{ type }} created: 创建于 action: 操作 review: 审查 @@ -1301,7 +1351,7 @@ ui: closed_name: 关闭 closed_desc: "关闭的问题不能回答,但仍然可以编辑、投票和评论。" deleted_name: 删除 - deleted_desc: 获得和丧失的所有信誉积分将被恢复。 + deleted_desc: 该帖子将被删除。 btn_cancel: 取消 btn_submit: 提交 btn_next: 下一步 @@ -1422,9 +1472,6 @@ ui: label: 时区 msg: 时区不能为空。 text: 选择一个与您相同时区的城市。 - avatar: - label: 默认头像 - text: 没有自定义头像的用户。 smtp: page_title: SMTP from_email: @@ -1523,39 +1570,49 @@ ui: css_and_html: page_title: CSS 与 HTML custom_css: - label: 自定义CSS - text: 这将在 之前插入 + label: 自定义 CSS + text: 这将以 方式插入 head: label: 头部 text: 这将在 之前插入 header: - label: 标题 - text: 这将在 之前插入 + label: 页眉 + text: 这将在 之后插入 footer: label: 页脚 text: 这将在 之前插入 + sidebar: + label: 侧边栏 + text: 这将插入侧边栏中。 login: page_title: 登录 membership: title: 会员 label: 允许新注册 text: 关闭以防止任何人创建新帐户。 + email_registration: + title: 邮箱注册 + label: 允许邮箱注册 + text: 关闭以防止任何人通过邮箱创建新账户。 + allowed_email_domains: + title: 允许的邮箱域 + text: 允许注册账户的邮箱域。每行一个域名。留空时忽略。 private: title: 非公开的 label: 需要登录 text: 只有登录用户才能访问这个社区。 installed_plugins: - title: 插件列表 + title: 已安装插件 filter: all: 全部 - active: 启用 + active: 已启用 inactive: 未启用 outdated: 已过期 plugins: label: 插件 - text: 选择一个插件 - name: 插件名称 - version: 插件版本 + text: 选择一个现有的插件。 + name: 名称 + version: 版本 status: 状态 action: 操作 deactivate: 停用 @@ -1565,32 +1622,36 @@ ui: title: 用户 avatar: label: 默认头像 - text: 未设置自定义头像的用户所展示的头像。 + text: 没有自定义头像的用户。 + gravatar_base_url: + label: Gravatar 基础 URL + text: Gravatar 提供商的 API 基础 URL 。留空时忽略。 profile_editable: - title: 可编辑的个人资料 + title: 个人资料可编辑 allow_update_display_name: - label: 允许用户更改显示名称 + label: 允许用户修改显示名称 allow_update_username: - label: 允许用户更改用户名 + label: 允许用户修改用户名 allow_update_avatar: - label: 允许用户更改头像 + label: 允许用户修改个人头像 allow_update_bio: - label: 允许用户更改自我介绍 + label: 允许用户修改个人介绍 allow_update_website: - label: 允许用户更改个人网站 + label: 允许用户修改个人主页网址 allow_update_location: - label: 允许用户更改所在地 + label: 允许用户更改位置 privilege: - title: 声望权限 + title: 特权 level: - label: 所需声望等级 - text: 选择所需的声望等级以获取权限 + label: 级别所需声望 + text: 选择特权所需的声望值 form: optional: (选填) empty: 不能为空 invalid: 是无效的 btn_submit: 保存 not_found_props: "所需属性 {{ key }} 未找到。" + select: 选择 page_review: review: 评论 proposed: 提案 @@ -1606,7 +1667,7 @@ ui: undeleted: 取消删除 deleted: 删除 downvote: 反对 - upvote: 赞同 + upvote: 点赞 accept: 采纳 cancelled: 已取消 commented: '评论:' diff --git a/i18n/zh_TW.yaml b/i18n/zh_TW.yaml index 322f14de..6ec6a9d7 100644 --- a/i18n/zh_TW.yaml +++ b/i18n/zh_TW.yaml @@ -11,17 +11,21 @@ backend: other: 未授權。 database_error: other: 資料庫錯誤。 + forbidden_error: + other: Forbidden. action: report: - other: Flag + other: 举报 edit: - other: Edit + other: 编辑 delete: - other: Delete + other: 删除 close: - other: Close + other: 关闭 reopen: other: Reopen + forbidden_error: + other: Forbidden. pin: other: Pin hide: @@ -30,6 +34,8 @@ backend: other: Unpin show: other: List + invite_someone_to_answer: + other: Edit role: name: user: @@ -45,6 +51,60 @@ backend: other: 擁有訪問該網站的全部權限。 moderator: other: 可以訪問除了管理員設定以外的所有貼文。 + privilege: + level_1: + description: + other: Level 1 (less reputation required for private team, group) + level_2: + description: + other: Level 2 (low reputation required for startup community) + level_3: + description: + other: Level 3 (high reputation required for mature community) + rank_question_add_label: + other: Ask question + rank_answer_add_label: + other: Write answer + rank_comment_add_label: + other: Write comment + rank_report_add_label: + other: Flag + rank_comment_vote_up_label: + other: Upvote comment + rank_link_url_limit_label: + other: Post more than 2 links at a time + rank_question_vote_up_label: + other: Upvote question + rank_answer_vote_up_label: + other: Upvote answer + rank_question_vote_down_label: + other: Downvote question + rank_answer_vote_down_label: + other: Downvote answer + rank_invite_someone_to_answer_label: + other: Invite someone to answer + rank_tag_add_label: + other: Create new tag + rank_tag_edit_label: + other: Edit tag description (need to review) + rank_question_edit_label: + other: Edit other's question (need to review) + rank_answer_edit_label: + other: Edit other's answer (need to review) + rank_question_edit_without_review_label: + other: Edit other's question without review + rank_answer_edit_without_review_label: + other: Edit other's answer without review + rank_question_audit_label: + other: Review question edits + rank_answer_audit_label: + other: Review answer edits + rank_tag_audit_label: + other: Review tag edits + rank_tag_edit_without_review_label: + other: Edit tag description without review + rank_tag_synonym_label: + other: Manage tag synonyms email: other: 電子郵件 password: @@ -52,9 +112,12 @@ backend: email_or_password_wrong_error: other: 電郵和密碼不匹配。 error: + password: + space_invalid: + other: Password cannot contain spaces. admin: cannot_update_their_password: - other: You cannot modify your password. + other: 您不能修改自己的密码。 cannot_modify_self_status: other: You cannot modify your status. email_or_password_wrong: @@ -82,6 +145,8 @@ backend: other: 需驗證電子郵件 verify_url_expired: other: 電子郵件驗證網址已過期,請重發電子郵件。 + illegal_email_domain_error: + other: Email is not allowed from that email domain. Please use another one. lang: not_found: other: 未找到语言文件。 @@ -119,7 +184,9 @@ backend: fail_to_meet_the_condition: other: 級別不符合條件 vote_fail_to_meet_the_condition: - other: Thanks for the feedback. You need at least {{ rank }} reputation to cast a vote. + other: Thanks for the feedback. You need at least {{.Rank}} reputation to cast a vote. + no_enough_rank_to_operate: + other: You need at least {{.Rank}} reputation to do this. report: handle_failed: other: 報告處理失敗。 @@ -154,6 +221,10 @@ backend: no_permission: other: 無權限修改。 user: + external_login_missing_user_id: + other: The third-party platform does not provide a unique UserID, so you cannot login, please contact the website administrator. + external_login_unbinding_forbidden: + other: Please set a login password for your account before you remove this login. email_or_password_wrong: other: other: 電子郵箱和密碼不匹配。 @@ -171,6 +242,10 @@ backend: other: 您不能修改自己的角色。 not_allowed_registration: other: 本站目前未開放註冊。 + access_denied: + other: Access denied + page_access_denied: + other: You do not have access to this page. config: read_config_failed: other: 讀取配置失敗 @@ -185,37 +260,74 @@ backend: upload: unsupported_file_format: other: 不支援的檔案格式。 - report: + site_info: + config_not_found: + other: Site config not found. + reason: spam: name: - other: 垃圾貼文。 + other: spam desc: - other: 此貼文是一個廣告,或是破壞性行為。它對當前的主題沒有用處,也不相關。 - rude: + other: This post is an advertisement, or vandalism. It is not useful or relevant to the current topic. + rude_or_abusive: name: - other: 粗魯或辱罵的 + other: rude or abusive desc: - other: 一個有理智的人都會認為這種內容不適合進行尊重性的討論。 - duplicate: + other: A reasonable person would find this content inappropriate for respectful discourse. + a_duplicate: name: - other: 重覆信息 + other: a duplicate desc: - other: 此問題以前就有人問過,而且已經有了答案。 - not_answer: + other: This question has been asked before and already has an answer. + placeholder: + other: Enter the existing question link + not_a_answer: name: - other: 不是答案 + other: not an answer desc: - other: 此帖子是作為一個答案發布的,但它並沒有試圖回答這個問題。總之,它可能應該是個編輯,評論,另一個問題或者被刪除。 - not_need: + other: This was posted as an answer, but it does not attempt to answer the question. It should possibly be an edit, a comment, another question, or deleted altogether. + no_longer_needed: name: - other: 不再需要 + other: no longer needed desc: - other: 此評論已過時,對話或與此帖子無關。 - other: + other: This comment is outdated, conversational or not relevant to this post. + something: name: - other: 其他原因 + other: something else desc: - other: 由於上面未列出的另一個原因,這篇文章需要工作人員注意。 + other: This post requires staff attention for another reason not listed above. + placeholder: + other: Let us know specifically what you are concerned about + community_specific: + name: + other: a community-specific reason + desc: + other: This question doesn’t meet a community guideline. + not_clarity: + name: + other: needs details or clarity + desc: + other: This question currently includes multiple questions in one. It should focus on one problem only. + looks_ok: + name: + other: looks ok + desc: + other: This post is good as-is and not low quality. + needs_edit: + name: + other: needs edit, and I did it + desc: + other: Improve and correct problems with this post yourself. + needs_close: + name: + other: needs close + desc: + other: A closed question can’t answer, but still can edit, vote and comment. + needs_delete: + name: + other: needs delete + desc: + other: This post will be deleted. question: close: duplicate: @@ -245,6 +357,8 @@ backend: other: 回答於 modified: other: 修改於 + deleted_title: + other: Deleted question notification: action: update_question: @@ -271,6 +385,67 @@ backend: other: 你的答案已被刪除 your_comment_was_deleted: other: 你的評論已被刪除 + up_voted_question: + other: upvoted question + down_voted_question: + other: downvoted question + up_voted_answer: + other: upvoted answer + down_voted_answer: + other: downvoted answer + up_voted_comment: + other: upvoted comment + invited_you_to_answer: + other: invited you to answer + email_tpl: + change_email: + title: + other: "[{{.SiteName}}] Confirm your new email address" + body: + other: "Confirm your new email address for {{.SiteName}} by clicking on the following link:

\n\n{{.ChangeEmailUrl}}

\n\nIf you did not request this change, please ignore this email.\n" + new_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} answered your question" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.AnswerSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + invited_you_to_answer: + title: + other: "[{{.SiteName}}] {{.DisplayName}} invited you to answer" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
I think you may know the answer.

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + new_comment: + title: + other: "[{{.SiteName}}] {{.DisplayName}} commented on your post" + body: + other: "{{.QuestionTitle}}

\n\n{{.DisplayName}}:
\n
{{.CommentSummary}}

\nView it on {{.SiteName}}

\n\nYou are receiving this because you authored the thread. Unsubscribe" + pass_reset: + title: + other: "[{{.SiteName }}] Password reset" + body: + other: "Somebody asked to reset your password on [{{.SiteName}}].

\n\nIf it was not you, you can safely ignore this email.

\n\nClick the following link to choose a new password:
\n{{.PassResetUrl}}\n" + register: + title: + other: "[{{.SiteName}}] Confirm your new account" + body: + other: "Welcome to {{.SiteName}}

\n\nClick the following link to confirm and activate your new account:
\n{{.RegisterUrl}}

\n\nIf the above link is not clickable, try copying and pasting it into the address bar of your web browser.\n" + test: + title: + other: "[{{.SiteName}}] Test Email" + body: + other: "This is a test email." + action_activity_type: + upvote: + other: upvote + upvoted: + other: upvoted + downvote: + other: downvote + downvoted: + other: downvoted + accept: + other: accept + accepted: + other: accepted #The following fields are used for interface presentation(Front-end) ui: how_to_format: @@ -307,20 +482,28 @@ ui: upgrade: Answer 升級 maintenance: 網站維護 users: 用戶 - http_404: HTTP Error 404 - http_50X: HTTP Error 500 - http_403: HTTP Error 403 + oauth_callback: Processing + http_404: HTTP 錯誤 404 + http_50X: HTTP 錯誤 500 + http_403: HTTP 錯誤 403 notifications: title: 通知 inbox: 收件夾 achievement: 成就 all_read: 全部標記為已讀 show_more: 顯示更多 + someone: Someone + inbox_type: + all: All + posts: Posts + invites: Invites + votes: Votes suspended: title: 您的帳號已被停權 until_time: "你的帳號被停權至{{ time }}。" forever: 你的帳號已被永久停權。 end: 違反了我們的社群準則。 + contact_us: Contact us editor: blockquote: text: 引用 @@ -527,7 +710,7 @@ ui: 通过評論询问更多问题或提出改進建議。避免在評論中回答問題。 tip_answer: >- 使用評論回復其他用戶或通知他們进行更改。如果你要添加新的信息,請編輯你的帖子,而不是發表評論。 - tip_vote: It adds something useful to the post + tip_vote: It adds something useful to the post edit_answer: title: 編輯回答 default_reason: 編輯回答 @@ -609,6 +792,8 @@ ui: logout: 登出 admin: 後台管理 review: 審查 + bookmark: Bookmarks + moderation: Moderation search: placeholder: 搜尋 footer: @@ -633,7 +818,6 @@ ui: msg: empty: 不能為空 login: - page_title: 歡迎來到 {{site_name}} login_to_continue: 登入以繼續 info_sign: 沒有帳戶?<1>註冊 info_login: 已經有一個帳號?<1>登入 @@ -644,6 +828,7 @@ ui: msg: empty: 名稱不能為空 range: 名稱最多 30 個字元 + character: 'Must use the character set "a-z", "0-9", " - . _"' email: label: 郵箱 msg: @@ -663,7 +848,6 @@ ui: msg: empty: 郵箱不能為空 change_email: - page_title: 歡迎來到 {{site_name}} btn_cancel: 取消 btn_update: 更新電子郵件地址 send_success: >- @@ -672,6 +856,17 @@ ui: label: 新電子郵件 msg: empty: 郵箱不能為空 + oauth_bind_email: + subtitle: Add a recovery email to your account. + btn_update: Update email address + email: + label: Email + msg: + empty: Email cannot be empty. + modal_title: Email already existes. + modal_content: This email address already registered. Are you sure you want to connect to the existing account? + modal_cancel: Change email + modal_confirm: Connect to the existing account password_reset: page_title: 密碼重置 btn_name: 重置我的密碼 @@ -690,6 +885,7 @@ ui: label: 確認新密碼 settings: page_title: 設置 + goto_modify: Go to Modify nav: profile: 我的資料 notification: 通知 @@ -711,7 +907,7 @@ ui: avatar: label: 頭像 gravatar: 頭像 - gravatar_text: 您可以在 <1>gravatar.com 更改圖像 + gravatar_text: You can change image on custom: 自定義 btn_refresh: 重新整理 custom_text: 您可以上傳您的圖片。 @@ -738,8 +934,11 @@ ui: change_email_info: >- 我們已經寄出一封郵件至此電子郵件地址,請遵照說明進行確認。 email: - label: 郵箱 - msg: 郵箱不能為空 + label: New Email + msg: New Email cannot be empty. + pass: + label: Current Password + msg: Password cannot be empty. password_title: 密碼 current_pass: label: 當前密碼 @@ -756,6 +955,13 @@ ui: lang: label: 介面語言 text: 設定使用者介面語言,在重新整裡頁面後生效。 + my_logins: + title: My Logins + label: Log in or sign up on this site using these accounts. + modal_title: Remove Login + modal_content: Are you sure you want to remove this login from your account? + modal_confirm_btn: Remove + remove_success: Removed successfully toast: update: 更新成功 update_password: 更改密碼成功。 @@ -766,6 +972,12 @@ ui: title: 相關問題 btn: 發問 answers: 個回答 + invite_to_answer: + title: People asked + desc: Invite people who you think might know the answer. + invite: Invite to answer + add: Add people + search: Search people question_detail: action: Action Asked: 提問於 @@ -775,12 +987,13 @@ ui: Views: 閱讀次數 Follow: 關注 Following: 已關注 + follow_tip: Follow this question to receive notifications answered: 回答於 closed_in: 關閉於 show_exist: 顯示現有問題。 useful: Useful - question_useful: It is useful and clear - question_un_useful: It is unclear or not useful + question_useful: It is useful and clear + question_un_useful: It is unclear or not useful answer_useful: It is useful answer_un_useful: It is not useful answers: @@ -824,6 +1037,7 @@ ui: btns: confirm: 確認 cancel: 取消 + edit: Edit save: 儲存 delete: 刪除 login: 登入 @@ -836,6 +1050,10 @@ ui: skip: 略過 discard_draft: Discard draft pinned: Pinned + all: All + question: Question + answer: Answer + comment: Comment search: title: 搜尋結果 keywords: 關鍵詞 @@ -870,7 +1088,6 @@ ui: modal_confirm: title: 發生錯誤... account_result: - page_title: 歡迎來到 {{site_name}} success: 你的帳號已通過驗證,即將返回首頁。 link: 繼續訪問主頁 invalid: >- @@ -931,8 +1148,7 @@ ui: accepted: 已採納 answered: 回答於 asked: 提問於 - upvote: 讚同 - downvote: 反對 + downvoted: downvoted mod_short: 模組 mod_long: 管理員 x_reputation: 聲望 @@ -994,6 +1210,7 @@ ui: admin_name: label: 暱稱 msg: 暱稱不能為空。 + character: 'Must use the character set "a-z", "0-9", " - . _"' admin_password: label: 密碼 text: >- @@ -1025,7 +1242,7 @@ ui: answers: 回答 accepted: 已採納 page_error: - http_error: HTTP Error {{ code }} + http_error: HTTP 错误 {{ code }} desc_403: You don’t have permission to access this page. desc_404: Unfortunately, this page doesn't exist. desc_50X: The server encountered an error and could not complete your request. @@ -1051,8 +1268,19 @@ ui: seo: SEO customize: 自定義 themes: 主題 - css-html: CSS/HTML + css_html: CSS/HTML login: 登入 + privileges: Privileges + plugins: Plugins + installed_plugins: Installed Plugins + website_welcome: Welcome to {{site_name}} + plugins: + login: Login + qrcode_login_tip: Please use {{ agentName }} to scan the QR code and log in. + login_failed_email_tip: Login failed, please allow this app to access your email information before try again. + oauth: + connect: Connect with {{ auth_name }} + remove: Remove {{ auth_name }} admin: admin_header: title: 後台管理 @@ -1095,6 +1323,7 @@ ui: pending: 等待處理 completed: 已完成 flagged: 已標記 + flagged_type: Flagged {{ type }} created: 創建於 action: 操作 review: 審核 @@ -1122,7 +1351,7 @@ ui: closed_name: 關閉 closed_desc: "關閉的問題不能回答,但仍然可以編輯、投票和評論。" deleted_name: 刪除 - deleted_desc: 獲得和失去的所有信譽將被恢復。 + deleted_desc: This post will be deleted. btn_cancel: 取消 btn_submit: 提交 btn_next: 下一步 @@ -1243,9 +1472,6 @@ ui: label: 時區 msg: 時區不能為空。 text: 選擇一個與您相同時區的城市。 - avatar: - label: Default Avatar - text: For users without a custom avatar of their own. smtp: page_title: SMTP from_email: @@ -1355,22 +1581,77 @@ ui: footer: label: 頁尾 text: 這將在 之前插入 + sidebar: + label: Sidebar + text: This will insert in sidebar. login: page_title: 登入 membership: title: 會員 label: 允許新註冊 text: 關閉以防止任何人創建新帳戶。 + email_registration: + title: Email registration + label: Allow email registration + text: Turn off to prevent anyone creating new account through email. + allowed_email_domains: + title: Allowed email domains + text: Email domains that users must register accounts with. One domain per line. Ignored when empty. private: title: 非公開的 label: 需要登入 text: 只有登入使用者才能訪問這個社群。 + installed_plugins: + title: Installed Plugins + filter: + all: All + active: Active + inactive: Inactive + outdated: Outdated + plugins: + label: Plugins + text: Select an existing plugin. + name: Name + version: Version + status: Status + action: Action + deactivate: Deactivate + activate: Activate + settings: Settings + settings_users: + title: Users + avatar: + label: Default Avatar + text: For users without a custom avatar of their own. + gravatar_base_url: + label: Gravatar Base URL + text: URL of the Gravatar provider’s API base. Ignored when empty. + profile_editable: + title: Profile Editable + allow_update_display_name: + label: Allow users to change their display name + allow_update_username: + label: Allow users to change their username + allow_update_avatar: + label: Allow users to change their profile image + allow_update_bio: + label: Allow users to change their about me + allow_update_website: + label: Allow users to change their website + allow_update_location: + label: Allow users to change their location + privilege: + title: Privileges + level: + label: Reputation required level + text: Choose the reputation required for the privileges form: optional: (選填) empty: 不能為空 invalid: 是無效的 btn_submit: 儲存 not_found_props: "所需屬性 {{ key }} 未找到。" + select: Select page_review: review: 審核 proposed: 提案 From 74661a135fc1001cc133e39a0c78ca5cf5f5b0a0 Mon Sep 17 00:00:00 2001 From: LinkinStars Date: Tue, 6 Jun 2023 14:43:28 +0800 Subject: [PATCH 05/11] fix(migrations): upgrade question table struct first --- internal/migrations/v13.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/migrations/v13.go b/internal/migrations/v13.go index e43222f5..3576abb2 100644 --- a/internal/migrations/v13.go +++ b/internal/migrations/v13.go @@ -15,13 +15,13 @@ import ( func updateCount(x *xorm.Engine) error { fns := []func(*xorm.Engine) error{ + inviteAnswer, addPrivilegeForInviteSomeoneToAnswer, addGravatarBaseURL, updateQuestionCount, updateTagCount, updateUserQuestionCount, updateUserAnswerCount, - inviteAnswer, inBoxData, } for _, fn := range fns { From 57153f8e7d9fa7baabb4297ae082625e1b981ee8 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Tue, 6 Jun 2023 15:43:32 +0800 Subject: [PATCH 06/11] update answer count --- internal/repo/answer/answer_repo.go | 19 +++++++++++ internal/repo/question/question_repo.go | 3 +- internal/service/answer_common/answer.go | 2 ++ internal/service/answer_service.go | 34 ++++++++++++-------- internal/service/question_common/question.go | 17 +++++++--- 5 files changed, 55 insertions(+), 20 deletions(-) diff --git a/internal/repo/answer/answer_repo.go b/internal/repo/answer/answer_repo.go index b5350cbe..76585a07 100644 --- a/internal/repo/answer/answer_repo.go +++ b/internal/repo/answer/answer_repo.go @@ -196,6 +196,25 @@ func (ar *answerRepo) GetByID(ctx context.Context, id string) (*entity.Answer, b return &resp, has, nil } +func (ar *answerRepo) GetCountByQuestionID(ctx context.Context, questionID string) (int64, error) { + questionID = uid.DeShortID(questionID) + rows := make([]*entity.Answer, 0) + count, err := ar.data.DB.Context(ctx).Where("question_id =? and status = ?", questionID, entity.AnswerStatusAvailable).FindAndCount(&rows) + if err != nil { + return count, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() + } + return count, nil +} + +func (ar *answerRepo) GetCountByUserID(ctx context.Context, userID string) (int64, error) { + rows := make([]*entity.Answer, 0) + count, err := ar.data.DB.Context(ctx).Where(" user_id = ? and status = ?", userID, entity.AnswerStatusAvailable).FindAndCount(&rows) + if err != nil { + return count, errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() + } + return count, nil +} + func (ar *answerRepo) GetByUserIDQuestionID(ctx context.Context, userID string, questionID string) (*entity.Answer, bool, error) { questionID = uid.DeShortID(questionID) var resp entity.Answer diff --git a/internal/repo/question/question_repo.go b/internal/repo/question/question_repo.go index 01dd98e4..2932e7ff 100644 --- a/internal/repo/question/question_repo.go +++ b/internal/repo/question/question_repo.go @@ -88,7 +88,8 @@ func (qr *questionRepo) UpdatePvCount(ctx context.Context, questionID string) (e func (qr *questionRepo) UpdateAnswerCount(ctx context.Context, questionID string, num int) (err error) { questionID = uid.DeShortID(questionID) question := &entity.Question{} - _, err = qr.data.DB.Context(ctx).Where("id =?", questionID).Incr("answer_count", num).Update(question) + question.AnswerCount = num + _, err = qr.data.DB.Context(ctx).Where("id =?", questionID).Cols("answer_count").Update(question) if err != nil { return errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() } diff --git a/internal/service/answer_common/answer.go b/internal/service/answer_common/answer.go index 357484f2..c23e6822 100644 --- a/internal/service/answer_common/answer.go +++ b/internal/service/answer_common/answer.go @@ -17,6 +17,8 @@ type AnswerRepo interface { GetAnswerPage(ctx context.Context, page, pageSize int, answer *entity.Answer) (answerList []*entity.Answer, total int64, err error) UpdateAccepted(ctx context.Context, id string, questionID string) error GetByID(ctx context.Context, id string) (*entity.Answer, bool, error) + GetCountByQuestionID(ctx context.Context, questionID string) (int64, error) + GetCountByUserID(ctx context.Context, userID string) (int64, error) GetByUserIDQuestionID(ctx context.Context, userID string, questionID string) (*entity.Answer, bool, error) SearchList(ctx context.Context, search *entity.AnswerSearch) ([]*entity.Answer, int64, error) AdminSearchList(ctx context.Context, search *entity.AdminAnswerSearch) ([]*entity.Answer, int64, error) diff --git a/internal/service/answer_service.go b/internal/service/answer_service.go index 92afbbca..27fc28f0 100644 --- a/internal/service/answer_service.go +++ b/internal/service/answer_service.go @@ -112,21 +112,24 @@ func (as *AnswerService) RemoveAnswer(ctx context.Context, req *schema.RemoveAns } - // user add question count - err = as.questionCommon.UpdateAnswerCount(ctx, answerInfo.QuestionID, -1) - if err != nil { - log.Error("IncreaseAnswerCount error", err.Error()) - } - - err = as.userCommon.UpdateAnswerCount(ctx, answerInfo.UserID, -1) - if err != nil { - log.Error("user IncreaseAnswerCount error", err.Error()) - } - err = as.answerRepo.RemoveAnswer(ctx, req.ID) if err != nil { return err } + + // user add question count + err = as.questionCommon.UpdateAnswerCount(ctx, answerInfo.QuestionID) + if err != nil { + log.Error("IncreaseAnswerCount error", err.Error()) + } + userAnswerCount, err := as.answerRepo.GetCountByUserID(ctx, answerInfo.UserID) + if err != nil { + log.Error("GetCountByUserID error", err.Error()) + } + err = as.userCommon.UpdateAnswerCount(ctx, answerInfo.UserID, int(userAnswerCount)) + if err != nil { + log.Error("user IncreaseAnswerCount error", err.Error()) + } // #2372 In order to simplify the process and complexity, as well as to consider if it is in-house, // facing the problem of recovery. //err = as.answerActivityService.DeleteAnswer(ctx, answerInfo.ID, answerInfo.CreatedAt, answerInfo.VoteCount) @@ -167,7 +170,7 @@ func (as *AnswerService) Insert(ctx context.Context, req *schema.AnswerAddReq) ( if err = as.answerRepo.AddAnswer(ctx, insertData); err != nil { return "", err } - err = as.questionCommon.UpdateAnswerCount(ctx, req.QuestionID, 1) + err = as.questionCommon.UpdateAnswerCount(ctx, req.QuestionID) if err != nil { log.Error("IncreaseAnswerCount error", err.Error()) } @@ -179,8 +182,11 @@ func (as *AnswerService) Insert(ctx context.Context, req *schema.AnswerAddReq) ( if err != nil { return insertData.ID, err } - - err = as.userCommon.UpdateAnswerCount(ctx, req.UserID, 1) + userAnswerCount, err := as.answerRepo.GetCountByUserID(ctx, req.UserID) + if err != nil { + log.Error("GetCountByUserID error", err.Error()) + } + err = as.userCommon.UpdateAnswerCount(ctx, req.UserID, int(userAnswerCount)) if err != nil { log.Error("user IncreaseAnswerCount error", err.Error()) } diff --git a/internal/service/question_common/question.go b/internal/service/question_common/question.go index 6ec1176f..8d96ab43 100644 --- a/internal/service/question_common/question.go +++ b/internal/service/question_common/question.go @@ -99,8 +99,12 @@ func (qs *QuestionCommon) UpdatePv(ctx context.Context, questionID string) error return qs.questionRepo.UpdatePvCount(ctx, questionID) } -func (qs *QuestionCommon) UpdateAnswerCount(ctx context.Context, questionID string, num int) error { - return qs.questionRepo.UpdateAnswerCount(ctx, questionID, num) +func (qs *QuestionCommon) UpdateAnswerCount(ctx context.Context, questionID string) error { + count, err := qs.answerRepo.GetCountByQuestionID(ctx, questionID) + if err != nil { + return err + } + return qs.questionRepo.UpdateAnswerCount(ctx, questionID, int(count)) } func (qs *QuestionCommon) UpdateCollectionCount(ctx context.Context, questionID string, num int) error { @@ -523,12 +527,15 @@ func (as *QuestionCommon) RemoveAnswer(ctx context.Context, id string) (err erro // user add question count - err = as.UpdateAnswerCount(ctx, answerinfo.QuestionID, -1) + err = as.UpdateAnswerCount(ctx, answerinfo.QuestionID) if err != nil { log.Error("UpdateAnswerCount error", err.Error()) } - - err = as.userCommon.UpdateAnswerCount(ctx, answerinfo.UserID, -1) + userAnswerCount, err := as.answerRepo.GetCountByUserID(ctx, answerinfo.UserID) + if err != nil { + log.Error("GetCountByUserID error", err.Error()) + } + err = as.userCommon.UpdateAnswerCount(ctx, answerinfo.UserID, int(userAnswerCount)) if err != nil { log.Error("user UpdateAnswerCount error", err.Error()) } From 3ad1c40cea898a87631932183e150ff179391c19 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Wed, 7 Jun 2023 14:25:06 +0800 Subject: [PATCH 07/11] fix notificationInviteUser --- internal/service/question_service.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/service/question_service.go b/internal/service/question_service.go index cf46c580..fa92a750 100644 --- a/internal/service/question_service.go +++ b/internal/service/question_service.go @@ -589,13 +589,16 @@ func (qs *QuestionService) UpdateQuestionInviteUser(ctx context.Context, req *sc //send notification oldInviteUserIDsStr := originQuestion.InviteUserID oldInviteUserIDs := make([]string, 0) + needSendNotificationUserIDs := make([]string, 0) if oldInviteUserIDsStr != "" { err = json.Unmarshal([]byte(oldInviteUserIDsStr), &oldInviteUserIDs) if err == nil { - needSendNotificationUserIDs := converter.ArrayNotInArray(oldInviteUserIDs, inviteUserIDs) - go qs.notificationInviteUser(ctx, needSendNotificationUserIDs, originQuestion.ID, originQuestion.Title, req.UserID) + needSendNotificationUserIDs = converter.ArrayNotInArray(oldInviteUserIDs, inviteUserIDs) } + } else { + needSendNotificationUserIDs = inviteUserIDs } + go qs.notificationInviteUser(ctx, needSendNotificationUserIDs, originQuestion.ID, originQuestion.Title, req.UserID) return nil } From 3378cbff694adb85ebfba1e3d11dc26d2411b9ef Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Wed, 7 Jun 2023 17:39:25 +0800 Subject: [PATCH 08/11] fix tag count upgrade --- internal/migrations/v13.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/migrations/v13.go b/internal/migrations/v13.go index 3576abb2..36b2df5e 100644 --- a/internal/migrations/v13.go +++ b/internal/migrations/v13.go @@ -224,7 +224,7 @@ func updateTagCount(x *xorm.Engine) error { } } else { tag.QuestionCount = 0 - if _, err = x.Update(tag, &entity.Tag{ID: tag.ID}); err != nil { + if _, err = x.Cols("question_count").Update(tag, &entity.Tag{ID: tag.ID}); err != nil { log.Errorf("update %+v tag failed: %s", tag.ID, err) return fmt.Errorf("update tag failed: %w", err) } From 3092954e68d71860e8c47766fee8f37d383902e1 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Thu, 8 Jun 2023 10:30:26 +0800 Subject: [PATCH 09/11] fix post-title --- cmd/wire_gen.go | 4 +- internal/repo/collection/collection_repo.go | 4 ++ internal/service/question_common/question.go | 58 +++++++++++++++++++ internal/service/question_service.go | 50 +--------------- internal/service/siteinfo/siteinfo_service.go | 6 ++ 5 files changed, 71 insertions(+), 51 deletions(-) diff --git a/cmd/wire_gen.go b/cmd/wire_gen.go index 26355097..1c237435 100644 --- a/cmd/wire_gen.go +++ b/cmd/wire_gen.go @@ -165,7 +165,7 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, answerCommon := answercommon.NewAnswerCommon(answerRepo) metaRepo := meta.NewMetaRepo(dataData) metaService := meta2.NewMetaService(metaRepo) - questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaService, configService) + questionCommon := questioncommon.NewQuestionCommon(questionRepo, answerRepo, voteRepo, followRepo, tagCommonService, userCommon, collectionCommon, answerCommon, metaService, configService, dataData) collectionService := service.NewCollectionService(collectionRepo, collectionGroupRepo, questionCommon) collectionController := controller.NewCollectionController(collectionService) answerActivityRepo := activity.NewAnswerActivityRepo(dataData, activityRepo, userRankRepo) @@ -193,7 +193,7 @@ func initApplication(debug bool, serverConf *conf.Server, dbConf *data.Database, reasonService := reason2.NewReasonService(reasonRepo) reasonController := controller.NewReasonController(reasonService) themeController := controller_admin.NewThemeController() - siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService) + siteInfoService := siteinfo.NewSiteInfoService(siteInfoRepo, siteInfoCommonService, emailService, tagCommonService, configService, questionCommon) siteInfoController := controller_admin.NewSiteInfoController(siteInfoService) siteinfoController := controller.NewSiteinfoController(siteInfoCommonService) notificationRepo := notification.NewNotificationRepo(dataData) diff --git a/internal/repo/collection/collection_repo.go b/internal/repo/collection/collection_repo.go index 6c05a38d..f21a323a 100644 --- a/internal/repo/collection/collection_repo.go +++ b/internal/repo/collection/collection_repo.go @@ -10,6 +10,7 @@ import ( "github.com/answerdev/answer/internal/entity" collectioncommon "github.com/answerdev/answer/internal/service/collection_common" "github.com/answerdev/answer/internal/service/unique" + "github.com/answerdev/answer/pkg/uid" "github.com/segmentfault/pacman/errors" "xorm.io/xorm" ) @@ -148,6 +149,9 @@ func (cr *collectionRepo) GetCollectionPage(ctx context.Context, page, pageSize // SearchObjectCollected check object is collected or not func (cr *collectionRepo) SearchObjectCollected(ctx context.Context, userID string, objectIds []string) (map[string]bool, error) { collectedMap := make(map[string]bool) + for k, object_id := range objectIds { + objectIds[k] = uid.DeShortID(object_id) + } list, err := cr.SearchByObjectIDsAndUser(ctx, userID, objectIds) if err != nil { err = errors.InternalServer(reason.DatabaseError).WithError(err).WithStack() diff --git a/internal/service/question_common/question.go b/internal/service/question_common/question.go index 8d96ab43..b0ccc4cc 100644 --- a/internal/service/question_common/question.go +++ b/internal/service/question_common/question.go @@ -3,9 +3,12 @@ package questioncommon import ( "context" "encoding/json" + "fmt" + "math" "time" "github.com/answerdev/answer/internal/base/constant" + "github.com/answerdev/answer/internal/base/data" "github.com/answerdev/answer/internal/base/handler" "github.com/answerdev/answer/internal/base/reason" "github.com/answerdev/answer/internal/service/activity_common" @@ -64,6 +67,7 @@ type QuestionCommon struct { AnswerCommon *answercommon.AnswerCommon metaService *meta.MetaService configService *config.ConfigService + data *data.Data } func NewQuestionCommon(questionRepo QuestionRepo, @@ -76,6 +80,8 @@ func NewQuestionCommon(questionRepo QuestionRepo, answerCommon *answercommon.AnswerCommon, metaService *meta.MetaService, configService *config.ConfigService, + data *data.Data, + ) *QuestionCommon { return &QuestionCommon{ questionRepo: questionRepo, @@ -88,6 +94,7 @@ func NewQuestionCommon(questionRepo QuestionRepo, AnswerCommon: answerCommon, metaService: metaService, configService: configService, + data: data, } } @@ -543,6 +550,57 @@ func (as *QuestionCommon) RemoveAnswer(ctx context.Context, id string) (err erro return as.answerRepo.RemoveAnswer(ctx, id) } +func (qs *QuestionCommon) SitemapCron(ctx context.Context) { + data := &schema.SiteMapList{} + questionNum, err := qs.questionRepo.GetQuestionCount(ctx) + if err != nil { + log.Error("GetQuestionCount error", err) + return + } + if questionNum <= schema.SitemapMaxSize { + questionIDList, err := qs.questionRepo.GetQuestionIDsPage(ctx, 0, int(questionNum)) + if err != nil { + log.Error("GetQuestionIDsPage error", err) + return + } + data.QuestionIDs = questionIDList + + } else { + nums := make([]int, 0) + totalpages := int(math.Ceil(float64(questionNum) / float64(schema.SitemapMaxSize))) + for i := 1; i <= totalpages; i++ { + siteMapPagedata := &schema.SiteMapPageList{} + nums = append(nums, i) + questionIDList, err := qs.questionRepo.GetQuestionIDsPage(ctx, i, int(schema.SitemapMaxSize)) + if err != nil { + log.Error("GetQuestionIDsPage error", err) + return + } + siteMapPagedata.PageData = questionIDList + if setCacheErr := qs.SetCache(ctx, fmt.Sprintf(schema.SitemapPageCachekey, i), siteMapPagedata); setCacheErr != nil { + log.Errorf("set sitemap cron SetCache failed: %s", setCacheErr) + } + } + data.MaxPageNum = nums + } + if setCacheErr := qs.SetCache(ctx, schema.SitemapCachekey, data); setCacheErr != nil { + log.Errorf("set sitemap cron SetCache failed: %s", setCacheErr) + } +} + +func (qs *QuestionCommon) SetCache(ctx context.Context, cachekey string, info interface{}) error { + infoStr, err := json.Marshal(info) + if err != nil { + return errors.InternalServer(reason.UnknownError).WithError(err).WithStack() + } + + err = qs.data.Cache.SetString(ctx, cachekey, string(infoStr), schema.DashBoardCacheTime) + if err != nil { + return errors.InternalServer(reason.UnknownError).WithError(err).WithStack() + } + return nil +} + func (qs *QuestionCommon) ShowListFormat(ctx context.Context, data *entity.Question) *schema.QuestionInfo { return qs.ShowFormat(ctx, data) } diff --git a/internal/service/question_service.go b/internal/service/question_service.go index fa92a750..378b27df 100644 --- a/internal/service/question_service.go +++ b/internal/service/question_service.go @@ -3,7 +3,6 @@ package service import ( "encoding/json" "fmt" - "math" "strings" "time" @@ -1347,52 +1346,5 @@ func (qs *QuestionService) changeQuestionToRevision(ctx context.Context, questio } func (qs *QuestionService) SitemapCron(ctx context.Context) { - data := &schema.SiteMapList{} - questionNum, err := qs.questionRepo.GetQuestionCount(ctx) - if err != nil { - log.Error("GetQuestionCount error", err) - return - } - if questionNum <= schema.SitemapMaxSize { - questionIDList, err := qs.questionRepo.GetQuestionIDsPage(ctx, 0, int(questionNum)) - if err != nil { - log.Error("GetQuestionIDsPage error", err) - return - } - data.QuestionIDs = questionIDList - - } else { - nums := make([]int, 0) - totalpages := int(math.Ceil(float64(questionNum) / float64(schema.SitemapMaxSize))) - for i := 1; i <= totalpages; i++ { - siteMapPagedata := &schema.SiteMapPageList{} - nums = append(nums, i) - questionIDList, err := qs.questionRepo.GetQuestionIDsPage(ctx, i, int(schema.SitemapMaxSize)) - if err != nil { - log.Error("GetQuestionIDsPage error", err) - return - } - siteMapPagedata.PageData = questionIDList - if setCacheErr := qs.SetCache(ctx, fmt.Sprintf(schema.SitemapPageCachekey, i), siteMapPagedata); setCacheErr != nil { - log.Errorf("set sitemap cron SetCache failed: %s", setCacheErr) - } - } - data.MaxPageNum = nums - } - if setCacheErr := qs.SetCache(ctx, schema.SitemapCachekey, data); setCacheErr != nil { - log.Errorf("set sitemap cron SetCache failed: %s", setCacheErr) - } -} - -func (qs *QuestionService) SetCache(ctx context.Context, cachekey string, info interface{}) error { - infoStr, err := json.Marshal(info) - if err != nil { - return errors.InternalServer(reason.UnknownError).WithError(err).WithStack() - } - - err = qs.data.Cache.SetString(ctx, cachekey, string(infoStr), schema.DashBoardCacheTime) - if err != nil { - return errors.InternalServer(reason.UnknownError).WithError(err).WithStack() - } - return nil + qs.questioncommon.SitemapCron(ctx) } diff --git a/internal/service/siteinfo/siteinfo_service.go b/internal/service/siteinfo/siteinfo_service.go index b8cb276e..5d0fc294 100644 --- a/internal/service/siteinfo/siteinfo_service.go +++ b/internal/service/siteinfo/siteinfo_service.go @@ -13,6 +13,7 @@ import ( "github.com/answerdev/answer/internal/schema" "github.com/answerdev/answer/internal/service/config" "github.com/answerdev/answer/internal/service/export" + questioncommon "github.com/answerdev/answer/internal/service/question_common" "github.com/answerdev/answer/internal/service/siteinfo_common" tagcommon "github.com/answerdev/answer/internal/service/tag_common" "github.com/answerdev/answer/pkg/uid" @@ -28,6 +29,7 @@ type SiteInfoService struct { emailService *export.EmailService tagCommonService *tagcommon.TagCommonService configService *config.ConfigService + questioncommon *questioncommon.QuestionCommon } func NewSiteInfoService( @@ -36,6 +38,8 @@ func NewSiteInfoService( emailService *export.EmailService, tagCommonService *tagcommon.TagCommonService, configService *config.ConfigService, + questioncommon *questioncommon.QuestionCommon, + ) *SiteInfoService { plugin.RegisterGetSiteURLFunc(func() string { generalSiteInfo, err := siteInfoCommonService.GetSiteGeneral(context.Background()) @@ -52,6 +56,7 @@ func NewSiteInfoService( emailService: emailService, tagCommonService: tagCommonService, configService: configService, + questioncommon: questioncommon, } } @@ -295,6 +300,7 @@ func (s *SiteInfoService) SaveSeo(ctx context.Context, req schema.SiteSeoReq) (e } else { uid.ShortIDSwitch = false } + s.questioncommon.SitemapCron(ctx) return } From cacf5e309f6f12656ede66a2cfa6233c82528794 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Fri, 9 Jun 2023 15:02:39 +0800 Subject: [PATCH 10/11] fix sitemap --- .../controller/template_render/question.go | 20 +++++++++++++++++++ ui/template/sitemap.xml | 4 ++++ 2 files changed, 24 insertions(+) diff --git a/internal/controller/template_render/question.go b/internal/controller/template_render/question.go index fc0e5bab..6504d7e9 100644 --- a/internal/controller/template_render/question.go +++ b/internal/controller/template_render/question.go @@ -25,6 +25,11 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) { log.Error("get site general failed:", err) return } + siteInfo, err := t.siteInfoService.GetSiteSeo(ctx) + if err != nil { + log.Error("get site GetSiteSeo failed:", err) + return + } sitemapInfo := &schema.SiteMapList{} infoStr, err := t.data.Cache.GetString(ctx, schema.SitemapCachekey) @@ -32,6 +37,10 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) { log.Errorf("get Cache failed: %s", err) return } + hasTitle := false + if siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitle || siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitleByShortID { + hasTitle = true + } if err = json.Unmarshal([]byte(infoStr), sitemapInfo); err != nil { log.Errorf("get sitemap info failed: %s", err) return @@ -45,6 +54,7 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) { "xmlHeader": template.HTML(``), "list": sitemapInfo.QuestionIDs, "general": general, + "hastitle": hasTitle, }, ) } else { @@ -68,6 +78,15 @@ func (t *TemplateRenderController) SitemapPage(ctx *gin.Context, page int) error log.Error("get site general failed:", err) return err } + siteInfo, err := t.siteInfoService.GetSiteSeo(ctx) + if err != nil { + log.Error("get site GetSiteSeo failed:", err) + return err + } + hasTitle := false + if siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitle || siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitleByShortID { + hasTitle = true + } cachekey := fmt.Sprintf(schema.SitemapPageCachekey, page) infoStr, err := t.data.Cache.GetString(ctx, cachekey) @@ -85,6 +104,7 @@ func (t *TemplateRenderController) SitemapPage(ctx *gin.Context, page int) error "xmlHeader": template.HTML(``), "list": sitemapInfo.PageData, "general": general, + "hastitle": hasTitle, }, ) return nil diff --git a/ui/template/sitemap.xml b/ui/template/sitemap.xml index b763c084..d4bc2ab2 100644 --- a/ui/template/sitemap.xml +++ b/ui/template/sitemap.xml @@ -2,7 +2,11 @@ {{ range .list }} + {{if $.hastitle}} {{$.general.SiteUrl}}/questions/{{.ID}}/{{.Title}} + {{else}} + {{$.general.SiteUrl}}/questions/{{.ID}} + {{end}} {{.UpdateTime}} {{ end }} From 0217125f6fc5d1f56f5280ec7feb1f655ad9f680 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Mon, 12 Jun 2023 14:56:26 +0800 Subject: [PATCH 11/11] update edit answer shortid --- internal/service/answer_service.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/service/answer_service.go b/internal/service/answer_service.go index 27fc28f0..a090bc84 100644 --- a/internal/service/answer_service.go +++ b/internal/service/answer_service.go @@ -560,6 +560,7 @@ func (as *AnswerService) SearchFormatInfo(ctx context.Context, answers []*entity } for _, item := range list { + item.ID = uid.EnShortID(item.ID) item.MemberActions = permission.GetAnswerPermission(ctx, req.UserID, item.UserID, req.CanEdit, req.CanDelete) } return list, nil