{"id":25937,"date":"2022-10-23T17:17:08","date_gmt":"2022-10-23T06:17:08","guid":{"rendered":"https:\/\/dev.oven.vn\/?p=25937"},"modified":"2022-10-23T17:17:49","modified_gmt":"2022-10-23T06:17:49","slug":"oven-transwitcher-slack-bot-translate","status":"publish","type":"post","link":"https:\/\/dev.oven.vn\/vi\/2022\/10\/23\/oven-transwitcher-slack-bot-translate\/","title":{"rendered":"OVEN TransWitcher \u2013 Slack Bot Translate"},"content":{"rendered":"<h3 class=\"wp-block-heading\">Introduction To Slack<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There are still a lot of people who have big questions about what the Slack tool is and how to use it. It can be said simply that Slack is a \u201cchat room\u201d for all employees in your company. Slack users can message chat, and share documents, images, \u2026 to everyone in the group quickly.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/slack.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/slack.jpg\" alt=\"Logo\"\/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest advantage of Slack is that it can be used on many different platforms such as computers, Android, and iOS, so all employees in the company can use and chat with each other no matter what device they use.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reality<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">That advantage has attracted many international companies to use Slack and led to a situation where it is difficult to communicate in many different languages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Have you ever been invited to a chat channel where people speak different languages \u200b\u200band you have a hard time keeping up with the conversation?<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/question.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/question.png\" alt=\"Logo\"\/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#heres-why\"><\/a>Here\u2019s Why:<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>For that reason, I have researched and developed a Slack bot application to help automatically translate channel messages into a language of choice.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is a simple Slackbot that supports the following features:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Invite bot to chat channel (public)<\/li><li>Remove bot from chat channel (public)<\/li><li>Add language to language list for translation<\/li><li>Remove the language from the list of languages \u200b\u200bto translate<\/li><li>Show list of languages \u200b\u200bto translate<\/li><li>Find the code of languages \u200b\u200bthat support translation<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Slackbot monitors messages sent to the channel and automatically translates into selected languages \u200b\u200b(text messages only)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Built With<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This section should list any major frameworks\/libraries used to bootstrap my project. Leave any add-ons\/plugins for the acknowledgments section. Here are a few stacks.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/tokumasu.sakura.ne.jp\/sandboxwp-content\/uploads\/2022\/10\/Screen-Shot-2022-10-06-at-10.55.26.png\" alt=\"\" class=\"wp-image-25664\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Getting Started<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple steps.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#prerequisites\"><\/a>Prerequisites<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">This is an example of how to list things you need to use the software and how to install them.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Docker<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get remove docker docker-engine docker.io containerd runc<br>sudo apt-get update<br>sudo apt-get install -y \\<br>ca-certificates \\<br>curl \\<br>gnupg \\<br>lsb-release<br>sudo rm -rf \/usr\/share\/keyrings\/docker-archive-keyring.gpg<br>curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg<br><mark>echo<\/mark> \\<br><mark>\"deb &#91;arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu \\<br>$(lsb_release -cs) stable\"<\/mark> | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null<br>sudo apt-get update<br>sudo apt-get install -y docker-ce docker-ce-cli containerd.io<br>sudo usermod -a -G docker $USER<br>sudo curl -L<strong> <\/strong><mark>\"https:\/\/github.com\/docker\/compose\/releases\/download\/v2.2.2\/docker-compose-linux-$(uname -m)\"<\/mark><strong> <\/strong>-o \/usr\/local\/bin\/docker-compose<br>sudo chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#create-env-file-with-keys-for\"><\/a>Create<kbd>&nbsp;<\/kbd>.env&nbsp;File, With Keys For:<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Slack tokens \u2013 sign up for Slack, \u201cAdd a Bot User\u201d to create your bot, and go to the Basic Information panel to find:<ul><li><code><mark>SLACK_BOT_TOKEN<\/mark><\/code><\/li><li><code><mark>SLACK_SIGNING_SECRET<\/mark><\/code><\/li><li><code><mark>SLACK_APP_TOKEN<\/mark><\/code><\/li><\/ul><\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Add The Bot To The Slack Workspace:<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>enable Slash Commands (see&nbsp;<a href=\"https:\/\/medium.com\/slack-developer-blog\/build-a-serverless-slack-bot-in-9-minutes-with-node-js-and-stdlib-b993cfa15358\">minute 6 of this tutorial<\/a>)<\/li><li>modify&nbsp;<mark><code>SLACK_BOT_TOKEN<\/code><\/mark>&nbsp;from Your Slack App Dashboard -&gt; Install App -&gt; Bot User OAuth Token<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/botToken.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/botToken.jpg\" alt=\"botToken\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>modify&nbsp;<mark><code>SLACK_SIGNING_SECRET<\/code><\/mark>&nbsp;from Your Slack App Dashboard -&gt; Basic information -&gt; App Credentials -&gt; Client Secret<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/singingSecret.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/singingSecret.png\" alt=\"singingSecret\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>modify&nbsp;<mark><code>SLACK_APP_TOKEN<\/code><\/mark>&nbsp;from Your Slack App Dashboard -&gt; Basic information -&gt; App-Level Tokens -&gt; Tokens<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/genAuthToken.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/genAuthToken.png\" alt=\"genAuthToken\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/authToken.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/authToken.png\" alt=\"authToken\"\/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Add The Bot To The Slack Workspace:<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>Go to your Dashboard -&gt; OAuth &amp; Permissions :<ul><li>channels:history<\/li><li>channels:join<\/li><li>channels:manage<\/li><li>channels:read<\/li><li>chat:write<\/li><li>chat:write.customize<\/li><li>chat:write.public<\/li><li>commands<\/li><li>emoji:read<\/li><li>groups:history<\/li><li>groups:write<\/li><li>im:history<\/li><li>im:write<\/li><li>incoming-webhook<\/li><li>mpim:history<\/li><li>mpim:write<\/li><li>users.profile:read<\/li><li>users:read<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/scope1.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/scope1.png\" alt=\"scope1\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/scope2.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/scope2.png\" alt=\"scope2\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/scope3.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/scope3.png\" alt=\"scope3\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>Go to your Dashboard -&gt; Event Subscriptions -&gt; Subscribe to bot events:<ul><li>message.channels<\/li><li>message.groups<\/li><li>message.im<\/li><li>message.mpim<\/li><\/ul><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/events.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/events.png\" alt=\"events\"\/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#enable-theses-slash-command\"><\/a>Enable Theses Slash Command<\/h4>\n\n\n\n<ul class=\"wp-block-list\"><li>type<code><strong>&nbsp;\/heybot [language]<\/strong><\/code>&nbsp;in a slack public channel to invite bot to channel.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/heybot.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/heybot.png\" alt=\"heybot\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/heybotCPL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/heybotCPL.png\" alt=\"heybotCPL\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>type<code><strong>&nbsp;\/byebot [language]<\/strong><\/code>&nbsp;in a public channel that Bot was invited to remove.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/byebot.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/byebot.png\" alt=\"byebot\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/byebotCPL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/byebotCPL.png\" alt=\"byebotCPL\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>type<code>&nbsp;<strong>\/addlang [language]<\/strong><\/code>&nbsp;in a public channel that Bot was invited with<strong>&nbsp;<mark>2 digit ISO language code&nbsp;<\/mark><\/strong>to add language.<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Example:&nbsp;<code><strong>\/addlang en&nbsp;<\/strong><\/code>for add&nbsp;<strong>English<\/strong>&nbsp;to translate languages list.<br><code><strong>\/addlang ja&nbsp;<\/strong><\/code>for add&nbsp;<strong>Japanese<\/strong>&nbsp;to translate languages list.<br><code><strong>\/addlang vi&nbsp;<\/strong><\/code>for add&nbsp;<strong>Vietnamese&nbsp;<\/strong>to translate languages list.<\/p><\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/addlang.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/addlang.png\" alt=\"addlang\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/addlangCPL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/addlangCPL.png\" alt=\"addlangCPL\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>type&nbsp;<code><strong>\/byelang [language]<\/strong><\/code>&nbsp;in a public channel that Bot was invited with&nbsp;<strong><mark>2 digit ISO language code<\/mark><\/strong>&nbsp;to remove language.<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>Example:&nbsp;<code><strong>\/byelang en&nbsp;<\/strong><\/code>for remove&nbsp;<strong>English<\/strong>&nbsp;to translate languages list.<br><strong><code><\/code><\/strong><code><strong>\/byelang ja&nbsp;<\/strong><\/code>for remove&nbsp;<strong>Japanese<\/strong>&nbsp;to translate languages list.<br><code><strong>\/byelang vi<\/strong><\/code>&nbsp;for remove&nbsp;<strong>Vietnamese<\/strong>&nbsp;to translate languages list.<\/p><\/blockquote>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/byelang.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/byelang.png\" alt=\"byelang\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/byelangCPL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/byelangCPL.png\" alt=\"byelangCPl\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>type&nbsp;<code><strong>\/listlang<\/strong><\/code>&nbsp;in a public channel that Bot was invited to show current languages list.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/listlang.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/listlang.png\" alt=\"listlang\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/listlangCPL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/listlangCPL.png\" alt=\"listlangCPL\"\/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\"><li>type&nbsp;<code><strong>\/findlang<\/strong><\/code>&nbsp;in a public channel that Bot was invited to show supported language list to translate.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/findlang.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/findlang.png\" alt=\"findlang\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/blob\/main\/docs\/usage\/findlangCPL.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\/raw\/main\/docs\/usage\/findlangCPL.png\" alt=\"findlangCPL\"\/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#installation\"><\/a>Installation<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn\u2019t rely on any external dependencies or services.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1. Clone the repo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate.git<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">2. Install NPM packages<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">3. Modify your TOKEN KEY in&nbsp;<code><mark>.env<\/mark><\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SLACK_BOT_TOKEN={SLACK_BOT_TOKEN}\nSLACK_APP_TOKEN={SLACK_APP_TOKEN}\nSLACK_SIGNING_SECRET={SLACK_SIGNING_SECRET}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li>Run with Docker<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Modify your TOKEN KEY at readonly variables in&nbsp;<code><mark>start.sh<\/mark><\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>readonly SLACK_BOT_TOKEN={SLACK_BOT_TOKEN}\nreadonly SLACK_APP_TOKEN={SLACK_APP_TOKEN}\nreadonly SLACK_SIGNING_SECRET={SLACK_SIGNING_SECRET}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Run with&nbsp;<code>start.sh<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bash start.sh<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#roadmap\"><\/a>Roadmap<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>&nbsp;Add a bot to the public channel<\/li><li>&nbsp;Command to find languages to be support<\/li><li>&nbsp;Command to show a list of languages that translated to<\/li><li>&nbsp;Command to add language to be translate<\/li><li>&nbsp;Command to remove language to be translate<\/li><li>&nbsp;Automatic translation<\/li><li>&nbsp;Remove bot from the public channel<\/li><li><em>&nbsp;<strong>Add a bot to a private channel &amp; direct message&nbsp;<\/strong><\/em><strong><em>(developing)<\/em><\/strong><\/li><li><em><strong>&nbsp;Able to detect a variety of messages<\/strong><\/em>&nbsp;<strong><em>(developing)<\/em><\/strong><\/li><li><em><strong>&nbsp;Send a direct message to a bot<\/strong><\/em>&nbsp;<strong><em>(developing)<\/em><\/strong><\/li><li>&nbsp;Multi-language Support<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#contributing\"><\/a>Contributing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are&nbsp;<strong>greatly appreciated<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \u201cenhancement\u201d. Don\u2019t forget to give the project a star! Thanks again!<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Fork the Project<\/li><li>Create your Feature Branch (<code><kbd><mark>git checkout -b feature\/Amazin<\/mark><\/kbd><\/code><mark><code><kbd>gFeature<\/kbd><\/code>)<\/mark><\/li><li>Commit your changes (<mark><code>git commit -m 'Add some AmazingFeature'<\/code>)<\/mark><\/li><li>Push to the Branch (<mark><code>git push origin feature\/AmazingFeature<\/code>)<\/mark><\/li><li>Open a Pull Request<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#license\"><\/a>License<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Distributed under the MIT License. See&nbsp;<code>LICENSE.txt<\/code>&nbsp;for more information.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate#contact\"><\/a><strong>Project Link:&nbsp;<a href=\"https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate\">https:\/\/github.com\/PhanGiaPhat\/slack-bot-translate<\/a><\/strong><\/h5>\n\n\n\n<h5 class=\"wp-block-heading\"><strong><em>Phan Gia Phat<\/em><\/strong><\/h5>","protected":false},"excerpt":{"rendered":"<p>Introduction To Slack There are still a lot of people who have big questions about what the Slack tool is and how to use it. It can be said simply that Slack is a \u201cchat room\u201d for all employees in your company. Slack users can message chat, and share documents, images, \u2026 to everyone in &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/dev.oven.vn\/vi\/2022\/10\/23\/oven-transwitcher-slack-bot-translate\/\"> <span class=\"screen-reader-text\">OVEN TransWitcher \u2013 Slack Bot Translate<\/span> Read More &raquo;<\/a><\/p>","protected":false},"author":4,"featured_media":25913,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[12],"tags":[],"class_list":["post-25937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogs"],"_links":{"self":[{"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/posts\/25937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/comments?post=25937"}],"version-history":[{"count":1,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/posts\/25937\/revisions"}],"predecessor-version":[{"id":25938,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/posts\/25937\/revisions\/25938"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/media\/25913"}],"wp:attachment":[{"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/media?parent=25937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/categories?post=25937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.oven.vn\/vi\/wp-json\/wp\/v2\/tags?post=25937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}