Multiple language support in Conversation Action - actions-on-google

I am planning to design a google action, which will help users to learn some phrases in another language lets say "French". Here is an Example:-
“ok google, let me talk to learn french”
LearnFrench (LF): Hi! This is learn french! Would you like to practice 20 of the most important basic phrases in speaking French?”
user: “Yes”
LF: “Great! I’ll start by telling you a word in French - and you repeat after me. Let’s start with bonjour.
user: bonjour
LF: that was good! Bonjour is the most common greeting you’ll need. Next is "bonsoir" / or let’s try that again, it didn’t quite sound like “bonjour”
user: bonsoir
LF: bonsoir is used as a in the early evening,
etc….continues through 20 or so phrases. After going through those then there could be some type of “recall” practice. LF would say the phrase in English and the user would say the phrase in French. And if the user says it incorrectly then LF “learns” the phrases that the user needs to improve on.
At the end of a session LF would say something like “I think you know the basics here - good luck on your trip”.
If after that session the user came back to LF - LF would know that the user had already come before and would ask if they want to repeat the tutorial - or ask if they want to move straight to the quiz.
Is it possible to have multiple language support?

While Google Assistant is available in other languages, the Actions on Google platform is currently only available in U.S. English and U.K. English. We’re working to make Actions on Google available in other languages, but we don’t have a formal release date. We’ll make announcements to the community with updates as they occur.
If you are already using the invocation name, it is not possible to link it to another project/app.
Thanks,
Actions on Google Support Team

Related

Changing bot language in middle of the conversation

I am creating a bot service which can talk in any supportive language. My question is if the person started in English to chat and in middle he is not comfortable with English and want to change to Spanish or French. I would like to give that feature.
Is there any possibility to change the language of the bot in middle?
Any one faced the same issue helped is a great thing.
Thanks in advance.
The logic wants to develop is appreciated, unfortunately such type of middle changes of languages in not yet supportive. Instead, create the bot, that will ask for language change if needed and take the response. If the response is "YES" then give the feasibility to the user to change the language. But the conversation up to that point happened cannot be converted. It is too complex to think.
For language supportive check: https://support.microsoft.com/en-gb/office/microsoft-teams-supported-languages-for-help-content-9c71d10a-0c5c-49d4-b6d7-0c58cdfdf4cf

How broad does an action have to be to be allowed to be published?

Imagine I own a small dog grooming business in a small town. Imagine my company is called "Happy Dog" (I'm making this up). Can I write an action that could then be published as "Happy Dog" such that when a user says "Talk to Happy Dog" it will direct users to my action to find out store hours, make bookings and learn prices?
I am not asking about the technical characteristics of such an action. I'm imagining that if I build the action and submit it to Google, they will have to enter it into their database to cause it to be triggered. I'm assuming that this will then trigger its presence "globally".
When I look at https://assistant.google.com/explore/ ... I see nothing that would seem to show small businesses and other such actions being visible. This implies to me that Google rejects such submissions. Is it easy or difficult to get a new assistant action registered with Google? Is there any reading material I should be studying to learn about publishing new actions?
That is correct, we can think of Actions being published globally (there are caveats to that - but ignoreable for your question). Despite this, Actions should be broad enough to be useful, but can certainly be of interest to only a narrow audience.
As an analogy - this is similar to how web sites are published globally. The invocation name is a rough parallel to the domain name for a web site (with the exclusion of the ".com" or whatever TLD you use). Google acts as the sole domain registrar, if we wish to extend this analogy. And while it does enforce certain rules about naming and the directory entry there is no restriction specifically about local or small businesses.
However... you do start running into naming conflicts and trademark issues. For example, you probably can't get "MacDonald's" because it is too close to a trademarked name. One word invocations aren't allowed unless you can verify you also have the corresponding domain name.
To continue the analogy using your example, if you started your "Happy Dog" grooming company, you may try to create a web site and discover that "happydog.com" was already taken. So perhaps you would go with "HappyDogGrooming.com" or "HappyDogSpringfield.com" or something else. In the same way, if "talk to Happy Dog" was already taken, you may need to register "talk to Happy Dog Grooming" or something similar.
It is not difficult to get new Actions published, although you do need to make sure you follow the rules. The review process mostly makes sure you have created a good conversational experience that actually works and does not confuse users. Sometimes there is a bit of back-and-forth with the review team to resolve issues.

Framework for educational site and forum with single database

I'm newbie in back-end development, that's why I want to start learning not from pure coding but choosing framework. Want to understand, how it works and start writing unique code by myself.
I've tried to choose framework basing on my future project and couldn't do it without the qualified help. I've searched before to write here, but couldn't find all I need. I don't ask for deep pieces of advice, manuals or so here. Hope, that you as more experienced can show me few ways and I'll choose the one by myself.
What I need to do with framework capabilities:
Forum:
one (or crossing) users' database with site
one header and footer for forum and site
changeble design themes (full CSS support)
groups' rights and design
user's rights and design
moderators, admins, plain users
forum sections, that could be nested
themes
visual post formatting
images inserting
symbols counting in posts
symbols counting for each user in theme
Site:
same to forum users, their groups and rights
user profile with settings
guest book
education module: timetable by user group, courses with lessons, homework sending/discussing, homework statuses, marks/journal of all users and user groups, educational statistics for user groups
public user profile with text form data and all marks, forum activity, statuses and other information
autoposting some data from user profile to forum and updating it when changing the profile
inactivation/activation/ban for user accounts
IP viewing for admins: can see, what users/forum's messages have the same IP
messenger: private chats, private and public chat groups, auto-adding users to chats by users' group
private user notes, that are visible only for admins
bonus accrual
store, when users can change bonuses for virtual goods and session of playing game for random gifts
visual map, where everyone can see all forum sections and what users are on them
plain newspaper: issues with structured articles (a la usual blog posts), commenting for users, offering article feature
I know, that it's so much, but project is mine. And it can be developing for a long time. If I need to study a year or few, it's okay.
How do you think, what frameworks have the most of modules for described functional? Please, don't argufy. Write here if you had experience (or you know somebody who had) of realising features, that're described above.
Programming language doesn't matter (because I'm noob in all of them), but I think about Ruby and PHP (and PHPBB forum). Others are ok too, if them can afford what I need.
Sorry if I unknowingly said something wrong. Tell me and I'll fix it.
Your wanting to build a lot for someone that knows nothing about any languages.
First you need to pick a platform/OS.. Windows or Unix/Linux?
From there, you can pick a Web Server to run on based on that OS.
Then that filters out what kind of language your going to write with.
EDIT:
When someone wants to be a mechanic, do they go to each mechanic shop and ask what is the best car to work on? Each mechanic would have a different answer. No one here, will be able to give you a non-bias answer. So here is what I like....
I write code in 18 languages and been have developed software for 25 years. I've written code for DOS, Windows, and Linux/Unix. Each language has it's own limitation and perfections, but I'm not a fan of open source and most Linux/Unix preferred languages even though some can run on Windows. I have a tendency to lean towards windows and enjoy back end development. I've written Web UIs in Angular, JSP, Java Spring Boot, WebFOCUS and ASP Classic. Now that you know more about me, here are my favorites.
I prefer Windows. I prefer C#. If I have to build a web UI, I prefer HTML 5/CSS3/Javascript with an ASP.NET/C# backend. I don't like bootstrap or jquery as I like to write with a small footprint as do most any older developer. The internet is full of garbage that isn't being used by most every site you go to, just so the developer can get a few shortcuts. Bootstrap and JQuery are just javascript libraries of which most sites can do what they want with 1/10 the code the client has to download, if they really knew Javascript.
There ya go, my bias opinion, take it or leave it, but most likely the only honest answer your going to get here.

Actions On Google is not getting approved

My project on Actions On Google is not getting approved and I'm struggling to find a good reason.
Let's say the name of my app is < appname>. The < appname> is a simple two word phrase and is not a duplicate of any existing app in the store.
The invocation names configured are:
Talk to < appname>
Play < appname>
Launch < appname>
Open < appname>
Speak to < appname>
While testing on Google Home Mini, all invocations worked flawlessly. However, Google review folks reverted, suggesting that other than Talk to < appname> all invocations are failing.
Thereafter, I tested on Google Assistant on iPhone. Surprisingly, although the said phrases are being interpreted properly (evident from speech-to-text) but other than Talk to < appname> it fails for other invocations.
They're suggesting to submit the only working invocation but it will limit access to my app.
Precursor
I realize this isn't exactly a code question, but I believe it belongs on Stack Overflow. There's JSON, queries, and invoking methods through voice involved. If it were about other metadata, such as the description and privacy policies, then it would be inappropriate, in my opinion.
I'll go ahead and respond to the question. Please don't hold the validity of the question against me.
Background
I've been building an Action on Google with the Actions SDK. While you're using dialogflow, some of the information I learned today should be helpful. Keep in mind I don't work on Actions on Google, so this is just a response from another user. It's also my first Action and I'm learning with you.
Solution
I think the issue with your configuration is the trigger words of your invocations. I'm still talking with one of the product managers, but it seems only certain trigger phrases are allowed. The format of an invocation is
[trigger] + [your action name] + to + [action invocation phrase]
If you look at the Language and Locales Doc, you will see
Docs: The basic verbs to trigger an app by its name are: talk, speak, and
ask. Here are some example phrases that users can say to trigger your
apps.
"let me talk to $name"
"I want to talk to $name"
"can I talk to $name"
"talk to $name"
...
Therefore some of your trigger phrases are invalid. (Mine were too and I'm going to need to fix for resubmission)
You: However, Google review folks reverted, suggesting that other than Talk
to < appname> all invocations are failing.
Talk to < appname > is working because it uses one of the three permitted English trigger phrases (talk).
I'm surprised the other invocations worked on the Google Home Mini. When I added more invocations through the Actions SDK using other triggers, they would not invoke the action. I can pass this along as a potential bug, where invalid triggers work with dialogflow on test devices, according to your report.
I'll follow up once my assumptions on trigger phrases are confirmed and will let you know if I learn anything notable.
Edit: One more note, I agree more trigger phrases are important for app discovery and I'm trying to find out if they can be added. From what I understand, some are disabled like play for media purposes, i.e. "hey google, play [some song]."

The pros and cons of localization when submitting an iPhone app

I was just wondering about the pros and cons of submitting metadata and changing the UI buttons for people who don't speak English.
According to this study there isn't a huge percentage of users who go to stores that aren't in English (all the smaller countries have stores in UK English).
That said, I was wondering if maybe there is some advantage to this? For example, if I submit to the French store I would assume there are less apps with metadata in French and so therefore you might have a better chance of getting featured.
Keep in mind my app is super simple with no network activity and only a couple of buttons I would need to translate.
PS please forgive me if this is not an appropriate question for this site. And feel free to vote to migrate.
There is no disadvantage of providing localised versions of your application. It's probably more a question of knowing your target audience.
Generally one should assume that in a country, which official language is not English, people don't speak English. Of course there are exceptions like Germany were a lot of people do speak English. But usually they still feel more comfortable using their native language. Following your example, French traditionally have a very strong opinion when it comes to languages and will appreciate a French localisation.
Besides users by country you should also take into account the area or business segment you're targeting. Just to give an example: an British pub guide obviously is targeting English speaking people. If you're creating something around renewable energy it could be worth exploring a German version besides an international English one, too since it's really popular in Germany and also supported by government subsidies.
If you can reach your potential users in English a localisation might not be necessary. But the lack of localisations will make it definitely harder to advertise your application. I can't think of an non-localised app have been featured on the German App Store. This might be just bad memory but Apple points out the importance of localisations many times in the documentation.
Since you mentioned your application doesn't actually have that many localisable elements it might be worth the effort anyway. Even if you decide not to do so for the initial release it's worth building your application with future localisation in mind to add localisations in later updates. See that post for more.
There is a disadvantage, and it is that once you add a language, you will be expected to continue supporting it in future releases. It's not nice for someone who uses your app in say Chinese to install an update and find that the app has reverted to English or that some new features are not translated. But in order to continue supporting a language in future releases, you'll have to get new/changed content translated which will cost you (assuming you are paying a translator) and delay your release a little. You'll also have a bigger testing burden.
That said, localization is a great way to attract more users.