]> Untitled Git - lemmy.git/commitdiff
Adding back end translations.
authorDessalines <tyhou13@gmx.com>
Fri, 9 Aug 2019 23:51:47 +0000 (16:51 -0700)
committerDessalines <tyhou13@gmx.com>
Fri, 9 Aug 2019 23:51:47 +0000 (16:51 -0700)
20 files changed:
server/src/api/comment.rs
server/src/api/community.rs
server/src/api/post.rs
server/src/api/site.rs
server/src/api/user.rs
ui/src/components/communities.tsx
ui/src/components/community-form.tsx
ui/src/components/community.tsx
ui/src/components/inbox.tsx
ui/src/components/login.tsx
ui/src/components/main.tsx
ui/src/components/modlog.tsx
ui/src/components/post-form.tsx
ui/src/components/post.tsx
ui/src/components/search.tsx
ui/src/components/setup.tsx
ui/src/components/user.tsx
ui/src/services/WebSocketService.ts
ui/src/translations/en.ts
ui/yarn.lock

index ffd7da2ea4d3a14595a3eab980356855fe81e30e..19752d833c3c9c3f373d4266248a75586a8fc6db 100644 (file)
@@ -53,7 +53,7 @@ impl Perform<CommentResponse> for Oper<CreateComment> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -62,12 +62,12 @@ impl Perform<CommentResponse> for Oper<CreateComment> {
     // Check for a community ban
     let post = Post::read(&conn, data.post_id)?;
     if CommunityUserBanView::get(&conn, user_id, post.community_id).is_ok() {
-      return Err(APIError::err(&self.op, "You have been banned from this community"))?
+      return Err(APIError::err(&self.op, "community_ban"))?
     }
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     let content_slurs_removed = remove_slurs(&data.content.to_owned());
@@ -86,7 +86,7 @@ impl Perform<CommentResponse> for Oper<CreateComment> {
     let inserted_comment = match Comment::create(&conn, &comment_form) {
       Ok(comment) => comment,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't create Comment"))?
+        return Err(APIError::err(&self.op, "couldnt_create_comment"))?
       }
     };
 
@@ -101,7 +101,7 @@ impl Perform<CommentResponse> for Oper<CreateComment> {
     let _inserted_like = match CommentLike::like(&conn, &like_form) {
       Ok(like) => like,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't like comment."))?
+        return Err(APIError::err(&self.op, ""))?
       }
     };
 
@@ -124,7 +124,7 @@ impl Perform<CommentResponse> for Oper<EditComment> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -153,17 +153,17 @@ impl Perform<CommentResponse> for Oper<EditComment> {
         );
 
       if !editors.contains(&user_id) {
-        return Err(APIError::err(&self.op, "Not allowed to edit comment."))?
+        return Err(APIError::err(&self.op, "no_comment_edit_allowed"))?
       }
 
       // Check for a community ban
       if CommunityUserBanView::get(&conn, user_id, orig_comment.community_id).is_ok() {
-        return Err(APIError::err(&self.op, "You have been banned from this community"))?
+        return Err(APIError::err(&self.op, "community_ban"))?
       }
 
       // Check for a site ban
       if UserView::read(&conn, user_id)?.banned {
-        return Err(APIError::err(&self.op, "You have been banned from the site"))?
+        return Err(APIError::err(&self.op, "site_ban"))?
       }
 
     }
@@ -184,7 +184,7 @@ impl Perform<CommentResponse> for Oper<EditComment> {
     let _updated_comment = match Comment::update(&conn, data.edit_id, &comment_form) {
       Ok(comment) => comment,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't update Comment"))?
+        return Err(APIError::err(&self.op, "couldnt_update_comment"))?
       }
     };
 
@@ -220,7 +220,7 @@ impl Perform<CommentResponse> for Oper<SaveComment> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -235,14 +235,14 @@ impl Perform<CommentResponse> for Oper<SaveComment> {
       match CommentSaved::save(&conn, &comment_saved_form) {
         Ok(comment) => comment,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldnt do comment save"))?
+          return Err(APIError::err(&self.op, "couldnt_save_comment"))?
         }
       };
     } else {
       match CommentSaved::unsave(&conn, &comment_saved_form) {
         Ok(comment) => comment,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldnt do comment save"))?
+          return Err(APIError::err(&self.op, "couldnt_save_comment"))?
         }
       };
     }
@@ -266,7 +266,7 @@ impl Perform<CommentResponse> for Oper<CreateCommentLike> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -275,12 +275,12 @@ impl Perform<CommentResponse> for Oper<CreateCommentLike> {
     // Check for a community ban
     let post = Post::read(&conn, data.post_id)?;
     if CommunityUserBanView::get(&conn, user_id, post.community_id).is_ok() {
-      return Err(APIError::err(&self.op, "You have been banned from this community"))?
+      return Err(APIError::err(&self.op, "community_ban"))?
     }
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     let like_form = CommentLikeForm {
@@ -299,7 +299,7 @@ impl Perform<CommentResponse> for Oper<CreateCommentLike> {
       let _inserted_like = match CommentLike::like(&conn, &like_form) {
         Ok(like) => like,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldn't like comment."))?
+          return Err(APIError::err(&self.op, "couldnt_like_comment"))?
         }
       };
     }
index be4bb41aa27c5f619bedd4f13c4b5124778fe4f8..fe225794233d2631420385939a1ea96395f1796f 100644 (file)
@@ -135,14 +135,14 @@ impl Perform<GetCommunityResponse> for Oper<GetCommunity> {
     let community_view = match CommunityView::read(&conn, community_id, user_id) {
       Ok(community) => community,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't find Community"))?
+        return Err(APIError::err(&self.op, "couldnt_find_community"))?
       }
     };
 
     let moderators = match CommunityModeratorView::for_community(&conn, community_id) {
       Ok(moderators) => moderators,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't find Community"))?
+        return Err(APIError::err(&self.op, "couldnt_find_community"))?
       }
     };
 
@@ -168,21 +168,21 @@ impl Perform<CommunityResponse> for Oper<CreateCommunity> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
     if has_slurs(&data.name) || 
       has_slurs(&data.title) || 
         (data.description.is_some() && has_slurs(&data.description.to_owned().unwrap())) {
-          return Err(APIError::err(&self.op, "No slurs"))?
+          return Err(APIError::err(&self.op, "no_slurs"))?
         }
 
     let user_id = claims.id;
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     // When you create a community, make sure the user becomes a moderator and a follower
@@ -200,7 +200,7 @@ impl Perform<CommunityResponse> for Oper<CreateCommunity> {
     let inserted_community = match Community::create(&conn, &community_form) {
       Ok(community) => community,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Community already exists."))?
+        return Err(APIError::err(&self.op, "community_already_exists"))?
       }
     };
 
@@ -212,7 +212,7 @@ impl Perform<CommunityResponse> for Oper<CreateCommunity> {
     let _inserted_community_moderator = match CommunityModerator::join(&conn, &community_moderator_form) {
       Ok(user) => user,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Community moderator already exists."))?
+        return Err(APIError::err(&self.op, "community_moderator_already_exists"))?
       }
     };
 
@@ -224,7 +224,7 @@ impl Perform<CommunityResponse> for Oper<CreateCommunity> {
     let _inserted_community_follower = match CommunityFollower::follow(&conn, &community_follower_form) {
       Ok(user) => user,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Community follower already exists."))?
+        return Err(APIError::err(&self.op, "community_follower_already_exists"))?
       }
     };
 
@@ -244,7 +244,7 @@ impl Perform<CommunityResponse> for Oper<EditCommunity> {
     let data: &EditCommunity = &self.data;
 
     if has_slurs(&data.name) || has_slurs(&data.title) {
-      return Err(APIError::err(&self.op, "No slurs"))?
+      return Err(APIError::err(&self.op, "no_slurs"))?
     }
 
     let conn = establish_connection();
@@ -252,7 +252,7 @@ impl Perform<CommunityResponse> for Oper<EditCommunity> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -260,7 +260,7 @@ impl Perform<CommunityResponse> for Oper<EditCommunity> {
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     // Verify its a mod
@@ -280,7 +280,7 @@ impl Perform<CommunityResponse> for Oper<EditCommunity> {
       .collect()
       );
     if !editors.contains(&user_id) {
-      return Err(APIError::err(&self.op, "Not allowed to edit community"))?
+      return Err(APIError::err(&self.op, "no_community_edit_allowed"))?
     }
 
     let community_form = CommunityForm {
@@ -297,7 +297,7 @@ impl Perform<CommunityResponse> for Oper<EditCommunity> {
     let _updated_community = match Community::update(&conn, data.edit_id, &community_form) {
       Ok(community) => community,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't update Community"))?
+        return Err(APIError::err(&self.op, "couldnt_update_community"))?
       }
     };
 
@@ -369,7 +369,7 @@ impl Perform<CommunityResponse> for Oper<FollowCommunity> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -384,14 +384,14 @@ impl Perform<CommunityResponse> for Oper<FollowCommunity> {
       match CommunityFollower::follow(&conn, &community_follower_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community follower already exists."))?
+          return Err(APIError::err(&self.op, "community_follower_already_exists"))?
         }
       };
     } else {
       match CommunityFollower::ignore(&conn, &community_follower_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community follower already exists."))?
+          return Err(APIError::err(&self.op, "community_follower_already_exists"))?
         }
       };
     }
@@ -416,7 +416,7 @@ impl Perform<GetFollowedCommunitiesResponse> for Oper<GetFollowedCommunities> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -425,7 +425,7 @@ impl Perform<GetFollowedCommunitiesResponse> for Oper<GetFollowedCommunities> {
     let communities: Vec<CommunityFollowerView> = match CommunityFollowerView::for_user(&conn, user_id) {
       Ok(communities) => communities,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "System error, try logging out and back in."))?
+        return Err(APIError::err(&self.op, "system_err_login"))?
       }
     };
 
@@ -448,7 +448,7 @@ impl Perform<BanFromCommunityResponse> for Oper<BanFromCommunity> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -463,14 +463,14 @@ impl Perform<BanFromCommunityResponse> for Oper<BanFromCommunity> {
       match CommunityUserBan::ban(&conn, &community_user_ban_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community user ban already exists"))?
+          return Err(APIError::err(&self.op, "community_user_already_banned"))?
         }
       };
     } else {
       match CommunityUserBan::unban(&conn, &community_user_ban_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community user ban already exists"))?
+          return Err(APIError::err(&self.op, "community_user_already_banned"))?
         }
       };
     }
@@ -511,7 +511,7 @@ impl Perform<AddModToCommunityResponse> for Oper<AddModToCommunity> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -526,14 +526,14 @@ impl Perform<AddModToCommunityResponse> for Oper<AddModToCommunity> {
       match CommunityModerator::join(&conn, &community_moderator_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community moderator already exists."))?
+          return Err(APIError::err(&self.op, "community_moderator_already_exists"))?
         }
       };
     } else {
       match CommunityModerator::leave(&conn, &community_moderator_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community moderator already exists."))?
+          return Err(APIError::err(&self.op, "community_moderator_already_exists"))?
         }
       };
     }
index a60107812013f7e5952d21872a5146de628f0761..df6ea852f8b31a510585a7831ca1636cd4fa2276 100644 (file)
@@ -94,25 +94,25 @@ impl Perform<PostResponse> for Oper<CreatePost> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
     if has_slurs(&data.name) || 
       (data.body.is_some() && has_slurs(&data.body.to_owned().unwrap())) {
-        return Err(APIError::err(&self.op, "No slurs"))?
+        return Err(APIError::err(&self.op, "no_slurs"))?
       }
 
     let user_id = claims.id;
 
     // Check for a community ban
     if CommunityUserBanView::get(&conn, user_id, data.community_id).is_ok() {
-      return Err(APIError::err(&self.op, "You have been banned from this community"))?
+      return Err(APIError::err(&self.op, "community_ban"))?
     }
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     let post_form = PostForm {
@@ -130,7 +130,7 @@ impl Perform<PostResponse> for Oper<CreatePost> {
     let inserted_post = match Post::create(&conn, &post_form) {
       Ok(post) => post,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't create Post"))?
+        return Err(APIError::err(&self.op, "couldnt_create_post"))?
       }
     };
 
@@ -145,7 +145,7 @@ impl Perform<PostResponse> for Oper<CreatePost> {
     let _inserted_like = match PostLike::like(&conn, &like_form) {
       Ok(like) => like,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't like post."))?
+        return Err(APIError::err(&self.op, "couldnt_like_post"))?
       }
     };
 
@@ -153,7 +153,7 @@ impl Perform<PostResponse> for Oper<CreatePost> {
     let post_view = match PostView::read(&conn, inserted_post.id, Some(user_id)) {
       Ok(post) => post,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't find Post"))?
+        return Err(APIError::err(&self.op, "couldnt_find_post"))?
       }
     };
 
@@ -187,7 +187,7 @@ impl Perform<GetPostResponse> for Oper<GetPost> {
     let post_view = match PostView::read(&conn, data.id, user_id) {
       Ok(post) => post,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't find Post"))?
+        return Err(APIError::err(&self.op, "couldnt_find_post"))?
       }
     };
 
@@ -248,7 +248,7 @@ impl Perform<GetPostsResponse> for Oper<GetPosts> {
                                      data.limit) {
       Ok(posts) => posts,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't get posts"))?
+        return Err(APIError::err(&self.op, "couldnt_get_posts"))?
       }
     };
 
@@ -270,7 +270,7 @@ impl Perform<CreatePostLikeResponse> for Oper<CreatePostLike> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -279,12 +279,12 @@ impl Perform<CreatePostLikeResponse> for Oper<CreatePostLike> {
     // Check for a community ban
     let post = Post::read(&conn, data.post_id)?;
     if CommunityUserBanView::get(&conn, user_id, post.community_id).is_ok() {
-      return Err(APIError::err(&self.op, "You have been banned from this community"))?
+      return Err(APIError::err(&self.op, "community_ban"))?
     }
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     let like_form = PostLikeForm {
@@ -302,7 +302,7 @@ impl Perform<CreatePostLikeResponse> for Oper<CreatePostLike> {
       let _inserted_like = match PostLike::like(&conn, &like_form) {
         Ok(like) => like,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldn't like post."))?
+          return Err(APIError::err(&self.op, "couldnt_like_post"))?
         }
       };
     }
@@ -310,7 +310,7 @@ impl Perform<CreatePostLikeResponse> for Oper<CreatePostLike> {
     let post_view = match PostView::read(&conn, data.post_id, Some(user_id)) {
       Ok(post) => post,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't find Post"))?
+        return Err(APIError::err(&self.op, "couldnt_find_post"))?
       }
     };
 
@@ -329,7 +329,7 @@ impl Perform<PostResponse> for Oper<EditPost> {
     let data: &EditPost = &self.data;
     if has_slurs(&data.name) || 
       (data.body.is_some() && has_slurs(&data.body.to_owned().unwrap())) {
-        return Err(APIError::err(&self.op, "No slurs"))?
+        return Err(APIError::err(&self.op, "no_slurs"))?
       }
 
     let conn = establish_connection();
@@ -337,7 +337,7 @@ impl Perform<PostResponse> for Oper<EditPost> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -360,17 +360,17 @@ impl Perform<PostResponse> for Oper<EditPost> {
       .collect()
       );
     if !editors.contains(&user_id) {
-      return Err(APIError::err(&self.op, "Not allowed to edit post."))?
+      return Err(APIError::err(&self.op, "no_post_edit_allowed"))?
     }
 
     // Check for a community ban
     if CommunityUserBanView::get(&conn, user_id, data.community_id).is_ok() {
-      return Err(APIError::err(&self.op, "You have been banned from this community"))?
+      return Err(APIError::err(&self.op, "community_ban"))?
     }
 
     // Check for a site ban
     if UserView::read(&conn, user_id)?.banned {
-      return Err(APIError::err(&self.op, "You have been banned from the site"))?
+      return Err(APIError::err(&self.op, "site_ban"))?
     }
 
     let post_form = PostForm {
@@ -388,7 +388,7 @@ impl Perform<PostResponse> for Oper<EditPost> {
     let _updated_post = match Post::update(&conn, data.edit_id, &post_form) {
       Ok(post) => post,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't update Post"))?
+        return Err(APIError::err(&self.op, "couldnt_update_post"))?
       }
     };
 
@@ -431,7 +431,7 @@ impl Perform<PostResponse> for Oper<SavePost> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -446,14 +446,14 @@ impl Perform<PostResponse> for Oper<SavePost> {
       match PostSaved::save(&conn, &post_saved_form) {
         Ok(post) => post,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldnt do post save"))?
+          return Err(APIError::err(&self.op, "couldnt_save_post"))?
         }
       };
     } else {
       match PostSaved::unsave(&conn, &post_saved_form) {
         Ok(post) => post,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldnt do post save"))?
+          return Err(APIError::err(&self.op, "couldnt_save_post"))?
         }
       };
     }
index 31541168903e7da8da209c8e64459f7f2b9cbe45..08fefae45fc81545defb47cdcb6f48b9a0591e3d 100644 (file)
@@ -144,20 +144,20 @@ impl Perform<SiteResponse> for Oper<CreateSite> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
     if has_slurs(&data.name) || 
       (data.description.is_some() && has_slurs(&data.description.to_owned().unwrap())) {
-        return Err(APIError::err(&self.op, "No slurs"))?
+        return Err(APIError::err(&self.op, "no_slurs"))?
       }
 
     let user_id = claims.id;
 
     // Make sure user is an admin
     if !UserView::read(&conn, user_id)?.admin {
-      return Err(APIError::err(&self.op, "Not an admin."))?
+      return Err(APIError::err(&self.op, "not_an_admin"))?
     }
 
     let site_form = SiteForm {
@@ -170,7 +170,7 @@ impl Perform<SiteResponse> for Oper<CreateSite> {
     match Site::create(&conn, &site_form) {
       Ok(site) => site,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Site exists already"))?
+        return Err(APIError::err(&self.op, "site_already_exists"))?
       }
     };
 
@@ -194,20 +194,20 @@ impl Perform<SiteResponse> for Oper<EditSite> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
     if has_slurs(&data.name) || 
       (data.description.is_some() && has_slurs(&data.description.to_owned().unwrap())) {
-        return Err(APIError::err(&self.op, "No slurs"))?
+        return Err(APIError::err(&self.op, "no_slurs"))?
       }
 
     let user_id = claims.id;
 
     // Make sure user is an admin
     if UserView::read(&conn, user_id)?.admin == false {
-      return Err(APIError::err(&self.op, "Not an admin."))?
+      return Err(APIError::err(&self.op, "not_an_admin"))?
     }
 
     let found_site = Site::read(&conn, 1)?;
@@ -222,7 +222,7 @@ impl Perform<SiteResponse> for Oper<EditSite> {
     match Site::update(&conn, 1, &site_form) {
       Ok(site) => site,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't update site."))?
+        return Err(APIError::err(&self.op, "couldnt_update_site"))?
       }
     };
 
index d6d5962eb7ec4eada2943fc69e286c7c2ff80cf1..5d5f1a6be22d872ac4a1ae273e1c8626a4e758be 100644 (file)
@@ -102,13 +102,13 @@ impl Perform<LoginResponse> for Oper<Login> {
     // Fetch that username / email
     let user: User_ = match User_::find_by_email_or_username(&conn, &data.username_or_email) {
       Ok(user) => user,
-      Err(_e) => return Err(APIError::err(&self.op, "Couldn't find that username or email"))?
+      Err(_e) => return Err(APIError::err(&self.op, "couldnt_find_that_username_or_email"))?
     };
 
     // Verify the password
     let valid: bool = verify(&data.password, &user.password_encrypted).unwrap_or(false);
     if !valid {
-      return Err(APIError::err(&self.op, "Password incorrect"))?
+      return Err(APIError::err(&self.op, "password_incorrect"))?
     }
 
     // Return the jwt
@@ -129,16 +129,16 @@ impl Perform<LoginResponse> for Oper<Register> {
 
     // Make sure passwords match
     if &data.password != &data.password_verify {
-      return Err(APIError::err(&self.op, "Passwords do not match."))?
+      return Err(APIError::err(&self.op, "passwords_dont_match"))?
     }
 
     if has_slurs(&data.username) {
-      return Err(APIError::err(&self.op, "No slurs"))?
+      return Err(APIError::err(&self.op, "no_slurs"))?
     }
 
     // Make sure there are no admins
     if data.admin && UserView::admins(&conn)?.len() > 0 {
-      return Err(APIError::err(&self.op, "Sorry, there's already an admin."))?
+      return Err(APIError::err(&self.op, "admin_already_created"))?
     }
 
     // Register the new user
@@ -157,7 +157,7 @@ impl Perform<LoginResponse> for Oper<Register> {
     let inserted_user = match User_::register(&conn, &user_form) {
       Ok(user) => user,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "User already exists."))?
+        return Err(APIError::err(&self.op, "user_already_exists"))?
       }
     };
 
@@ -188,7 +188,7 @@ impl Perform<LoginResponse> for Oper<Register> {
     let _inserted_community_follower = match CommunityFollower::follow(&conn, &community_follower_form) {
       Ok(user) => user,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Community follower already exists."))?
+        return Err(APIError::err(&self.op, "community_follower_already_exists"))?
       }
     };
 
@@ -202,7 +202,7 @@ impl Perform<LoginResponse> for Oper<Register> {
       let _inserted_community_moderator = match CommunityModerator::join(&conn, &community_moderator_form) {
         Ok(user) => user,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Community moderator already exists."))?
+          return Err(APIError::err(&self.op, "community_moderator_already_exists"))?
         }
       };
 
@@ -321,7 +321,7 @@ impl Perform<AddAdminResponse> for Oper<AddAdmin> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -329,7 +329,7 @@ impl Perform<AddAdminResponse> for Oper<AddAdmin> {
 
     // Make sure user is an admin
     if UserView::read(&conn, user_id)?.admin == false {
-      return Err(APIError::err(&self.op, "Not an admin."))?
+      return Err(APIError::err(&self.op, "not_an_admin"))?
     }
 
     let read_user = User_::read(&conn, data.user_id)?;
@@ -348,7 +348,7 @@ impl Perform<AddAdminResponse> for Oper<AddAdmin> {
     match User_::update(&conn, data.user_id, &user_form) {
       Ok(user) => user,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't update user"))?
+        return Err(APIError::err(&self.op, "couldnt_update_user"))?
       }
     };
 
@@ -380,7 +380,7 @@ impl Perform<BanUserResponse> for Oper<BanUser> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -388,7 +388,7 @@ impl Perform<BanUserResponse> for Oper<BanUser> {
 
     // Make sure user is an admin
     if UserView::read(&conn, user_id)?.admin == false {
-      return Err(APIError::err(&self.op, "Not an admin."))?
+      return Err(APIError::err(&self.op, "not_an_admin"))?
     }
 
     let read_user = User_::read(&conn, data.user_id)?;
@@ -407,7 +407,7 @@ impl Perform<BanUserResponse> for Oper<BanUser> {
     match User_::update(&conn, data.user_id, &user_form) {
       Ok(user) => user,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Couldn't update user"))?
+        return Err(APIError::err(&self.op, "couldnt_update_user"))?
       }
     };
 
@@ -448,7 +448,7 @@ impl Perform<GetRepliesResponse> for Oper<GetReplies> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -476,7 +476,7 @@ impl Perform<GetRepliesResponse> for Oper<MarkAllAsRead> {
     let claims = match Claims::decode(&data.auth) {
       Ok(claims) => claims.claims,
       Err(_e) => {
-        return Err(APIError::err(&self.op, "Not logged in."))?
+        return Err(APIError::err(&self.op, "not_logged_in"))?
       }
     };
 
@@ -499,7 +499,7 @@ impl Perform<GetRepliesResponse> for Oper<MarkAllAsRead> {
       let _updated_comment = match Comment::update(&conn, reply.id, &comment_form) {
         Ok(comment) => comment,
         Err(_e) => {
-          return Err(APIError::err(&self.op, "Couldn't update Comment"))?
+          return Err(APIError::err(&self.op, "couldnt_update_comment"))?
         }
       };
     }
index f10dd10d62bf6ba56b571d4992444c5c74437caa..49b982dc95df564674ad980d1ebda18d9125638e 100644 (file)
@@ -167,7 +167,7 @@ export class Communities extends Component<any, CommunitiesState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.ListCommunities) {
       let res: ListCommunitiesResponse = msg;
index 5db2fcb633032936f7a9cb2edc0a33b6fe44c233..b039fb4d9ee5d4d6fadeee6cd471a71ef6b39d1b 100644 (file)
@@ -155,7 +155,7 @@ export class CommunityForm extends Component<CommunityFormProps, CommunityFormSt
     let op: UserOperation = msgOp(msg);
     console.log(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       this.state.loading = false;
       this.setState(this.state);
       return;
index 920b2eae23340c23dccb30bcf2619e3357872430..480b909ea3b04ae519e6c1f79ccc54ab351f787d 100644 (file)
@@ -194,7 +194,7 @@ export class Community extends Component<any, State> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.GetCommunity) {
       let res: GetCommunityResponse = msg;
index 909fe44786bd9e45db32c2b38a78509f7f0285dd..c9f46b36af6521c97a59e9ccb15acf010cf36115 100644 (file)
@@ -166,7 +166,7 @@ export class Inbox extends Component<any, InboxState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.GetReplies || op == UserOperation.MarkAllAsRead) {
       let res: GetRepliesResponse = msg;
index 8114be0116aed0de772ca0162ca89f3db5e5c810..e7af89ca981133cd93be790fa3b3935eb90428df 100644 (file)
@@ -184,7 +184,7 @@ export class Login extends Component<any, State> {
   parseMessage(msg: any) {
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       this.state = this.emptyState;
       this.setState(this.state);
       return;
index 88f657c703e38fa948591c00ce1969547f5313c7..91d56cc0c2ced0f09b09f2e51f6587afe45d4ed6 100644 (file)
@@ -382,7 +382,7 @@ export class Main extends Component<any, MainState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.GetFollowedCommunities) {
       let res: GetFollowedCommunitiesResponse = msg;
index b8e5846159b5e4dfc71a3bbb745cef706cd5e461..ba1fe5a21d49cb0f3885831664ddc77219203ef5 100644 (file)
@@ -223,7 +223,7 @@ export class Modlog extends Component<any, ModlogState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.GetModlog) {
       let res: GetModlogResponse = msg;
index bfc861bd3a7d0555e217dfb4c4ed8f06f8ba4247..8aa7a5eaa2de67937a689b97a28e300b3a889cc3 100644 (file)
@@ -203,7 +203,7 @@ export class PostForm extends Component<PostFormProps, PostFormState> {
   parseMessage(msg: any) {
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       this.state.loading = false;
       this.setState(this.state);
       return;
index f582f0d75608e2fc2ab7934978937febb4882d6a..b0204d38844f8d20be5dd93ee2845874eed1e279 100644 (file)
@@ -244,7 +244,7 @@ export class Post extends Component<any, PostState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.GetPost) {
       let res: GetPostResponse = msg;
index ae29fd0b6d038bdb244ef6f88beb28c8eefc7f38..01122fd437373a7861977fe0dadb33ee39d2e010 100644 (file)
@@ -246,7 +246,7 @@ export class Search extends Component<any, SearchState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.Search) {
       let res: SearchResponse = msg;
index fbfb2e13b09f24b66ef147540fb12b811db783bc..f11dc14e0d07b64a238b8d527b86258bc454ef19 100644 (file)
@@ -135,7 +135,7 @@ export class Setup extends Component<any, State> {
   parseMessage(msg: any) {
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       this.state.userLoading = false;
       this.setState(this.state);
       return;
index f0034a4731a12e767d153043255f45ea38c41cbd..c6a70560f497b74eeccbbe2f0795b12866fbf51d 100644 (file)
@@ -333,7 +333,7 @@ export class User extends Component<any, UserState> {
     console.log(msg);
     let op: UserOperation = msgOp(msg);
     if (msg.error) {
-      alert(msg.error);
+      alert(i18n.t(msg.error));
       return;
     } else if (op == UserOperation.GetUserDetails) {
       let res: UserDetailsResponse = msg;
index 986855a347a4f9355fa10b1e4445f098986902c9..c192c2b77add21af3462149398dad568674f874d 100644 (file)
@@ -4,6 +4,7 @@ import { webSocket } from 'rxjs/webSocket';
 import { Subject } from 'rxjs';
 import { retryWhen, delay, take } from 'rxjs/operators';
 import { UserService } from './';
+import { i18n } from '../i18next';
 
 export class WebSocketService {
   private static _instance: WebSocketService;
@@ -192,7 +193,7 @@ export class WebSocketService {
   private setAuth(obj: any, throwErr: boolean = true) {
     obj.auth = UserService.Instance.auth;
     if (obj.auth == null && throwErr) {
-      alert("Not logged in.");
+      alert(i18n.t('not_logged_in'));
       throw "Not logged in";
     }
   }
index 043f8b82f92f4a77af819e0cdf28d258e6db3d00..619aced69d763007cec1b416372fcb00f87230fe 100644 (file)
@@ -122,6 +122,39 @@ export const en = {
     joined: 'Joined',
     powered_by: 'Powered by',
     landing_0: 'Lemmy is a <1>link aggregator</1> / reddit alternative, intended to work in the <2>fediverse</2>.<3></3>Its self-hostable, has live-updating comment threads, and is tiny (<4>~80kB</4>). Federation into the ActivityPub network is on the roadmap. <5></5>This is a <6>very early beta version</6>, and a lot of features are currently broken or missing. <7></7>Suggest new features or report bugs <8>here.</8><9></9>Made with <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.',
+    not_logged_in: 'Not logged in.',
+    community_ban: 'You have been banned from this community.',
+    site_ban: 'You have been banned from the site',
+    couldnt_create_comment: 'Couldn\'t create comment.',
+    couldnt_like_comment: 'Couldn\'t like comment.',
+    couldnt_update_comment: 'Couldn\'t update comment.',
+    couldnt_save_comment: 'Couldn\'t save comment.',
+    no_comment_edit_allowed: 'Not allowed to edit comment.',
+    no_post_edit_allowed: 'Not allowed to edit post.',
+    no_community_edit_allowed: 'Not allowed to edit community.',
+    couldnt_find_community: 'Couldn\'t find community.',
+    couldnt_update_community: 'Couldn\'t update Community.',
+    community_already_exists: 'Community already exists.',
+    community_moderator_already_exists: 'Community moderator already exists.',
+    community_follower_already_exists: 'Community follower already exists.',
+    community_user_already_banned: 'Community user already banned.',
+    couldnt_create_post: 'Couldn\'t create post.',
+    couldnt_like_post: 'Couldn\'t like post.',
+    couldnt_find_post: 'Couldn\'t find post.',
+    couldnt_get_posts: 'Couldn\'t get posts',
+    couldnt_update_post: 'Couldn\'t update post',
+    couldnt_save_post: 'Couldn\'t save post.',
+    no_slurs: 'No slurs.',
+    not_an_admin: 'Not an admin.',
+    site_already_exists: 'Site already exists.',
+    couldnt_update_site: 'Couldn\'t update site.',
+    couldnt_find_that_username_or_email: 'Couldn\'t find that username or email.',
+    password_incorrect: 'Password incorrect.',
+    passwords_dont_match: 'Passwords do not match.',
+    admin_already_created: 'Sorry, there\'s already an admin.',
+    user_already_exists: 'User already exists.',
+    couldnt_update_user: 'Couldn\'t update user.',
+    system_err_login: 'System error. Try logging out and back in.',
   },
 }
 
index 578136b0a542428aab2d757ea17f7d18bb238194..f47c16c45912d5edf90adf73f97c51835d656f7d 100644 (file)
@@ -2,7 +2,7 @@
 # yarn lockfile v1
 
 
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5":
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.3.1":
   version "7.5.5"
   resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132"
   integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==
@@ -1212,18 +1212,6 @@ http-signature@~1.2.0:
     jsprim "^1.2.2"
     sshpk "^1.7.0"
 
-i18next-browser-languagedetector@^3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-3.0.3.tgz#879ebe421685c70cc5cfa96191364a35ea7da742"
-  integrity sha512-1YuAogyQap0J6N4kM+6gAjZ6T7QWrp3xZCmSs0QedkNmgAKhj7FiQlCviHKl3IwbM6zJNgft4D7UDPWb1dTCMQ==
-
-i18next-xhr-backend@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/i18next-xhr-backend/-/i18next-xhr-backend-3.1.1.tgz#9221ba6911d466c38693fd43eb8ff10b48d3438a"
-  integrity sha512-Fui5puKb1pD+Z1+biwzA9jPQTvwOgz8SOkwu7yGRorCQraOgKxp86T310HoUM2CR9VV0MM2pJdntEQrgC45+RA==
-  dependencies:
-    "@babel/runtime" "^7.5.5"
-
 i18next@^17.0.9:
   version "17.0.9"
   resolved "https://registry.yarnpkg.com/i18next/-/i18next-17.0.9.tgz#5f835e91a34fa5e7da1e5ae4c4586c81d7c4b17f"