From dec757eb9e95b356431d51a49335a447fbaf4e58 Mon Sep 17 00:00:00 2001 From: Nika Tskhakaia Date: Fri, 10 Apr 2020 14:40:20 +0000 Subject: [PATCH 01/12] Translated using Weblate (Georgian) Currently translated at 67.5% (160 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ka/ Translated using Weblate (Georgian) Currently translated at 62.8% (149 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ka/ --- ui/translations/ka.json | 97 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/ui/translations/ka.json b/ui/translations/ka.json index 01dbe4ed4..21db25ef2 100644 --- a/ui/translations/ka.json +++ b/ui/translations/ka.json @@ -71,5 +71,100 @@ "unsticky": "unsticky", "remove_as_mod": "მოხსენი როგორც მოდერატორი", "remove_as_admin": "მოხსენი როგორც ადმინი", - "delete_account_confirm": "გაფთხილება: ეს შენს ყველაფერს წაშლის. პაროლი ჩაწერეთ რომ დაადასტუროთ." + "delete_account_confirm": "გაფთხილება: ეს შენს ყველაფერს წაშლის. პაროლი ჩაწერეთ რომ დაადასტუროთ.", + "creator": "შემქნელი", + "username": "მომხმარებლის სახელი", + "email_or_username": "ელ-პოსტა ან მომხმარებლის სახელი", + "number_of_users": "მომხმარებელი", + "number_of_users_plural": "მომხმარებლები", + "number_of_subscribers": "გამომწერი", + "number_of_subscribers_plural": "გამომწერები", + "number_of_points": "ქულა", + "number_of_points_plural": "ქულა", + "number_online": "მომხმარებელი საიტზე", + "number_online_plural": "მომხმარებელი საიტზე", + "name": "სახელი", + "title": "სათაური", + "category": "კატეგორია", + "subscribers": "გამომწერი", + "both": "ორივე", + "saved": "შანახული", + "unsubscribe": "გამოწერის გაუქმნება", + "subscribe": "გამოწერა", + "subscribed": "გამოწერილია", + "prev": "წუნა", + "next": "შემდეგი", + "sidebar": "Sidebar", + "sort_type": "სორტირების ტიპი", + "inbox": "Inbox", + "inbox_for": "<1>{{user}}-s Inbox", + "mark_all_as_read": "მონიშვნა ყველასი როგორც წაკითხული", + "type": "ტიპი", + "unread": "წაუკითხავია", + "mentions": "ხსენებები", + "reply_sent": "პასუხი გაგზავნილია", + "message_sent": "მესეჯი", + "search": "ძებმა", + "overview": "გადახედვა", + "view": "ნახვა", + "logout": "გასვლა", + "login_sign_up": "შესვლა ან რეგისტრაცია", + "login": "შესვლა", + "sign_up": "რეგისტრაცია", + "unread_messages": "წაუკითხავი მესეჯები", + "messages": "მესეჯები", + "password": "პაროლი", + "verify_password": "პაროლის დადასტურება", + "old_password": "ძველი პაროლი", + "forgot_password": "აღგდენა", + "reset_password_mail_sent": "ელ-პოსტა შეამოწმეთ", + "password_change": "პაროლის შეცვლა", + "new_password": "ახალი პაროლი", + "email": "ელ-პოსტა", + "matrix_user_id": "მატრიცული მომხმარებელი", + "private_message_disclaimer": ".", + "send_notifications_to_email": "შეტყობინების გაგზავნა ელ-პოსტაზე", + "optional": "არასავალდებულო", + "expires": "ვადა გასდის", + "language": "ენა", + "browser_default": "Browser Default", + "enable_downvotes": "არმოწონების ჩართვა", + "upvote": "მოწონება", + "downvote": "არ მოწონება", + "open_registration": "რეგისტრაციის გახსნა", + "registration_closed": "რეგისტრაცია დახურულია", + "enable_nsfw": "Enable NSFW", + "url": "მისამართი", + "body": "ტექსტი", + "copy_suggested_title": "დაკოპირება რეკომინდებულის სათაური: {{title}}", + "community": "თემა", + "expand_here": "Expand here", + "subscribe_to_communities": "Subscribe to some <1>communities.", + "chat": "ჩეტი", + "recent_comments": "ბოლო კომენტარები", + "no_results": "0 შედეგი", + "setup": "Setup", + "lemmy_instance_setup": "Lemmy Instance Setup", + "setup_admin": "Set Up Site Administrator", + "your_site": "შენი გვერდი", + "modified": "რედაკტირებული", + "nsfw": "NSFW", + "notifications_error": "გთხოვთ იხმაღეთ Chome ან Firefox შეტყობინებისთვის", + "no_email_setup": "This server hasn't correctly set up email.", + "downvotes_disabled": "არმოწონები გამორთულია", + "number_of_upvotes": "მოწონება", + "number_of_upvotes_plural": "მოწონება", + "number_of_downvotes": "არ მოწონება", + "number_of_downvotes_plural": "არ მოწონება", + "hot": "ცხელი", + "new": "ახალი", + "old": "ძველი", + "top_day": "ტოპ დღეს", + "week": "კვირა", + "month": "თვე", + "year": "წელი", + "all": "ყველა", + "top": "ტოპ", + "api": "API", + "show_nsfw": "Show NSFW content" } From 09538541dd087390f1cb520791a957ee6ebd90f2 Mon Sep 17 00:00:00 2001 From: nick t Date: Fri, 10 Apr 2020 14:40:20 +0000 Subject: [PATCH 02/12] Translated using Weblate (Georgian) Currently translated at 84.3% (200 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ka/ --- ui/translations/ka.json | 57 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/ui/translations/ka.json b/ui/translations/ka.json index 21db25ef2..ebda8982e 100644 --- a/ui/translations/ka.json +++ b/ui/translations/ka.json @@ -166,5 +166,60 @@ "all": "ყველა", "top": "ტოპ", "api": "API", - "show_nsfw": "Show NSFW content" + "show_nsfw": "Show NSFW content", + "related_posts": "ეს პოსტები შეიძლება ერთმანეც ეხება", + "cross_post": "გადაკვეთა-პოსტი", + "general_sponsors": "General Sponsors are those that pledged $10 to $39 to Lemmy.", + "cross_posted_to": "გადაკვეთა-პოსტი გაკეთდა: ", + "subscribed_to_communities": "მიყვები <1>communities", + "trending_communities": "ტრენდული <1>communities", + "list_of_communities": "ყველა თემა", + "number_of_communities": "თემა", + "number_of_communities_plural": "თემები", + "landing": "Lemmy is a <1>link aggregator / reddit alternative, intended to work in the <2>fediverse.<3>It's self-hostable, has live-updating comment threads, and is tiny (<4>~80kB). Federation into the ActivityPub network is on the roadmap. <5>This is a <6>very early beta version, and a lot of features are currently broken or missing. <7>Suggest new features or report bugs <8>here.<9>Made with <10>Rust, <11>Actix, <12>Inferno, <13>Typescript.", + "docs": "დოკუმენტაცია", + "couldnt_like_comment": "კომენტარის მოწონება ვერ მოხერხდა.", + "couldnt_update_comment": "კომენტარის განახლება ვერ მოხერხდა.", + "replies": "პასუხები", + "theme": "საიტის თემა", + "sponsors": "სპონსორები", + "sponsors_of_lemmy": "Sponsors", + "sponsor_message": "Lemmy is free, <1>open-source software, meaning no advertising, monetizing, or venture capital, ever. Your donations directly support full-time development of the project. Thank you to the following people:", + "support_on_patreon": "Support on Patreon", + "support_on_liberapay": "Support on Liberapay", + "donate_to_lemmy": "Donate to Lemmy", + "no_comment_edit_allowed": "კომენტარის რედაკტირება არ შეიძლება.", + "donate": "Donate", + "crypto": "Crypto", + "bitcoin": "Bitcoin", + "ethereum": "Ethereum", + "code": "კოდი", + "joined": "დაემატა", + "by": "by", + "to": "to", + "from": "from", + "transfer_community": "transfer community", + "transfer_site": "transfer site", + "are_you_sure": "დარწმუნებული ხარ?", + "yes": "კი", + "no": "არა", + "powered_by": "Powered by", + "not_logged_in": "შასული არ ხართ", + "logged_in": "შაული ხართ.", + "community_ban": "შენ ამ თემისგან გაშავებული ხარ.", + "site_ban": "საიტიდან გაშავებული ხარ.", + "couldnt_create_comment": "კომენტარის შექმნა ვერ მოხერხდა.", + "couldnt_find_community": "ტემა არ მოიძებნა.", + "couldnt_save_comment": "კომენტარის შენახვა ვერ მოხერხდა.", + "couldnt_get_comments": "კომენტარების ნახვა ვერ მოხერხდა.", + "no_post_edit_allowed": "პოსტის რედაკტირება არ შეიძლება.", + "no_community_edit_allowed": "თემის რედაკტირება არ შეიძლება.", + "couldnt_update_community": "თემა ვერ განახლდა.", + "community_already_exists": "ეს თემა უკვე არსებობს.", + "community_follower_already_exists": "თემის ფოლოვორი უკვე არსებობს.", + "community_user_already_banned": "თემის მომხმარებელი უკვე შავ სიაშია.", + "couldnt_like_post": "პოსტის მოწონება ვერ მოხერხდა.", + "community_moderator_already_exists": "ამ თემის მოდერატორი უკვე არსებობს.", + "couldnt_create_post": "პოსტი ვერ შეიქმნა.", + "post_title_too_long": "პოსტის სათაური ძალიან გრძელია." } From c459a5208543c5aa6da46048e7b66a039c273878 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sat, 11 Apr 2020 23:22:46 -0400 Subject: [PATCH 03/12] Add Emoji Picker for comments and post body. - Fixes #634 --- ui/assets/css/main.css | 2 +- ui/package.json | 1 + ui/src/components/comment-form.tsx | 28 +++++++++++ ui/src/components/post-form.tsx | 32 ++++++++++++- ui/src/components/symbols.tsx | 3 ++ ui/src/utils.ts | 9 ++++ ui/translations/en.json | 1 + ui/yarn.lock | 75 +++++++++++++++++++++++++++++- 8 files changed, 147 insertions(+), 4 deletions(-) diff --git a/ui/assets/css/main.css b/ui/assets/css/main.css index 1c8206e35..bf249e5bf 100644 --- a/ui/assets/css/main.css +++ b/ui/assets/css/main.css @@ -156,7 +156,7 @@ hr { } .emoji { - height: 1.2em !important; + max-height: 1.2em !important; } .text-wrap-truncate { diff --git a/ui/package.json b/ui/package.json index 7d946614c..25ee2e00d 100644 --- a/ui/package.json +++ b/ui/package.json @@ -14,6 +14,7 @@ }, "keywords": [], "dependencies": { + "@joeattardi/emoji-button": "^2.12.1", "@types/autosize": "^3.0.6", "@types/js-cookie": "^2.2.5", "@types/jwt-decode": "^2.2.1", diff --git a/ui/src/components/comment-form.tsx b/ui/src/components/comment-form.tsx index ae3e7cfc3..6898ebc79 100644 --- a/ui/src/components/comment-form.tsx +++ b/ui/src/components/comment-form.tsx @@ -17,10 +17,12 @@ import { toast, setupTribute, wsJsonToRes, + emojiPicker, } from '../utils'; import { WebSocketService, UserService } from '../services'; import autosize from 'autosize'; import Tribute from 'tributejs/src/Tribute.js'; +import emojiShortName from 'emoji-short-name'; import { i18n } from '../i18next'; interface CommentFormProps { @@ -69,6 +71,8 @@ export class CommentForm extends Component { super(props, context); this.tribute = setupTribute(); + this.setupEmojiPicker(); + this.state = this.emptyState; if (this.props.node) { @@ -209,6 +213,15 @@ export class CommentForm extends Component { )} + + + + + @@ -216,6 +229,17 @@ export class CommentForm extends Component { ); } + setupEmojiPicker() { + emojiPicker.on('emoji', emoji => { + if (this.state.commentForm.content == null) { + this.state.commentForm.content = ''; + } + let shortName = `:${emojiShortName[emoji]}:`; + this.state.commentForm.content += shortName; + this.setState(this.state); + }); + } + handleFinished() { this.state.previewMode = false; this.state.loading = false; @@ -242,6 +266,10 @@ export class CommentForm extends Component { i.setState(i.state); } + handleEmojiPickerClick(_i: CommentForm, event: any) { + emojiPicker.togglePicker(event.target); + } + handleCommentContentChange(i: CommentForm, event: any) { i.state.commentForm.content = event.target.value; i.setState(i.state); diff --git a/ui/src/components/post-form.tsx b/ui/src/components/post-form.tsx index 47920b9b4..a65ead462 100644 --- a/ui/src/components/post-form.tsx +++ b/ui/src/components/post-form.tsx @@ -34,9 +34,11 @@ import { randomStr, setupTribute, setupTippy, + emojiPicker, } from '../utils'; import autosize from 'autosize'; import Tribute from 'tributejs/src/Tribute.js'; +import emojiShortName from 'emoji-short-name'; import Selectr from 'mobius1-selectr'; import { i18n } from '../i18next'; @@ -92,6 +94,8 @@ export class PostForm extends Component { this.fetchPageTitle = debounce(this.fetchPageTitle).bind(this); this.tribute = setupTribute(); + this.setupEmojiPicker(); + this.state = this.emptyState; if (this.props.post) { @@ -191,7 +195,7 @@ export class PostForm extends Component {