1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-09-15 18:57:04 +00:00

Use unique translation IDs instead of English text as key

This commit is contained in:
Frédéric Guillot 2018-09-21 18:53:29 -07:00
parent f244df6293
commit beb7a0cfcb
66 changed files with 4069 additions and 2972 deletions

View file

@ -49,7 +49,7 @@ func (c *Controller) SaveCategory(w http.ResponseWriter, r *http.Request) {
}
if duplicateCategory != nil {
view.Set("errorMessage", "This category already exists.")
view.Set("errorMessage", "error.category_already_exists")
html.OK(w, r, view.Render("create_category"))
return
}
@ -61,7 +61,7 @@ func (c *Controller) SaveCategory(w http.ResponseWriter, r *http.Request) {
if err = c.store.CreateCategory(&category); err != nil {
logger.Error("[Controller:CreateCategory] %v", err)
view.Set("errorMessage", "Unable to create this category.")
view.Set("errorMessage", "error.unable_to_create_category")
html.OK(w, r, view.Render("create_category"))
return
}

View file

@ -60,7 +60,7 @@ func (c *Controller) UpdateCategory(w http.ResponseWriter, r *http.Request) {
}
if c.store.AnotherCategoryExists(user.ID, category.ID, categoryForm.Title) {
view.Set("errorMessage", "This category already exists.")
view.Set("errorMessage", "error.category_already_exists")
html.OK(w, r, view.Render("edit_category"))
return
}
@ -68,7 +68,7 @@ func (c *Controller) UpdateCategory(w http.ResponseWriter, r *http.Request) {
err = c.store.UpdateCategory(categoryForm.Merge(category))
if err != nil {
logger.Error("[Controller:UpdateCategory] %v", err)
view.Set("errorMessage", "Unable to update this category.")
view.Set("errorMessage", "error.unable_to_update_category")
html.OK(w, r, view.Render("edit_category"))
return
}

View file

@ -71,7 +71,7 @@ func (c *Controller) UpdateFeed(w http.ResponseWriter, r *http.Request) {
err = c.store.UpdateFeed(feedForm.Merge(feed))
if err != nil {
logger.Error("[Controller:EditFeed] %v", err)
view.Set("errorMessage", "Unable to update this feed.")
view.Set("errorMessage", "error.unable_to_update_feed")
html.OK(w, r, view.Render("edit_feed"))
return
}

View file

@ -19,7 +19,7 @@ type AuthForm struct {
// Validate makes sure the form values are valid.
func (a AuthForm) Validate() error {
if a.Username == "" || a.Password == "" {
return errors.NewLocalizedError("All fields are mandatory.")
return errors.NewLocalizedError("error.fields_mandatory")
}
return nil

View file

@ -19,7 +19,7 @@ type CategoryForm struct {
// Validate makes sure the form values are valid.
func (c CategoryForm) Validate() error {
if c.Title == "" {
return errors.NewLocalizedError("The title is mandatory.")
return errors.NewLocalizedError("error.title_required")
}
return nil
}

View file

@ -29,7 +29,7 @@ type FeedForm struct {
// ValidateModification validates FeedForm fields
func (f FeedForm) ValidateModification() error {
if f.FeedURL == "" || f.SiteURL == "" || f.Title == "" || f.CategoryID == 0 {
return errors.NewLocalizedError("All fields are mandatory.")
return errors.NewLocalizedError("error.fields_mandatory")
}
return nil
}

View file

@ -40,16 +40,16 @@ func (s *SettingsForm) Merge(user *model.User) *model.User {
// Validate makes sure the form values are valid.
func (s *SettingsForm) Validate() error {
if s.Username == "" || s.Theme == "" || s.Language == "" || s.Timezone == "" || s.EntryDirection == "" {
return errors.NewLocalizedError("The username, theme, language and timezone fields are mandatory.")
return errors.NewLocalizedError("error.settings_mandatory_fields")
}
if s.Password != "" {
if s.Password != s.Confirmation {
return errors.NewLocalizedError("Passwords are not the same.")
return errors.NewLocalizedError("error.different_passwords")
}
if len(s.Password) < 6 {
return errors.NewLocalizedError("You must use at least 6 characters")
return errors.NewLocalizedError("error.password_min_length")
}
}

View file

@ -24,7 +24,7 @@ type SubscriptionForm struct {
// Validate makes sure the form values are valid.
func (s *SubscriptionForm) Validate() error {
if s.URL == "" || s.CategoryID == 0 {
return errors.NewLocalizedError("The URL and the category are mandatory.")
return errors.NewLocalizedError("error.feed_mandatory_fields")
}
return nil

View file

@ -22,15 +22,15 @@ type UserForm struct {
// ValidateCreation validates user creation.
func (u UserForm) ValidateCreation() error {
if u.Username == "" || u.Password == "" || u.Confirmation == "" {
return errors.NewLocalizedError("All fields are mandatory.")
return errors.NewLocalizedError("error.fields_mandatory")
}
if u.Password != u.Confirmation {
return errors.NewLocalizedError("Passwords are not the same.")
return errors.NewLocalizedError("error.different_passwords")
}
if len(u.Password) < 6 {
return errors.NewLocalizedError("You must use at least 6 characters.")
return errors.NewLocalizedError("error.password_min_length")
}
return nil
@ -39,16 +39,16 @@ func (u UserForm) ValidateCreation() error {
// ValidateModification validates user modification.
func (u UserForm) ValidateModification() error {
if u.Username == "" {
return errors.NewLocalizedError("The username is mandatory.")
return errors.NewLocalizedError("error.user_mandatory_fields")
}
if u.Password != "" {
if u.Password != u.Confirmation {
return errors.NewLocalizedError("Passwords are not the same.")
return errors.NewLocalizedError("error.different_passwords")
}
if len(u.Password) < 6 {
return errors.NewLocalizedError("You must use at least 6 characters.")
return errors.NewLocalizedError("error.password_min_length")
}
}

View file

@ -36,7 +36,7 @@ func (c *Controller) PocketAuthorize(w http.ResponseWriter, r *http.Request) {
requestToken, err := connector.RequestToken(redirectURL)
if err != nil {
logger.Error("[Pocket:Authorize] %v", err)
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Unable to fetch request token from Pocket!"))
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("error.pocket_request_token"))
response.Redirect(w, r, route.Path(c.router, "integrations"))
return
}
@ -65,7 +65,7 @@ func (c *Controller) PocketCallback(w http.ResponseWriter, r *http.Request) {
accessToken, err := connector.AccessToken(request.PocketRequestToken(r))
if err != nil {
logger.Error("[Pocket:Callback] %v", err)
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Unable to fetch access token from Pocket!"))
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("error.pocket_access_token"))
response.Redirect(w, r, route.Path(c.router, "integrations"))
return
}
@ -79,6 +79,6 @@ func (c *Controller) PocketCallback(w http.ResponseWriter, r *http.Request) {
return
}
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Your Pocket account is now linked!"))
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("alert.pocket_linked"))
response.Redirect(w, r, route.Path(c.router, "integrations"))
}

View file

@ -36,7 +36,7 @@ func (c *Controller) UpdateIntegration(w http.ResponseWriter, r *http.Request) {
integrationForm.Merge(integration)
if integration.FeverUsername != "" && c.store.HasDuplicateFeverUsername(user.ID, integration.FeverUsername) {
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("There is already someone else with the same Fever username!"))
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("error.duplicate_fever_username"))
response.Redirect(w, r, route.Path(c.router, "integrations"))
return
}
@ -53,6 +53,6 @@ func (c *Controller) UpdateIntegration(w http.ResponseWriter, r *http.Request) {
return
}
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Preferences saved!"))
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("alert.prefs_saved"))
response.Redirect(w, r, route.Path(c.router, "integrations"))
}

View file

@ -21,7 +21,7 @@ func (c *Controller) CheckLogin(w http.ResponseWriter, r *http.Request) {
authForm := form.NewAuthForm(r)
view := view.New(c.tpl, r, sess)
view.Set("errorMessage", "Invalid username or password.")
view.Set("errorMessage", "error.bad_credentials")
view.Set("form", authForm)
if err := authForm.Validate(); err != nil {

View file

@ -65,7 +65,7 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) {
if user != nil {
logger.Error("[OAuth2] User #%d cannot be associated because %s is already associated", request.UserID(r), user.Username)
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("There is already someone associated with this provider!"))
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("error.duplicate_linked_account"))
response.Redirect(w, r, route.Path(c.router, "settings"))
return
}
@ -75,7 +75,7 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) {
return
}
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Your external account is now linked!"))
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("alert.account_linked"))
response.Redirect(w, r, route.Path(c.router, "settings"))
return
}

View file

@ -40,7 +40,7 @@ func (c *Controller) OAuth2Unlink(w http.ResponseWriter, r *http.Request) {
}
if !hasPassword {
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("You must define a password otherwise you won't be able to login again."))
sess.NewFlashErrorMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("error.unlink_account_without_password"))
response.Redirect(w, r, route.Path(c.router, "settings"))
return
}
@ -50,6 +50,6 @@ func (c *Controller) OAuth2Unlink(w http.ResponseWriter, r *http.Request) {
return
}
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Your external account is now dissociated!"))
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("alert.account_unlinked"))
response.Redirect(w, r, route.Path(c.router, "settings"))
}

View file

@ -48,7 +48,7 @@ func (c *Controller) UploadOPML(w http.ResponseWriter, r *http.Request) {
view.Set("countErrorFeeds", c.store.CountErrorFeeds(user.ID))
if fileHeader.Size == 0 {
view.Set("errorMessage", "This file is empty")
view.Set("errorMessage", "error.empty_file")
html.OK(w, r, view.Render("import"))
return
}

View file

@ -54,7 +54,7 @@ func (c *Controller) UpdateSettings(w http.ResponseWriter, r *http.Request) {
}
if c.store.AnotherUserExists(user.ID, settingsForm.Username) {
view.Set("errorMessage", "This user already exists.")
view.Set("errorMessage", "error.user_already_exists")
html.OK(w, r, view.Render("settings"))
return
}
@ -62,13 +62,13 @@ func (c *Controller) UpdateSettings(w http.ResponseWriter, r *http.Request) {
err = c.store.UpdateUser(settingsForm.Merge(user))
if err != nil {
logger.Error("[Controller:UpdateSettings] %v", err)
view.Set("errorMessage", "Unable to update this user.")
view.Set("errorMessage", "error.unable_to_update_user")
html.OK(w, r, view.Render("settings"))
return
}
sess.SetLanguage(user.Language)
sess.SetTheme(user.Theme)
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("Preferences saved!"))
sess.NewFlashMessage(c.translator.GetLanguage(request.UserLanguage(r)).Get("alert.prefs_saved"))
response.Redirect(w, r, route.Path(c.router, "settings"))
}

View file

@ -71,7 +71,7 @@ func (c *Controller) SubmitSubscription(w http.ResponseWriter, r *http.Request)
switch {
case n == 0:
v.Set("form", subscriptionForm)
v.Set("errorMessage", "Unable to find any subscription.")
v.Set("errorMessage", "error.subscription_not_found")
html.OK(w, r, v.Render("add_subscription"))
case n == 1:
feed, err := c.feedHandler.CreateFeed(

View file

@ -47,7 +47,7 @@ func (c *Controller) SaveUser(w http.ResponseWriter, r *http.Request) {
}
if c.store.UserExists(userForm.Username) {
view.Set("errorMessage", "This user already exists.")
view.Set("errorMessage", "error.user_already_exists")
html.OK(w, r, view.Render("create_user"))
return
}
@ -55,7 +55,7 @@ func (c *Controller) SaveUser(w http.ResponseWriter, r *http.Request) {
newUser := userForm.ToUser()
if err := c.store.CreateUser(newUser); err != nil {
logger.Error("[Controller:SaveUser] %v", err)
view.Set("errorMessage", "Unable to create this user.")
view.Set("errorMessage", "error.unable_to_create_user")
html.OK(w, r, view.Render("create_user"))
return
}

View file

@ -65,7 +65,7 @@ func (c *Controller) UpdateUser(w http.ResponseWriter, r *http.Request) {
}
if c.store.AnotherUserExists(selectedUser.ID, userForm.Username) {
view.Set("errorMessage", "This user already exists.")
view.Set("errorMessage", "error.user_already_exists")
html.OK(w, r, view.Render("edit_user"))
return
}
@ -73,7 +73,7 @@ func (c *Controller) UpdateUser(w http.ResponseWriter, r *http.Request) {
userForm.Merge(selectedUser)
if err := c.store.UpdateUser(selectedUser); err != nil {
logger.Error("[Controller:UpdateUser] %v", err)
view.Set("errorMessage", "Unable to update this user.")
view.Set("errorMessage", "error.unable_to_update_user")
html.OK(w, r, view.Render("edit_user"))
return
}